https://wiki.mozilla.org/api.php?action=feedcontributions&user=Dholbert&feedformat=atomMozillaWiki - User contributions [en]2024-03-29T09:39:19ZUser contributionsMediaWiki 1.27.4https://wiki.mozilla.org/index.php?title=ExposureGuidelines&diff=1243813ExposureGuidelines2022-08-31T21:04:23Z<p>Dholbert: /* Intent to ship */ fix typo (hhttps)</p>
<hr />
<div>'''Always ask: ''Is this good for the web?'''''<br />
<br />
=Adding or changing features=<br />
<br />
This process applies to all new features that change how the web platform operates.<br />
<br />
If you aim to expose a new feature to the web or change an existing feature, please follow these steps:<br />
<br />
# [[#New features|Evaluate the new feature]] or [[#Changing or evolving features|change to an existing features]].<br />
# Email [https://groups.google.com/a/mozilla.org/g/dev-platform dev-platform] declaring your [[#Intent to prototype|intent to prototype]]. (It is okay to skip this step for small changes.)<br />
# Implement as normal. Code review rounds will take place, [https://github.com/w3c/web-platform-tests web-platform-tests] will be written, etc.<br />
# Email [https://groups.google.com/a/mozilla.org/g/dev-platform dev-platform] declaring your [[#Intent to ship|intent to ship]] on [[Release_Management/Release_Process|Firefox Release]].<br />
# If there's no negative feedback, ship it!<br />
<br />
=New features=<br />
<br />
There’s a lot of nuance that goes into adding a feature to the web. Mozilla sets a high bar for any changes we make to the web.<br />
<br />
Making new features available requires some care and consideration.<br />
<br />
==Establish that the feature is important==<br />
<br />
We have finite resources and we want to ensure that we develop features that are important. Reasons might include:<br />
* It’s of strategic importance to Mozilla.<br />
* It contributes to [https://www.mozilla.org/en-US/about/manifesto/ Mozilla’s mission].<br />
* This will make us the second/third browser to ship this, enabling more web developers to use it. That is, this helps with web compatibility and moves the web forward by having another independent implementation.<br />
<br />
==Ensure that the feature is standardized==<br />
<br />
Mozilla is committed to standardization as the basis for evolving the Web. We want to ensure that features are good for our users and have broad support from other browsers, web developers, and the broader community. The [[standards]] process is how we ensure that features meet these expectations.<br />
<br />
Our goal is that all new web-facing features are based on a specification that is the product of a recognized standards body.<br />
<br />
===Standardization requirements for prototypes===<br />
<br />
If a specification for a feature is not the product of a standards body, your intent to prototype needs to identify what steps have been taken to ensure that it will be. You should identify which standards body you believe should take the work on. Include a link to a record from that standards body that tracks the feature becoming an official product.<br />
<br />
What you minimally need to show might differ according to the processes of the standards body:<br />
<br />
* '''W3C''' - an issue raised on a working group charter (not a community group)<br />
* '''WHATWG''' - an issue raised on the appropriate standard(s)<br />
* '''IETF''' - an explicit request for adoption by a working group<br />
* '''TC39''' - a link to a proposal at stage 1 or higher<br />
* For other bodies, a request for consideration according to the procedures of the body<br />
<br />
Being able to prototype new features allows us to learn about them, but experimentation serves to inform our choices in standards bodies. Features that have not been discussed within the processes of a standards body will require extra scrutiny to ensure that it is safe to prototype. This applies especially to W3C work that is not the product of a working group or community group; the same applies to individual submissions to the IETF.<br />
<br />
===Standardization requirements for shipping features===<br />
<br />
An intent to ship must include an update on the standardization status of the feature. We expect that shipping features will be further advanced in the standards process when they ship.<br />
<br />
Your intent to ship should include information that shows not only that the standards body has adopted the work, but also that there is consensus that the feature is ready to be shipped. What evidence is necessary will vary, but generally this will be:<br />
<br />
* '''W3C''' - the specification is at the Candidate Recommendation [https://www.w3.org/2021/Process-20211102/#maturity-levels maturity level] or more advanced; shipping from a Working Draft or a less advanced specification requires evidence of agreement within the working group that shipping is acceptable<br />
* '''WHATWG''' - the changes have been merged into a standard; an open pull request requires additional evidence of agreement among implementers that shipping is acceptable<br />
* '''IETF''' - a working group draft that has been passed to the IESG for publication by the working group; a draft working group in an earlier state should show evidence that shipping is acceptable to the working group<br />
* '''TC39''' - the proposal is at stage 3 or higher<br />
* The product of other bodies will be assessed individually<br />
<br />
In all of these cases, try to show that there are no significant unresolved issues with a specification and that there are no objections to shipping it. Simply showing that there is support for a feature is less useful.<br />
<br />
Shipping features that don’t meet these requirements is still possible, including features that don't show broad agreement that shipping is acceptable. If your feature needs an exception to this rule, please reach out to [[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership]]. Any intent regarding a non-standard feature might need to include additional safeguards such as experimentation and data collection plans, risk assessments, and rollback strategies.<br />
<br />
==Ensure that Mozilla has a position on the feature==<br />
<br />
[https://github.com/mozilla/standards-positions standards-positions] is where Mozilla formalizes positions on new features. Open an issue there if one does not already exist.<br />
<br />
=Changing or evolving features=<br />
<br />
When making changes to existing features or even removing existing features many of the considerations stated for [[#New features|evaluating new features]] apply, but one thing that is quite different is that telemetry might be important here as in general Mozilla is pretty averse to shipping breaking changes. Coordination with the relevant standard and other browsers is usually the way to go.<br />
<br />
<br />
=Email templates for new or changed features=<br />
<br />
When announcing your intent to prototype or ship a feature, using these templates ensures that you don’t miss anything critical.<br />
<br />
==Intent to prototype==<br />
<br />
<blockquote><br />
'''To''': <tt>dev-platform@mozilla.org</tt><br><br />
'''Subject''': Intent to prototype: <your feature goes here><br />
<br />
''Summary'': [https://en.wikipedia.org/wiki/Elevator_pitch elevator pitch] for the new functionality including benefits to users and web developers.<br><br />
''Bug'': link to Bugzilla (tracking) bug.<br /><br />
''Specification'': link to the specification (see [[#Standardization requirements for prototypes|details above]])<br /><br />
''Standards Body'': identify the standards body responsible for standardizing this feature if that is not obvious from the specification; if the specification is not already adopted by a standards body, link to the issue or a discussion about adoption of the work (if no discussion exists, please start that process before filing this intent)<br /><br />
''Platform coverage'': where will this be available? Android, Desktop, only exposed to privileged apps (certified app-only functionality does not require an email), etc.<br /><br />
''Preference'': if applicable, how can interested parties test this before it ships pref'd on by default?<br /><br />
''DevTools bug'': link to a [https://bugzilla.mozilla.org/enter_bug.cgi?product=devtools Developer Tools bug] coordinating work with the DevTools team to build tools for this feature.<br /><br />
''Other browsers'': address with "shipped" (since version X, behind what flags if any), "intent emailed" (mailing list URL), or "considering" (citation).<br /><br />
''web-platform-tests'': Please link to the test suite. If any part of the feature is not tested by web-platform-tests, or if you had to write gecko-only tests for parts of the feature, please include links to one or more of:<br />
* A web-platform-tests issue explaining why a certain thing cannot be tested ([https://github.com/w3c/web-platform-tests/issues/3867 example]).<br />
* A spec issue for some change that would make it possible to test ([https://github.com/whatwg/fullscreen/issues/70 example]).<br />
* A Bugzilla bug for the creating web-platform-tests.<br />
</blockquote><br />
<br />
===Suggested additions===<br />
<br />
The above is the minimum required that should be in an "Intent to prototype" email. If you've covered those, you're good, and brevity is a virtue.<br />
<br />
If you're looking for extra credit, or to preempt common questions, consider adding any or all of the following (all based on existing dev-platform examples, and questions asked on dev-platform in response to intent to ship emails).<br />
* ''Link to standards-positions discussion'': Link to a discussion in [https://github.com/mozilla/standards-positions mozilla/standards-positions] about what we think about the specification.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
** +1 [[User:Evilpie|Tom Schuster]] I forgot to request a standards-position before submitting an intent before. <br />
** +1 bgrins - And I think this requirement could make the other additions below unnecessary (security & privacy concerns, webdev use cases, example, and possibly spec stability), because those should typically be covered by an explainer and other linked resources which would be vetted in standards-positions as opposed to inside the intent-to thread.<br />
* ''How stable is the spec'': Note that even if it's unstable that shouldn't stop us implementing; that mostly affects shipping. So as long as we're pretty sure that the basic set of functionality is stable, even if the actual names of the values are not, implementing makes sense.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
* ''Security & Privacy Concerns'': consider providing a link to answers in [https://mikewest.github.io/spec-questionnaire/security-privacy/ this security/privacy questionnaire] for a spec feature, if the spec doesn't already answer it. In particular, consider if the spec exposes new information about a user's computer or behavior that can contribute to fingerprinting.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
* ''Web designer / developer use-cases'' AKA ''Why a developer would use Feature X?'': Provide a URL to at least briefly documented use-cases for web designers and developers that illustrate why and when they would use this feature. E.g. a link to an https://webwewant.fyi/wants/ entry with that information.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
* ''Example'': Provide a brief code sample on how to use the API. Even with a formal specification, not everyone will know about the feature just from the name of the spec. An example will make it easier to understand how this feature can be used. This can either be an inline code sample, or a direct link to an example on the web.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
<br />
==Intent to ship==<br />
<br />
<blockquote><br />
'''To''': <tt>dev-platform@mozilla.org</tt><br /><br />
'''Subject''': Intent to ship: <your feature goes here><br />
<br />
As of <target date> I intend to turn <feature> on by default [<on these platforms>]. It has been developed behind the <pref> preference. Status in other browsers is <details>.<br />
<br />
''Bug to turn on by default'': link to main relevant bug (https://bugzilla.mozilla.org/show_bug.cgi?id=) Please set the ''dev-doc-needed'' keyword.<br />
<br />
Standard: link to the standard; if the work is not yet part of a standard, also provide evidence that the responsible standards body has agreement that shipping the feature has broad support (see [[#Standardization requirements for shipping features|details above]])<br />
<br />
This feature was previously discussed in this "Intent to prototype" thread: <https://groups.google.com/a/mozilla.org/g/dev-platform>. '''If anything changed since that thread please include that information in this email'''.<br />
</blockquote><br />
<br />
It's acceptable to merge the "intent to prototype" into the "intent to ship" email as long as all the relevant requirements are met.<br />
<br />
=Removing features=<br />
<br />
All removals require special care. In particular, most removals have a [[Compatibility/WebPlatform|significant web compatibility risk]] that needs to be carefully assessed.<br />
<br />
If you aim to remove a feature from the web, please follow these steps:<br />
<br />
# [[#Changing or evolving features|Evaluate the removal]].<br />
# Consult dev-platform with an [[#Intent to unship|intent to unship]] that includes any relevant data.<br />
# Indicate in the developer console whenever the feature is used that it's deprecated and might be removed. It's best to avoid doing this until there's agreement that the feature can be removed (which requires telemetry) as otherwise developers are needlessly spammed in the console.<br />
# Unship the feature when all is in order.<br />
<br />
==Intent to unship==<br />
<br />
<blockquote><br />
'''To''': <tt>dev-platform@mozilla.org</tt><br /><br />
'''Subject''': Intent to unship: <your feature goes here><br />
<br />
As of <target date> I intend to remove <feature> [<on these platforms>]. Status in other browsers is <details>.<br />
<br />
''Bug to remove'': link to main relevant bug (https://bugzilla.mozilla.org/show_bug.cgi?id=) Please set the ''dev-doc-needed'' keyword.<br />
<br />
<Include rationale, telemetry analysis, links to related discussions if any, and developer console suggestions.><br />
</blockquote><br />
<br />
<br />
= See Also =<br />
* [[WebAPI/WebIDL_Review_Checklist]]<br />
* [https://www.chromium.org/blink Chrome/Blink change process]<br />
** [https://www.chromium.org/blink/launching-features Chrome/Blink process for Launching Features] in particular<br />
** [https://bit.ly/blink-signals Signals from other implementations]<br />
<br />
<br />
=FAQ=<br />
<br />
==How do we know what web developers want?==<br />
<br />
There's no good way to determine this currently, but feedback on GitHub, StackOverflow, workarounds in JavaScript libraries, MDN surveys, as well as use cases brought up during standardization help paint a picture.<br />
<br />
==How do we know what other browser engines think?==<br />
<br />
* Most of the time this should fall out of the standardization process (e.g., discussion in a GitHub repository)<br />
* Watch for "intent to *" emails on mailing lists such as [https://groups.google.com/a/chromium.org/forum/#!forum/blink-dev blink-dev]<br />
* By asking!<br />
** WebKit (Apple) can be asked on their [https://github.com/WebKit/standards-positions standards-positions repo]<br />
<br />
==How do we let other browser engines know what we think?==<br />
<br />
* By documenting our position on [https://github.com/mozilla/standards-positions standards-positions].<br />
* Participating in public discussions of new features.<br />
* Comment on "Intent to *" threads on [https://groups.google.com/a/chromium.org/forum/#!forum/blink-dev blink-dev]. (Ideally this is not necessary, but it's a good last resort option.)<br />
<br />
==What about prefixes?==<br />
<br />
In the past, Mozilla has shipped experimental features with a "moz" prefix to indicate their lack of standardization (e.g., <code>mozRequestAnimationFrame()</code>). Unfortunately, this approach turned out to be harmful to the web as experimental features ended up being used in some websites before they were ready. In many cases, this meant that we were unable to innovate on certain features because to change them would break content on the web. Browsers have in some cases also been [https://compat.spec.whatwg.org/ forced to implement each other's prefixed features]. Therefore, to allow us to continue innovating without negatively affecting content on the web, '''Mozilla will no longer ship new "moz"-prefixed features''' (see [https://groups.google.com/forum/#!topic/mozilla.dev.platform/34JfwyEh5e4 Henri Sivonen's proposal]).<br />
<br />
==Who decides?==<br />
<br />
If the dev-platform thread results in a conflict, the respective [[Modules|module owner]] is responsible for resolving that conflict and making a decision on how to proceed.<br />
<br />
== See Also ==<br />
* [[Standards]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=ExposureGuidelines&diff=1243812ExposureGuidelines2022-08-31T21:03:53Z<p>Dholbert: Update one link that was pointing to the old/deprecated mozilla.dev.platform newsgroup.</p>
<hr />
<div>'''Always ask: ''Is this good for the web?'''''<br />
<br />
=Adding or changing features=<br />
<br />
This process applies to all new features that change how the web platform operates.<br />
<br />
If you aim to expose a new feature to the web or change an existing feature, please follow these steps:<br />
<br />
# [[#New features|Evaluate the new feature]] or [[#Changing or evolving features|change to an existing features]].<br />
# Email [https://groups.google.com/a/mozilla.org/g/dev-platform dev-platform] declaring your [[#Intent to prototype|intent to prototype]]. (It is okay to skip this step for small changes.)<br />
# Implement as normal. Code review rounds will take place, [https://github.com/w3c/web-platform-tests web-platform-tests] will be written, etc.<br />
# Email [https://groups.google.com/a/mozilla.org/g/dev-platform dev-platform] declaring your [[#Intent to ship|intent to ship]] on [[Release_Management/Release_Process|Firefox Release]].<br />
# If there's no negative feedback, ship it!<br />
<br />
=New features=<br />
<br />
There’s a lot of nuance that goes into adding a feature to the web. Mozilla sets a high bar for any changes we make to the web.<br />
<br />
Making new features available requires some care and consideration.<br />
<br />
==Establish that the feature is important==<br />
<br />
We have finite resources and we want to ensure that we develop features that are important. Reasons might include:<br />
* It’s of strategic importance to Mozilla.<br />
* It contributes to [https://www.mozilla.org/en-US/about/manifesto/ Mozilla’s mission].<br />
* This will make us the second/third browser to ship this, enabling more web developers to use it. That is, this helps with web compatibility and moves the web forward by having another independent implementation.<br />
<br />
==Ensure that the feature is standardized==<br />
<br />
Mozilla is committed to standardization as the basis for evolving the Web. We want to ensure that features are good for our users and have broad support from other browsers, web developers, and the broader community. The [[standards]] process is how we ensure that features meet these expectations.<br />
<br />
Our goal is that all new web-facing features are based on a specification that is the product of a recognized standards body.<br />
<br />
===Standardization requirements for prototypes===<br />
<br />
If a specification for a feature is not the product of a standards body, your intent to prototype needs to identify what steps have been taken to ensure that it will be. You should identify which standards body you believe should take the work on. Include a link to a record from that standards body that tracks the feature becoming an official product.<br />
<br />
What you minimally need to show might differ according to the processes of the standards body:<br />
<br />
* '''W3C''' - an issue raised on a working group charter (not a community group)<br />
* '''WHATWG''' - an issue raised on the appropriate standard(s)<br />
* '''IETF''' - an explicit request for adoption by a working group<br />
* '''TC39''' - a link to a proposal at stage 1 or higher<br />
* For other bodies, a request for consideration according to the procedures of the body<br />
<br />
Being able to prototype new features allows us to learn about them, but experimentation serves to inform our choices in standards bodies. Features that have not been discussed within the processes of a standards body will require extra scrutiny to ensure that it is safe to prototype. This applies especially to W3C work that is not the product of a working group or community group; the same applies to individual submissions to the IETF.<br />
<br />
===Standardization requirements for shipping features===<br />
<br />
An intent to ship must include an update on the standardization status of the feature. We expect that shipping features will be further advanced in the standards process when they ship.<br />
<br />
Your intent to ship should include information that shows not only that the standards body has adopted the work, but also that there is consensus that the feature is ready to be shipped. What evidence is necessary will vary, but generally this will be:<br />
<br />
* '''W3C''' - the specification is at the Candidate Recommendation [https://www.w3.org/2021/Process-20211102/#maturity-levels maturity level] or more advanced; shipping from a Working Draft or a less advanced specification requires evidence of agreement within the working group that shipping is acceptable<br />
* '''WHATWG''' - the changes have been merged into a standard; an open pull request requires additional evidence of agreement among implementers that shipping is acceptable<br />
* '''IETF''' - a working group draft that has been passed to the IESG for publication by the working group; a draft working group in an earlier state should show evidence that shipping is acceptable to the working group<br />
* '''TC39''' - the proposal is at stage 3 or higher<br />
* The product of other bodies will be assessed individually<br />
<br />
In all of these cases, try to show that there are no significant unresolved issues with a specification and that there are no objections to shipping it. Simply showing that there is support for a feature is less useful.<br />
<br />
Shipping features that don’t meet these requirements is still possible, including features that don't show broad agreement that shipping is acceptable. If your feature needs an exception to this rule, please reach out to [[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership]]. Any intent regarding a non-standard feature might need to include additional safeguards such as experimentation and data collection plans, risk assessments, and rollback strategies.<br />
<br />
==Ensure that Mozilla has a position on the feature==<br />
<br />
[https://github.com/mozilla/standards-positions standards-positions] is where Mozilla formalizes positions on new features. Open an issue there if one does not already exist.<br />
<br />
=Changing or evolving features=<br />
<br />
When making changes to existing features or even removing existing features many of the considerations stated for [[#New features|evaluating new features]] apply, but one thing that is quite different is that telemetry might be important here as in general Mozilla is pretty averse to shipping breaking changes. Coordination with the relevant standard and other browsers is usually the way to go.<br />
<br />
<br />
=Email templates for new or changed features=<br />
<br />
When announcing your intent to prototype or ship a feature, using these templates ensures that you don’t miss anything critical.<br />
<br />
==Intent to prototype==<br />
<br />
<blockquote><br />
'''To''': <tt>dev-platform@mozilla.org</tt><br><br />
'''Subject''': Intent to prototype: <your feature goes here><br />
<br />
''Summary'': [https://en.wikipedia.org/wiki/Elevator_pitch elevator pitch] for the new functionality including benefits to users and web developers.<br><br />
''Bug'': link to Bugzilla (tracking) bug.<br /><br />
''Specification'': link to the specification (see [[#Standardization requirements for prototypes|details above]])<br /><br />
''Standards Body'': identify the standards body responsible for standardizing this feature if that is not obvious from the specification; if the specification is not already adopted by a standards body, link to the issue or a discussion about adoption of the work (if no discussion exists, please start that process before filing this intent)<br /><br />
''Platform coverage'': where will this be available? Android, Desktop, only exposed to privileged apps (certified app-only functionality does not require an email), etc.<br /><br />
''Preference'': if applicable, how can interested parties test this before it ships pref'd on by default?<br /><br />
''DevTools bug'': link to a [https://bugzilla.mozilla.org/enter_bug.cgi?product=devtools Developer Tools bug] coordinating work with the DevTools team to build tools for this feature.<br /><br />
''Other browsers'': address with "shipped" (since version X, behind what flags if any), "intent emailed" (mailing list URL), or "considering" (citation).<br /><br />
''web-platform-tests'': Please link to the test suite. If any part of the feature is not tested by web-platform-tests, or if you had to write gecko-only tests for parts of the feature, please include links to one or more of:<br />
* A web-platform-tests issue explaining why a certain thing cannot be tested ([https://github.com/w3c/web-platform-tests/issues/3867 example]).<br />
* A spec issue for some change that would make it possible to test ([https://github.com/whatwg/fullscreen/issues/70 example]).<br />
* A Bugzilla bug for the creating web-platform-tests.<br />
</blockquote><br />
<br />
===Suggested additions===<br />
<br />
The above is the minimum required that should be in an "Intent to prototype" email. If you've covered those, you're good, and brevity is a virtue.<br />
<br />
If you're looking for extra credit, or to preempt common questions, consider adding any or all of the following (all based on existing dev-platform examples, and questions asked on dev-platform in response to intent to ship emails).<br />
* ''Link to standards-positions discussion'': Link to a discussion in [https://github.com/mozilla/standards-positions mozilla/standards-positions] about what we think about the specification.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
** +1 [[User:Evilpie|Tom Schuster]] I forgot to request a standards-position before submitting an intent before. <br />
** +1 bgrins - And I think this requirement could make the other additions below unnecessary (security & privacy concerns, webdev use cases, example, and possibly spec stability), because those should typically be covered by an explainer and other linked resources which would be vetted in standards-positions as opposed to inside the intent-to thread.<br />
* ''How stable is the spec'': Note that even if it's unstable that shouldn't stop us implementing; that mostly affects shipping. So as long as we're pretty sure that the basic set of functionality is stable, even if the actual names of the values are not, implementing makes sense.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
* ''Security & Privacy Concerns'': consider providing a link to answers in [https://mikewest.github.io/spec-questionnaire/security-privacy/ this security/privacy questionnaire] for a spec feature, if the spec doesn't already answer it. In particular, consider if the spec exposes new information about a user's computer or behavior that can contribute to fingerprinting.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
* ''Web designer / developer use-cases'' AKA ''Why a developer would use Feature X?'': Provide a URL to at least briefly documented use-cases for web designers and developers that illustrate why and when they would use this feature. E.g. a link to an https://webwewant.fyi/wants/ entry with that information.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
* ''Example'': Provide a brief code sample on how to use the API. Even with a formal specification, not everyone will know about the feature just from the name of the spec. An example will make it easier to understand how this feature can be used. This can either be an inline code sample, or a direct link to an example on the web.<br />
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)<br />
<br />
==Intent to ship==<br />
<br />
<blockquote><br />
'''To''': <tt>dev-platform@mozilla.org</tt><br /><br />
'''Subject''': Intent to ship: <your feature goes here><br />
<br />
As of <target date> I intend to turn <feature> on by default [<on these platforms>]. It has been developed behind the <pref> preference. Status in other browsers is <details>.<br />
<br />
''Bug to turn on by default'': link to main relevant bug (https://bugzilla.mozilla.org/show_bug.cgi?id=) Please set the ''dev-doc-needed'' keyword.<br />
<br />
Standard: link to the standard; if the work is not yet part of a standard, also provide evidence that the responsible standards body has agreement that shipping the feature has broad support (see [[#Standardization requirements for shipping features|details above]])<br />
<br />
This feature was previously discussed in this "Intent to prototype" thread: <hhttps://groups.google.com/a/mozilla.org/g/dev-platform>. '''If anything changed since that thread please include that information in this email'''.<br />
</blockquote><br />
<br />
It's acceptable to merge the "intent to prototype" into the "intent to ship" email as long as all the relevant requirements are met.<br />
<br />
<br />
=Removing features=<br />
<br />
All removals require special care. In particular, most removals have a [[Compatibility/WebPlatform|significant web compatibility risk]] that needs to be carefully assessed.<br />
<br />
If you aim to remove a feature from the web, please follow these steps:<br />
<br />
# [[#Changing or evolving features|Evaluate the removal]].<br />
# Consult dev-platform with an [[#Intent to unship|intent to unship]] that includes any relevant data.<br />
# Indicate in the developer console whenever the feature is used that it's deprecated and might be removed. It's best to avoid doing this until there's agreement that the feature can be removed (which requires telemetry) as otherwise developers are needlessly spammed in the console.<br />
# Unship the feature when all is in order.<br />
<br />
==Intent to unship==<br />
<br />
<blockquote><br />
'''To''': <tt>dev-platform@mozilla.org</tt><br /><br />
'''Subject''': Intent to unship: <your feature goes here><br />
<br />
As of <target date> I intend to remove <feature> [<on these platforms>]. Status in other browsers is <details>.<br />
<br />
''Bug to remove'': link to main relevant bug (https://bugzilla.mozilla.org/show_bug.cgi?id=) Please set the ''dev-doc-needed'' keyword.<br />
<br />
<Include rationale, telemetry analysis, links to related discussions if any, and developer console suggestions.><br />
</blockquote><br />
<br />
<br />
= See Also =<br />
* [[WebAPI/WebIDL_Review_Checklist]]<br />
* [https://www.chromium.org/blink Chrome/Blink change process]<br />
** [https://www.chromium.org/blink/launching-features Chrome/Blink process for Launching Features] in particular<br />
** [https://bit.ly/blink-signals Signals from other implementations]<br />
<br />
<br />
=FAQ=<br />
<br />
==How do we know what web developers want?==<br />
<br />
There's no good way to determine this currently, but feedback on GitHub, StackOverflow, workarounds in JavaScript libraries, MDN surveys, as well as use cases brought up during standardization help paint a picture.<br />
<br />
==How do we know what other browser engines think?==<br />
<br />
* Most of the time this should fall out of the standardization process (e.g., discussion in a GitHub repository)<br />
* Watch for "intent to *" emails on mailing lists such as [https://groups.google.com/a/chromium.org/forum/#!forum/blink-dev blink-dev]<br />
* By asking!<br />
** WebKit (Apple) can be asked on their [https://github.com/WebKit/standards-positions standards-positions repo]<br />
<br />
==How do we let other browser engines know what we think?==<br />
<br />
* By documenting our position on [https://github.com/mozilla/standards-positions standards-positions].<br />
* Participating in public discussions of new features.<br />
* Comment on "Intent to *" threads on [https://groups.google.com/a/chromium.org/forum/#!forum/blink-dev blink-dev]. (Ideally this is not necessary, but it's a good last resort option.)<br />
<br />
==What about prefixes?==<br />
<br />
In the past, Mozilla has shipped experimental features with a "moz" prefix to indicate their lack of standardization (e.g., <code>mozRequestAnimationFrame()</code>). Unfortunately, this approach turned out to be harmful to the web as experimental features ended up being used in some websites before they were ready. In many cases, this meant that we were unable to innovate on certain features because to change them would break content on the web. Browsers have in some cases also been [https://compat.spec.whatwg.org/ forced to implement each other's prefixed features]. Therefore, to allow us to continue innovating without negatively affecting content on the web, '''Mozilla will no longer ship new "moz"-prefixed features''' (see [https://groups.google.com/forum/#!topic/mozilla.dev.platform/34JfwyEh5e4 Henri Sivonen's proposal]).<br />
<br />
==Who decides?==<br />
<br />
If the dev-platform thread results in a conflict, the respective [[Modules|module owner]] is responsible for resolving that conflict and making a decision on how to proceed.<br />
<br />
== See Also ==<br />
* [[Standards]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=BMO/UserGuide/BugStatuses&diff=1243685BMO/UserGuide/BugStatuses2022-08-19T15:34:31Z<p>Dholbert: /* Resolutions */ Extend the description of "incomplete" to include the scenario of "bug might be valid but its testcases have disappeared, or were never provided" scenario (which is one way we use this resolution, in practice)</p>
<hr />
<div>= Bug Statuses =<br />
<br />
; STATUS<br />
: The Status field indicates the current state of a bug. Only certain status transitions are allowed.<br />
; RESOLUTION<br />
: The Resolution field indicates what happened to this bug.<br />
<br />
== Open Bugs ==<br />
<br />
=== Statuses ===<br />
<br />
; UNCONFIRMED<br />
: This bug has recently been added to the database. Nobody has validated that this bug is true. Users who have the "canconfirm" permission set may confirm this bug, changing its state to NEW. Or, it may be directly resolved and marked RESOLVED. <br />
; NEW<br />
: This bug has recently been added to the assignee's list of bugs and must be processed. Bugs in this state may be accepted, and become ASSIGNED, passed on to someone else, and remain NEW, or resolved and marked RESOLVED. <br />
; ASSIGNED<br />
: This bug is not yet resolved, but is assigned to the proper person. From here bugs can be given to another person and become NEW, or resolved and become RESOLVED. <br />
; REOPENED<br />
: This bug was once resolved, but the resolution was deemed incorrect. For example, a WORKSFORME bug is REOPENED when more information shows up and the bug is now reproducible. From here bugs are either marked ASSIGNED or RESOLVED. <br />
<br />
== Closed Bugs == <br />
<br />
=== Statuses ===<br />
<br />
; RESOLVED<br />
: A resolution has been performed, and it is awaiting verification by QA. From here bugs are either reopened and given some open status, or are verified by QA and marked VERIFIED. <br />
; VERIFIED<br />
: QA has looked at the bug and the resolution and agrees that the appropriate resolution has been taken. Any zombie bugs who choose to walk the earth again must do so by becoming REOPENED. <br />
<br />
=== Resolutions ===<br />
<br />
; FIXED<br />
: A fix for this bug is checked into the tree and tested. <br />
; INVALID<br />
: The problem described is not a bug. <br />
; WONTFIX<br />
: The problem described is a bug which will never be fixed. <br />
; MOVED<br />
: The problem is now being worked on another issue tracker. The [https://wiki.mozilla.org/BMO/UserGuide/BugFields#see_also See Also field] should contain the URL of the bug on the other tracker.<br />
; DUPLICATE<br />
: The problem is a duplicate of an existing bug (the problems must be exactly the same). Marking a bug duplicate requires the bug# of the duplicating bug and will at least put that bug number in the description field. If a bug has the same root cause as another one but the two bugs are finally different, then they should have a dependency such as [https://wiki.mozilla.org/BMO/UserGuide/BugFields#dependson depends_on].<br />
; WORKSFORME<br />
: a) all attempts at reproducing this bug were futile, and reading the code produces no clues as to why the described behavior would occur; or<br />
: b) the bug was present once, but is now not reproducible (and so was probably fixed in another bug.)<br />
; INCOMPLETE<br />
: a) The problem is vaguely described with no steps to reproduce, or is a support request. The reporter should be directed to the product's support page for help diagnosing the issue. If there are only a few comments in the bug, it may be reopened only if the original reporter provides more info, or confirms someone else's steps to reproduce. If the bug is long, when enough info is provided a new bug should be filed and the original bug marked as a duplicate of it. Or:<br />
: b) There may have been a valid bug, but we don't have enough information at this point to tell whether the bug is still present or not (e.g. because the only testcase was external-to-Bugzilla and has now disappeared, or because a reproducing testcase was never provided).</div>Dholberthttps://wiki.mozilla.org/index.php?title=Gecko:Overview&diff=1240908Gecko:Overview2022-03-01T18:50:19Z<p>Dholbert: /* WebRender vs Layers */ Add a note and bug link about the layers rendering path having been removed.</p>
<hr />
<div>This document attempts to give an overview of the different parts of<br />
Gecko, what they do, and why they do it, say where the code for them is<br />
within the repository, and link to more specific documentation (when<br />
available) covering the details of that code. '''It is not yet complete.''' Maintainers of these<br />
areas of code should correct errors, add information, and add links to<br />
more detailed documentation (since this document is intended to remain<br />
an overview, not complete documentation).<br />
<br />
__TOC__<br />
<br />
== Browsers, Frames, and Document Navigation ==<br />
<br />
=== Docshell ===<br />
<br />
The user of a Web browser can change the page shown in that browser in<br />
many ways: by clicking a link, loading a new URL, using the forward and<br />
back buttons, or other ways. This can happen inside a space we'll call<br />
a '''browsing context'''; this space can be a browser window, a tab, or a frame<br />
or iframe within a document. The toplevel data structures within Gecko<br />
represent this browsing context; they contain other data structures<br />
representing the individual pages displayed inside of it (most<br />
importantly, the current one). In terms of implementation, these two<br />
types of navigation, the top level of a browser and the frames within<br />
it, largely use the same data structures.<br />
<br />
In Gecko, the '''docshell''' is the toplevel object responsible for<br />
managing a single browsing context. It, and the associated '''session history''' code, <br />
manage the navigation between pages inside of a<br />
docshell. (Note the difference between session history, which is a<br />
sequence of pages in a single browser session, used for recording information<br />
for back and forward navigation, and global history, which is the<br />
history of pages visited and associated times, regardless of browser<br />
session, used for things like link coloring and address autocompletion.)<br />
<br />
There are relatively few objects in Gecko that are associated with a<br />
docshell rather than being associated with a particular one of the pages<br />
inside of it. Most such objects are attached to the docshell. An important object associated with the docshell is the nsGlobalWindowOuter which is what the HTML5 spec refers to as a WindowProxy (into which Window objects, as implemented by nsGlobalWindowInner, are loaded). See the DOM section below for more information on<br />
this.<br />
<br />
The most toplevel object for managing the contents of a particular page<br />
being displayed within a docshell is a document viewer (see layout).<br />
Other important objects associated with this presentation are the<br />
document (see DOM) and the pres(entation) shell and pres(entation)<br />
context (see layout).<br />
<br />
[[File:WebNavigation.png|thumb|400px|<xul:browser>, frameloader and docshell in single process configuration]]<br />
<br />
Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In Gecko, a browsing context container would implement <code>[https://dxr.mozilla.org/mozilla-central/rev/f9a5e9ed62103c84e4cde915f4d08f1ce71be83e/dom/base/nsIFrameLoader.idl#271 nsIFrameLoaderOwner]</code> to hold a '''frameloader''', which holds and manages the docshell. <br />
<br />
One of the most interfaces docshell implemented is <code>[https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl nsIWebNavigation]</code>. It defines major functions of a browsing context, such as <code>loadURI</code> / <code>goBack</code> / <code>goForward</code> and <code>reload</code>. In single process configuration of desktop Firefox, <code><xul:browser></code> (which represents a tab) operates on docshell through <code>nsIWebNavigation</code>, as shown in the right figure.<br />
<br />
* code: mozilla/docshell/<br />
* bugzilla: Core::Document Navigation<br />
* documentation: [[DocShell:Home Page]]<br />
<br />
=== Session History ===<br />
<br />
In order to keep the session history of subframes after the root document is unloaded and docshells of subframes are destroyed, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change).<br />
<br />
As an example to explain the structure of session history implementation in Gecko, consider there's a tab A, which loads document 1; in document 1, there are iframe B & C, which loads document 2 & 3, respectively. Later, an user navigates iframe B to document 4. The following figures show the conceptual model of the example, and the corresponding session history structure.<br />
<br />
{| <br />
| [[File:BrowsingContextExample1.png|thumb|190px|Conceptual model representation; color denotes current visible active documents]]<br />
| [[File:SHistoryExample1.png|thumb|180px|Session history structure; color denotes current transaction / entries]]<br />
|}<br />
<br />
In Gecko, a [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHistory.h session history] object holds a list of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHTransaction.h transactions] (denoted as T1 & T2 in the figure); each transaction points to a tree of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHEntry.h entries]; each entry records the docshell it associated to, and a URL. Now that if we navigate the tab to a different root document 5, which includes an iframe D with document 6, then it becomes:<br />
<br />
{| <br />
| [[File:BrowsingContextExample2.png|thumb|275px|Conceptual model representation]]<br />
| [[File:SHistoryExample2.png|thumb|250px|Session history structure]]<br />
|}<br />
<br />
=== Embedding ===<br />
<br />
To be written (and maybe rewritten if we get an IPC embedding API).<br />
<br />
[[File:WebNavigationE10S.png|thumb|500px|<xul:remote-browser>, frameloader and docshell in multiprocess configuration. The horizontal dash-lines represent inter-process communication]]<br />
<br />
=== Multi-process and IPC ===<br />
<br />
In a multi-process desktop Firefox, a tab is managed by <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/remote-browser.xml <xul:remote-browser>]</code>. It still operates on nsIWebNavigation, but in this case the docshell is in a remote process and can not be accessed directly. The encapsulation of remote nsIWebNavigation is done by the javascript-implemented <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/components/remotebrowserutils/RemoteWebNavigation.js RemoteWebNavigation]</code>.<br />
<br />
In this configuration, the frameloader of a root docshell lives in parent process, so it can not access docshell directly either. Instead, it holds a <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]</code> instance to interact with <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]</code> in child-process. At C/C++ level, the communication across processes for a single tab is through the '''PBrowser''' IPC protocol implemented by TabParent and TabChild, while at the javascript level it's done by '''message manager''' (which is ontop of PBrowser). RemoteWebNavigation, for example, sends messages to <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/browser-child.js browser-child.js]</code> in content process through message manager.<br />
<br />
== Networking ==<br />
<br />
The network library Gecko uses is called Necko. Necko APIs are largely organized around three concepts: '''URI objects''', '''protocol handlers''', and '''channels'''.<br />
<br />
=== Protocol handlers ===<br />
A '''protocol handler''' is an XPCOM service associated with a particular URI scheme or network protocol. Necko includes protocol handlers for HTTP, FTP, the data: URI scheme, and various others. Extensions can implement protocol handlers of their own.<br />
<br />
A protocol handler implements the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl nsIProtocolHandler]</code> API, which serves three primary purposes:<br />
# Providing metadata about the protocol (its security characteristics, whether it requires actual network access, what the corresponding URI scheme is, what TCP port the protocol uses by default).<br />
# Creating URI objects for the protocol's scheme.<br />
# Creating channel objects for the protocol's URI objects<br />
<br />
Typically, the built-in I/O service (<code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService2.idl nsIIOService]</code>) is responsible for finding the right protocol handler for URI object creation and channel creation, while a variety of consumers queries protocol metadata. Querying protocol metadata is the recommended way to handle any sort of code that needs to have different behavior for different URI schemes. In particular, unlike whitelists or blacklists, it correctly handles the addition of new protocols.<br />
<br />
A service can register itself as a protocol handler by registering for the contract ID <code>"@mozilla.org/network/protocol;1?name=SSSSS"</code> where <code>SSSS</code> is the URI scheme for the protocol (e.g. "http", "ftp", and so forth).<br />
<br />
=== URI objects ===<br />
URI objects, which implement the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURI.idl nsIURI]</code> API, are a way of representing URIs and IRIs. Their main advantage over strings is that they do basic syntax checking and canonicalization on the URI string that they're provided with. They also provide various accessors to extract particular parts of the URI and provide URI equality comparisons. URIs that correspond to hierarchical schemes implement the additional <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURL.idl nsIURL]</code> interface, which exposes even more accessors for breaking out parts of the URI.<br />
<br />
URI objects are typically created by calling the <code>newURI</code> method on the I/O service, or in C++ by calling the <code>NS_NewURI</code> utility function. This makes sure to create the URI object using the right protocol handler, which ensures that the right kind of object is created. Direct creation of URIs via <code>createInstance</code> is reserved for protocol handler implementations.<br />
<br />
=== Channels ===<br />
[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIChannel.idl Channels] are the Necko representation of a single request/response interaction with a server. A channel is created by calling the <code>newChannel</code> method on the [https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService.idl I/O service], or in C++ by calling the <code>[https://dxr.mozilla.org/mozilla-central/search?q=function%3ANS_NewChannel&case=true NS_NewChannel]</code> utility function. The channel can then be configured as needed, and finally its <code>asyncOpen</code> method can be called. This method takes an <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl nsIStreamListener]</code> as an argument.<br />
<br />
If <code>asyncOpen</code> has returned successfully, the channel guarantees that it will asynchronously call the <code>onStartRequest</code> and <code>onStopRequest</code> methods on its stream listener. This will happen even if there are network errors that prevent Necko from actually performing the requests. Such errors will be reported in the channel's status and in the <code>status</code> argument to <code>onStopRequest</code>.<br />
<br />
If the channel ends up being able to provide data, it will make one or more <code>onDataAvailable</code> on its listener after calling <code>onStartRequest</code> and before calling <code>onStopRequest</code>. For each call, the listener is responsible for either returning an error or reading the entire data stream passed in to the call.<br />
<br />
If an error is returned from either <code>onStartRequest</code> or <code>onDataAvailable</code>, the channel must act as if it has been canceled with the corresponding error code.<br />
<br />
A channel has two URI objects associated with it. The <code>originalURI</code> of the channel is the URI that was originally passed to <code>newChannel</code> to create the channel that then had <code>asyncOpen</code> called on it. The <code>URI</code> is the URI from which the channel is reading data. These can be different in various cases involving protocol handlers that forward network access to other protocol handlers, as well as in situations in which a redirect occurs (e.g. following an HTTP 3xx response). In redirect situations, a new channel object will be created, but the originalURI will be propagated from the old channel to the new channel.<br />
<br />
Note that the <code>nsIRequest</code> that's passed to onStartRequest must match the one passed to onDataAvailable and onStopRequest, but need not be the original channel that asyncOpen was called on. In particular, when an HTTP redirect happens the request argument to the callbacks will be the post-redirect channel.<br />
<br />
TODO: crypto?<br />
<br />
== Document rendering pipeline ==<br />
<br />
Some of the major components of Gecko can be described as steps on the<br />
path from an HTML document coming in from the network to the graphics<br />
commands needed to render that document. An HTML document is a<br />
serialization of a tree structure. (FIXME: add diagram) The HTML<br />
parser and content sink create an in-memory representation of this tree,<br />
which we call the '''DOM tree''' or '''content tree'''.<br />
Many JavaScript APIs operate on the content tree. Then, in<br />
layout, we create a second tree, the '''frame tree''' (or<br />
'''rendering tree''') that is a similar shape to the content tree,<br />
but where each node in the tree represents a rectangle (except in SVG<br />
where they represent other shapes). We then compute the positions of<br />
the nodes in the frame tree (called '''frames''') and paint them<br />
using our cross-platform graphics APIs (which, underneath, map to<br />
platform-specific graphics APIs).<br />
<br />
Further documentation:<br />
* Talk: Fast CSS: How Browsers Lay Out Web Pages (David Baron, 2012-03-11): [https://dbaron.org/talks/2012-03-11-sxsw/slide-1.xhtml slideshow], [https://dbaron.org/talks/2012-03-11-sxsw/master.xhtml all slides], [http://audio.sxsw.com/2012/podcasts/11-ACC-Fast_CSS_How_Browser_Layout.mp3 audio (MP3)], [https://schedule.sxsw.com/2012/events/event_IAP12909 session page]<br />
* Talk: Efficient CSS Animations (an updated version of the previous talk with a slightly different focus) (David Baron, 2014-06-04): [https://dbaron.org/talks/2014-06-04-cssday/slide-1.xhtml slideshow], [https://dbaron.org/talks/2014-06-04-cssday/master.xhtml all slides], [http://vimeo.com/channels/cssday/103108124 video]<br />
* Talk: [https://air.mozilla.org/benoit-girard-gecko-rendering/ Overview of the Gecko Rendering Pipeline] (Benoit Girard, 2014-10-14)<br />
<br />
=== Parser ===<br />
<br />
The parser's job is to transform a character stream into a tree<br />
structure, with the help of the content sink classes.<br />
<br />
HTML is parsed using a parser implementing the parsing algorithm in the<br />
HTML specification (starting with HTML5). Much of this parser is<br />
translated from Java, and changes are made to the Java version. This<br />
parser in parser/html/. The parser is driven by the output of the networking layer (see nsHtml5StreamParser::OnDataAvailable). The HTML5 parser is capable of parsing off the main thread which is the normal case. It also parses on the main thread to be able to synchronously handle things such as innerHTML modifications.<br />
<br />
The codebase still has the previous generation HTML parser, which is<br />
still used for a small number of things, though we hope to be able to<br />
remove it entirely soon. This parser is in parser/htmlparser/.<br />
<br />
XML is parsed using the expat library (parser/expat/) and code that<br />
wraps it (parser/xml/). This is a non-validating parser; however, it<br />
loads certain DTDs to support XUL localization.<br />
<br />
=== DOM / Content ===<br />
<br />
The content tree or DOM tree is the central data structure for Web<br />
pages. It is a tree structure, initially created from the tree<br />
structure expressed in the HTML or XML markup. The nodes in the tree<br />
implement major parts of the DOM (Document Object Model) specifications.<br />
The nodes themselves are part of a class hierarchy rooted at<br />
<code>nsINode</code>; different derived classes are used for things such<br />
as text nodes, the document itself, HTML elements, SVG elements, etc.,<br />
with further subclasses of many of these types (e.g., for specific HTML<br />
elements). Many of the APIs available to script running in Web pages<br />
are associated with these nodes. The tree structure persists while the<br />
Web pages is displayed, since it stores much of state associated with<br />
the Web page. The code for these nodes lives in the content/ directory.<br />
<br />
The DOM APIs are not threadsafe. DOM nodes can be accessed only from<br />
the main thread (also known as the UI thread (user interface thread)) of<br />
the application.<br />
<br />
There are also many other APIs available to Web pages that are not APIs<br />
on the nodes in the DOM tree. Many of these other APIs also live in the<br />
same directories, though some live in content/ and some in dom/. These<br />
include APIs such as the DOM event model.<br />
<br />
The dom/ directory also includes some of the code needed to expose Web<br />
APIs to JavaScript (in other words, the glue code between JavaScript and<br />
these APIs). For an overview, see [https://ask.mozilla.org/question/390/how-is-the-web-exposed-dom-implemented/ DOM API Implementation]. See [[#Scripting|Scripting]] below for details of the JS engine.<br />
<br />
TODO: Internal APIs vs. DOM APIs.<br />
<br />
TODO: Mutation observers / document observers.<br />
<br />
TODO: Reference counting and cycle collection.<br />
<br />
TODO: specification links<br />
<br />
=== Style System ===<br />
<br />
==== Quantum CSS (Stylo) ====<br />
<br />
Starting with Firefox 57 and later, Gecko makes use of the parallel style system written in Rust that comes from Servo. There's an [https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/ overview] of this with graphics to help explain what's going on. The [https://github.com/servo/servo/wiki/Layout-Overview Servo wiki] has some more details.<br />
<br />
==== Gecko ====<br />
<br />
The rest of the style section section describes the Gecko style system used in Firefox 56 and earlier. Some bits may still apply, but it likely needs revising.<br />
<br />
In order to display the content, Gecko needs to compute the styles<br />
relevant to each DOM node. It does this based on the model described in<br />
the CSS specifications: this model applies to style specified in CSS<br />
(e.g. by a 'style' element, an 'xml-stylesheet' processing instruction<br />
or a 'style' attribute),<br />
style specified by presentation attributes, and the default style<br />
specified by our own user agent style sheets. There are two major<br />
sets of data structures within the style system:<br />
* first, data structures that represent sources of style data, such as CSS style sheets or data from stylistic HTML attributes<br />
* second, data structures that represent computed style for a given DOM node.<br />
These sets of data structures are mostly distinct (for example, they<br />
store values in different ways).<br />
<br />
The loading of CSS style sheets from the network is managed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/Loader.h CSS loader]; <br />
they are then tokenized by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSScanner.h CSS scanner] <br />
and parsed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSParser.h CSS parser]. <br />
Those that are attached to the document also expose APIs to<br />
script that are known as the CSS Object Model, or CSSOM.<br />
<br />
The style sheets that apply to a document are managed by a class called<br />
the [https://dxr.mozilla.org/mozilla-central/source/layout/style/nsStyleSet.h style set].<br />
The style set interacts with the different types of<br />
style sheets (representing CSS style sheets, presentational<br />
attributes, and 'style' attributes) through two interfaces:<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleSheet.h nsIStyleSheet] for basic management of style sheets and<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRuleProcessor.h nsIStyleRuleProcessor] for getting the style data out of them. Usually<br />
the same object implements both interfaces, except in the most important<br />
case, CSS style sheets, where there is a single rule processor for all<br />
of the CSS style sheets in each origin (user/UA/author) of the CSS cascade.<br />
<br />
The computed style data for an element/frame are exposed to the rest of<br />
Gecko through the class mozilla::ComputedStyle (previously called<br />
nsStyleContext). Rather than having a member variable for each<br />
CSS property, it breaks up the properties into groups of related<br />
properties called style structs. These style structs obey the rule that<br />
all of the properties in a single struct either inherit by default (what<br />
the CSS specifications call "Inherited: yes" in the definition of<br />
properties; we call these inherited structs) or all are not inherited by<br />
default (we call these reset structs). Separating the properties in<br />
this way improves the ability to share the structs between similar<br />
ComputedStyle objects and reduce the amount of memory needed to store<br />
the style data. The ComputedStyle API exposes a method for getting each<br />
struct, so you'll see code like<br />
<code>sc->GetStyleText()->mTextAlign</code> for getting the value of the<br />
text-align CSS property. (Frames (see the Layout section below) also<br />
have the same<br />
GetStyle* methods, which just forward the call to the frame's<br />
ComputedStyle.)<br />
<br />
The ComputedStyles form a tree structure, in a shape somewhat like the<br />
content tree (except that we coalesce identical sibling ComputedStyles<br />
rather than keeping two of them around; if the parents have been<br />
coalesced then this can apply recursively and coalasce cousins, etc.;<br />
we do not coalesce parent/child ComputedStyles).<br />
The parent of a ComputedStyle has the style data that the ComputedStyle<br />
inherits from when CSS inheritance occurs. This means that the parent<br />
of the ComputedStyle for a DOM element is generally the ComputedStyle<br />
for that DOM element's parent, since that's how CSS says inheritance<br />
works.<br />
<br />
The process of turning the style sheets into computed style data goes<br />
through three main steps, the first two of which closely relate to the<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRule.h nsIStyleRule] interface, which represents an immutable source of style<br />
data, conceptually representing (and for CSS style rules, directly<br />
storing) a set of property:value pairs. (It is similar to the idea of a<br />
CSS style rule, except that it is immutable; this immutability allows<br />
for significant optimization. When a CSS style rule is changed through<br />
script, we create a new style rule.)<br />
<br />
The first step of going from style sheets to computed style data is<br />
finding the ordered sequence of style rules that apply to an element.<br />
The order represents which rules override which other rules: if two<br />
rules have a value for the same property, the higher ranking one wins.<br />
(Note that there's another difference from CSS style rules: declarations<br />
with !important are represented using a separate style rule.) This is<br />
done by calling one of the nsIStyleRuleProcessor::RulesMatching methods.<br />
The ordered sequence is stored in a<br />
[http://en.wikipedia.org/wiki/Trie trie] called the rule tree: the path<br />
from the root of the rule tree to any (leaf or non-leaf) node in the<br />
rule tree represents a sequence of rules, with the highest ranking<br />
farthest from the root. Each rule node (except for the root) has a<br />
pointer to a rule, but since a rule may appear in many sequences, there<br />
are sometimes many rule nodes pointing to the same rule. Once we have<br />
this list we create a ComputedStyle (or find an appropriate existing<br />
sibling) with the correct parent pointer (for inheritance) and rule node<br />
pointer (for the list of rules), and a few other pieces of information<br />
(like the pseudo-element).<br />
<br />
The second step of going from style sheets to computed style data is<br />
getting the winning property:value pairs from the rules. (This only<br />
provides property:value pairs for some of the properties; the remaining<br />
properties will fall back to inheritance or to their initial values<br />
depending on whether the property is inherited by default.) We do this<br />
step (and the third) for each style struct, the first time it is needed.<br />
This is done in nsRuleNode::WalkRuleTree, where we ask each style rule<br />
to fill in its property:value pairs by calling its MapRuleInfoInto<br />
function. When called, the rule fills in only those pairs that haven't<br />
been filled in already, since we're calling from the highest priority<br />
rule to the lowest (since in many cases this allows us to stop before<br />
going through the whole list, or to do partial computation that just<br />
adds to data cached higher in the rule tree).<br />
<br />
The third step of going from style sheets to computed style data (which<br />
various caching optimizations allow us to skip in many cases) is<br />
actually doing the computation; this generally means we transform the<br />
style data into the data type described in the "Computed Value" line in<br />
the property's definition in the CSS specifications. This<br />
transformation happens in functions called nsRuleNode::Compute*Data,<br />
where the * in the middle represents the name of the style struct. This<br />
is where the transformation from the style sheet value storage format to<br />
the computed value storage format happens.<br />
<br />
Once we have the computed style data, we then store it: if a style struct<br />
in the computed style data doesn't<br />
depend on inherited values or on data from other style structs, then we<br />
can cache it in the rule tree (and then reuse it, without recomputing<br />
it, for any ComputedStyles pointing to that rule node). Otherwise, we<br />
store it on the ComputedStyle (in which case it may be shared<br />
with the ComputedStyle's descendant ComputedStyles).<br />
This is where keeping inherited and<br />
non-inherited properties separate is useful: in the common case of<br />
relatively few properties being specified, we can generally cache the<br />
non-inherited structs in the rule tree, and we can generally share the<br />
inherited structs up and down the ComputedStyle tree.<br />
<br />
The ownership models in style sheet structures are a mix of reference<br />
counted structures (for things accessible from script) and directly<br />
owned structures. ComputedStyles are reference counted, and own their<br />
parents (from which they inherit), and rule nodes are garbage collected<br />
with a simple mark and sweep collector (which often never needs to run).<br />
<br />
* code: [http://dxr.mozilla.org/mozilla-central/source/layout/style/ layout/style/], where most files have useful one line descriptions at the top that show up in DXR<br />
* Bugzilla: Style System (CSS)<br />
* specifications<br />
** [http://www.w3.org/TR/CSS21/ CSS 2.1]<br />
** [http://www.w3.org/TR/css-2010/ CSS 2010, listing stable css3 modules]<br />
** [http://dev.w3.org/csswg/ CSS WG editors drafts] (often more current, but sometimes more unstable than the drafts on the technical reports page)<br />
** [http://dbaron.org/mozilla/visited-privacy Preventing attacks on a user's history through CSS :visited selectors]<br />
* documentation<br />
** [http://www-archive.mozilla.org/newlayout/doc/style-system.html style system documentation] (somewhat out of date)<br />
<br />
=== Layout ===<br />
<br />
Much of the layout code deals with operations on the frame tree (or<br />
rendering tree). In the frame tree, each node represents a rectangle<br />
(or, for SVG, other shapes). The frame tree has a shape similar to the<br />
content tree, since many content nodes have one corresponding frame,<br />
though it differs in a few ways, since some content nodes have more than<br />
one frame or don't have any frames at all. When elements are<br />
display:none in CSS or undisplayed for certain other reasons, they won't<br />
have any frames. When elements are broken across lines or pages, they<br />
have multiple frames; elements may also have multiple frames when<br />
multiple frames nested inside each other are needed to display a single<br />
element (for example, a table, a table cell, or many types of form<br />
controls).<br />
<br />
Each node in the frame tree is an instance of a class derived from<br />
<code>nsIFrame</code>. As with the content tree, there is a substantial<br />
type hierarchy, but the type hierarchy is very different: it includes<br />
types like text frames, blocks and inlines, the various parts of tables,<br />
flex and grid containers, and the various types of HTML form controls.<br />
<br />
Frames are allocated within an arena owned by the PresShell. Each<br />
frame is owned by its parent; frames are not reference counted, and code<br />
must not hold on to pointers to frames. To mitigate potential security<br />
bugs when pointers to destroyed frames, we use<br />
[http://robert.ocallahan.org/2010/10/mitigating-dangling-pointer-bugs-using_15.html frame poisoning], which takes two parts. When a frame is destroyed<br />
other than at the end of life of the presentation, we fill its memory<br />
with a pattern consisting of a repeated pointer to inaccessible memory,<br />
and then put the memory on a per-frame-class freelist. This means that<br />
if code accesses the memory through a dangling pointer, it will either<br />
crash quickly by dereferencing the poison pattern or it will find a<br />
valid frame.<br />
<br />
Like the content tree, frames must be accessed only from the UI thread.<br />
<br />
The frame tree should not store any important data, i.e. any data that cannot<br />
be recomputed on-the-fly. While the frame tree does<br />
usually persist while a page is being displayed, frames are often<br />
destroyed and recreated in response to certain style changes, and in the<br />
future we may do the same to reduce memory use for pages that are<br />
currently inactive. There were a number of cases where this rule was<br />
violated in the past and we stored important data in the frame tree;<br />
however, most (though not quite all) such cases are now fixed.<br />
<br />
The rectangle represented by the frame is what CSS calls the element's<br />
border box. This is the outside edge of the border (or the inside edge<br />
of the margin). The margin lives outside the border; and the padding<br />
lives inside the border. In addition to nsIFrame::GetRect, we also have<br />
the APIs nsIFrame::GetPaddingRect to get the padding box (the outside<br />
edge of the padding, or inside edge of the border) and<br />
nsIFrame::GetContentRect to get the content box (the outside edge of the<br />
content, or inside edge of the padding). These APIs may produce out of<br />
date results when reflow is needed (or has not yet occurred).<br />
<br />
In addition to tracking a rectangle, frames also track two overflow<br />
areas: ink overflow and scrollable overflow. These overflow areas<br />
represent the union of the area needed by the frame and by all its<br />
descendants. The ink overflow is used for painting-related<br />
optimizations: it is a rectangle covering all of the area that might be<br />
painted when the frame and all of its descendants paint. The scrollable<br />
overflow represents the area that the user should be able to scroll to<br />
to see the frame and all of its descendants. In some cases differences<br />
between the frame's rect and its overflow happen because of descendants<br />
that stick out of the frame; in other cases they occur because of some<br />
characteristic of the frame itself. The two overflow areas are<br />
similar, but there are differences: for example, margins are part of<br />
scrollable overflow but not ink overflow, whereas text-shadows are<br />
part of ink overflow but not scrollable overflow.<br />
<br />
When frames are broken across lines, columns, or pages, we create<br />
multiple frames representing the multiple rectangles of the element.<br />
The first one is the primary frame, and the rest are its continuations<br />
(which are more likely to be destroyed and recreated during reflow).<br />
These frames are linked together as continuations: they have a<br />
doubly-linked list that can be used to traverse the continuations using<br />
nsIFrame::GetPrevContinuation and nsIFrame::GetNextContinuation.<br />
(Currently continuations always have the same style data, though we may<br />
at some point want to break that invariant.)<br />
<br />
Continuations are sometimes siblings of each other (i.e.<br />
nsIFrame::GetNextContinuation and nsIFrame::GetNextSibling might return<br />
the same frame), and sometimes not.<br />
For example, if a paragraph contains a span which contains a link, and<br />
the link is split across lines, then the continuations of the span are<br />
siblings (since they are both children of the paragraph), but the<br />
continuations of the link are not siblings (since each continuation of<br />
the link is descended from a different continuation of the span).<br />
Traversing the entire frame tree does '''not''' require explicit traversal<br />
of any frames' continuations-list, since all of the continuations are<br />
descendants of the element containing the break.<br />
<br />
We also use continuations for cases (most importantly, bidi reordering,<br />
where left-to-right text and right-to-left text need to be separated<br />
into different continuations since they may not form a contiguous<br />
rectangle) where the continuations should not be rewrapped during<br />
reflow: we call these continuations fixed rather than fluid.<br />
nsIFrame::GetNextInFlow and nsIFrame::GetPrevInFlow traverse only the<br />
fluid continuations and do not cross fixed continuation boundaries.<br />
<br />
If an inline frame has non-inline children, then we split the original <br />
inline frame into parts. The original inline's children are <br />
distributed into these parts like so: The children of the original <br />
inline are grouped into runs of inline and non-inline, and runs of <br />
inline get an inline parent, while runs of non-inline get an anonymous <br />
block parent. We call this 'ib-splitting' or 'block-inside-inline splitting'. <br />
This splitting proceeds recursively up the frame tree until all <br />
non-inlines inside inlines are ancestors of a block frame with anonymous <br />
block wrappers in between. This splitting maintains the relative order<br />
between these child frames, and the relationship between the parts of a <br />
split inline is maintained using an ib-sibling chain. It is important <br />
to note that any wrappers created during frame construction (such as <br />
for tables) might not be included in the ib-sibling chain depending on <br />
when this wrapper creation takes place. <br />
<br />
TODO: nsBox craziness from https://bugzilla.mozilla.org/show_bug.cgi?id=524925#c64<br />
<br />
TODO: link to documentation of block and inline layout<br />
<br />
TODO: link to documentation of scrollframes<br />
<br />
TODO: link to documentation of XUL frame classes<br />
<br />
Code (note that most files in base and generic have useful one line descriptions at the top that show up in DXR):<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/base/ layout/base/] contains objects that coordinate everything and a bunch of other miscellaneous things<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/generic/ layout/generic/] contains the basic frame classes as well as support code for their reflow methods (ReflowInput, ReflowOutput)<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/forms/ layout/forms/] contains frame classes for HTML form controls<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/tables/ layout/tables/] contains frame classes for CSS/HTML tables<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/mathml/ layout/mathml/] contains frame classes for MathML<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/svg/ layout/svg/] contains frame classes for SVG<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/xul/ layout/xul/] contains frame classes for the XUL box model and for various XUL widgets<br />
<br />
Bugzilla:<br />
* All of the components whose names begin with "Layout" in the "Core" product<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bz-layout-and-styles/ Layout and Styles] (Boris Zbarsky, 2014-10-14)<br />
<br />
<br />
==== Frame Construction ====<br />
<br />
Frame construction is the process of creating frames. This is done when styles change in ways that require frames to be created or recreated or when nodes are inserted into the document. The content tree and the frame tree don't have quite the same shape, and the frame construction process does some of the work of creating the right shape for the frame tree. It handles the aspects of creating the right shape that don't depend on layout information. So for example, frame construction handles the work needed to implement [http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes table anonymous objects] but does not handle frames that need to be created when an element is broken across lines or pages.<br />
<br />
The basic unit of frame construction is a run of contiguous children of a single parent element. When asked to construct frames for such a run of children, the frame constructor first determines, based on the siblings and parent of the nodes involved, where in the frame tree the new frames should be inserted. Then the frame constructor walks through the list of content nodes involved and for each one creates a temporary data structure called a '''frame construction item'''. The frame construction item encapsulates various information needed to create the frames for the content node: its style data, some metadata about how one would create a frame for this node based on its namespace, tag name, and styles, and some data about what sort of frame will be created. This list of frame construction items is then analyzed to see whether constructing frames based on it and inserting them at the chosen insertion point will produce a valid frame tree. If it will not, the frame constructor either fixes up the list of frame construction items so that the resulting frame tree would be valid or throws away the list of frame construction items and requests the destruction and re-creation of the frame for the parent element so that it has a chance to create a list of frame construction items that it <em>can</em> fix up.<br />
<br />
Once the frame constructor has a list of frame construction items and an insertion point that would lead to a valid frame tree, it goes ahead and creates frames based on those items. Creation of a non-leaf frame recursively attempts to create frames for the children of that frame's element, so in effect frames are created in a depth-first traversal of the content tree.<br />
<br />
The vast majority of the code in the frame constructor, therefore, falls into one of these categories:<br />
* Code to determine the correct insertion point in the frame tree for new frames.<br />
* Code to create, for a given content node, frame construction items. This involves some searches through static data tables for metadata about the frame to be created.<br />
* Code to analyze the list of frame construction items.<br />
* Code to fix up the list of frame construction items.<br />
* Code to create frames from frame construction items.<br />
<br />
Code: [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.h layout/base/nsCSSFrameConstructor.h] and [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp layout/base/nsCSSFrameConstructor.cpp]<br />
<br />
==== Physical Sizes vs. Logical Sizes ====<br />
<br />
TODO: Discuss inline-size (typically width) and block size (typically height), writing modes, and the various logical vs. physical size/rect types.<br />
<br />
==== Reflow ====<br />
<br />
Reflow is the process of computing the positions and sizes of frames. (After all,<br />
frames represent rectangles, and at some point we need to figure out<br />
exactly *what* rectangle.) Reflow is done recursively, with each<br />
frame's Reflow method calling the Reflow methods on that frame's<br />
descendants.<br />
<br />
In many cases, the correct results are defined by CSS specifications<br />
(particularly [http://www.w3.org/TR/CSS21/visudet.html CSS 2.1]). In some cases, the details are not defined by<br />
CSS, though in some (but not all) of those cases we are constrained by<br />
Web compatibility. When the details are defined by CSS, however, the<br />
code to compute the layout is generally structured somewhat differently<br />
from the way it is described in the CSS specifications, since the CSS<br />
specifications are generally written in terms of constraints, whereas<br />
our layout code consists of algorithms optimized for incremental<br />
recomputation.<br />
<br />
The reflow generally starts from the root of the frame tree, though some other<br />
types of frame can act as "reflow roots" and start a reflow from them<br />
(nsTextControlFrame is one example; see the<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_REFLOW_ROOT&redirect=true NS_FRAME_REFLOW_ROOT] frame state bit).<br />
Reflow roots must obey the invariant that a change inside one of their<br />
descendants never changes their rect or overflow areas (though currently<br />
scrollbars are reflow roots but don't quite obey this invariant).<br />
<br />
In many cases, we want to reflow a part of the frame tree, and we want<br />
this reflow to be efficient. For example, when content is added or<br />
removed from the document tree or when styles change, we want the amount<br />
of work we need to redo to be proportional to the amount of content. We<br />
also want to efficiently handle a series of changes to the same content.<br />
<br />
To do this, we maintain two bits on frames:<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_IS_DIRTY&redirect=true NS_FRAME_IS_DIRTY]<br />
indicates that a frame and all of its descendants require reflow.<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_HAS_DIRTY_CHILDREN&redirect=true NS_FRAME_HAS_DIRTY_CHILDREN]<br />
indicates that a frame has a descendant that<br />
is dirty or has had a descendant removed (i.e., that it has a child that<br />
has NS_FRAME_IS_DIRTY or NS_FRAME_HAS_DIRTY_CHILDREN or it had a child<br />
removed). These bits allow coalescing of multiple updates; this<br />
coalescing is done in PresShell, which tracks the set of reflow roots<br />
that require reflow. The bits are set during calls to<br />
[https://searchfox.org/mozilla-central/search?q=PresShell%3A%3AFrameNeedsReflow&path= PresShell::FrameNeedsReflow]<br />
and are cleared during reflow.<br />
<br />
The layout algorithms used by many of the frame classes are those<br />
specified in CSS, which are based on the traditional document formatting<br />
model, where widths are input and heights are output.<br />
<br />
In some cases, however, widths need to be determined based on the<br />
content. This depends on two ''intrinsic widths'': the minimum<br />
intrinsic width (see [https://searchfox.org/mozilla-central/search?q=nsIFrame%3A%3AGetMinISize&path= nsIFrame::GetMinISize]) and the preferred intrinsic<br />
width (see [https://searchfox.org/mozilla-central/search?q=nsIFrame%3A%3AGetPrefISize&path= nsIFrame::GetPrefISize]). The concept of what these widths<br />
represent is best explained by describing what they are on a paragraph<br />
containing only text: in such a paragraph the minimum intrinsic width<br />
is the width of the longest word, and the preferred intrinsic width is<br />
the width of the entire paragraph laid out on one line.<br />
<br />
Intrinsic widths are invalidated separately from the dirty bits<br />
described above. When a caller informs the pres shell that a frame<br />
needs reflow (PresShell::FrameNeedsReflow), it passes one of three<br />
options:<br />
* eResize indicates that no intrinsic widths are dirty<br />
* eTreeChange indicates that intrinsic widths on it and its ancestors are dirty (which happens, for example, if new children are added to it)<br />
* eStyleChange indicates that intrinsic widths on it, its ancestors, and its descendants are dirty (for example, if the font-size changes)<br />
<br />
Reflow is the area where the XUL frame classes (those that inherit from<br />
nsBoxFrame or nsLeafBoxFrame) are most different from the rest. Instead<br />
of using nsIFrame::Reflow, they do their layout computations using<br />
intrinsic size methods called GetMinSize, GetPrefSize, and GetMaxSize<br />
(which report intrinsic sizes in two dimensions) and a final layout<br />
method called Layout. In many cases these methods defer some of the<br />
computation to a separate object called a layout manager.<br />
<br />
When an individual frame's Reflow method is called, most of the input is<br />
provided on an object called ReflowInput and the output is filled<br />
in to an object called ReflowOutput. After reflow, the caller<br />
(usually the parent) is responsible for setting the frame's size based<br />
on the metrics reported. (This can make some computations during reflow<br />
difficult, since the new size is found in either the reflow state or the<br />
metrics, but the frame's size is still the old size. However, it's<br />
useful for invalidating the correct areas that need to be repainted.)<br />
<br />
One major difference worth noting is that in XUL layout, the size of the<br />
child is set prior to its parent calling its Layout method. (Once<br />
invalidation uses display lists and is no longer tangled up in Reflow,<br />
it may be worth switching non-XUL layout to work this way as well.)<br />
<br />
==== Painting ====<br />
<br />
TODO: display lists (and event handling)<br />
<br />
TODO: layers<br />
<br />
==== Pagination ====<br />
<br />
The concepts behind pagination (also known as fragmentation) are a bit complicated, so for now we've split them off into a separate document: [[Gecko:Continuation_Model]]. This code is used for printing, print-preview, and multicolumn frames.<br />
<br />
=== Dynamic change handling along the rendering pipeline ===<br />
<br />
The ability to make changes to the DOM from script is a major feature of the Web platform. Web authors rely on the concept (though there are a few exceptions, such as animations) that changing the DOM from script leads to the same rendering that would have resulted from starting from that DOM tree. They also rely on the performance characteristics of these changes: small changes to the DOM that have small effects should have proportionally small processing time. This means that Gecko needs to efficiently propagate changes from the content tree to style, the frame tree, the geometry of the frame tree, and the screen.<br />
<br />
For many types of changes, however, there is substantial overhead to processing a change, no matter how small. For example, reflow must propagate from the top of the frame tree down to the frames that are dirty, no matter how small the change. One very common way around this is to batch up changes. We batch up changes in lots of ways, for example:<br />
* The content sink adds multiple nodes to the DOM tree before notifying listeners that they've been added. This allows notifying once about an ancestor rather than for each of its descendants, or notifying about a group of descendants all at once, which speeds up the processing of those notifications.<br />
* We batch up nodes that require style reresolution (recomputation of selector matching and processing the resulting style changes). This batching is tree based, so it not only merges multiple notifications on the same element, but also merges a notification on an ancestor with a notification on its descendant (since ''some'' of these notifications imply that style reresolution is required on all descendants).<br />
* We wait to reconstruct frames that require reconstruction (after destroying frames eagerly). This, like the tree-based style reresolution batching, avoids duplication both for same-element notifications and ancestor-descendant notifications, even though it doesn't actually do any tree-based caching.<br />
* We postpone doing reflows until needed. As for style reresolution, this maintains tree-based dirty bits (see the description of NS_FRAME_IS_DIRTY and NS_FRAME_HAS_DIRTY_CHILDREN under Reflow).<br />
* We allow the OS to queue up multiple invalidates before repainting (though we will likely switch to controlling that ourselves). This leads to a single repaint of some set of pixels where there might otherwise have been multiple (though it may also lead to more pixels being repainted if multiple rectangles are merged to a single one).<br />
<br />
Having changes buffered up means, however, that various pieces of information (layout, style, etc.) may not be up-to-date. Some things require up-to-date information: for example, we don't want to expose the details of our buffering to Web page script since the programming model of Web page script assumes that DOM changes take effect "immediately", i.e., that the script shouldn't be able to detect any buffering. Many Web pages depend on this.<br />
<br />
We therefore have ways to flush these different sorts of buffers. There are methods called FlushPendingNotifications on nsIDocument and nsIPresShell, that take an argument of what things to flush:<br />
* Flush_Content: create all the content nodes from data buffered in the parser<br />
* Flush_ContentAndNotify: the above, plus notify document observers about the creation of all nodes created so far<br />
* Flush_Style: the above, plus make sure style data are up-to-date<br />
* Flush_Frames: the above, plus make sure all frame construction has happened (currently the same as Flush_Style)<br />
* Flush_InterruptibleLayout: the above, plus perform layout (Reflow), but allow interrupting layout if it takes too long<br />
* Flush_Layout: the above, plus ensure layout (Reflow) runs to completion<br />
* Flush_Display (should never be used): the above, plus ensure repainting happens<br />
<br />
The major way that notifications of changes propagate from the content code to layout and other areas of code is through the nsIDocumentObserver and nsIMutationObserver interfaces. Classes can implement this interface to listen to notifications of changes for an entire document or for a subtree of the content tree.<br />
<br />
WRITE ME: ... layout document observer implementations<br />
<br />
TODO: how style system optimizes away rerunning selector matching<br />
<br />
TODO: style changes and nsChangeHint<br />
<br />
=== Refresh driver ===<br />
<br />
== Graphics ==<br />
[https://wiki.mozilla.org/Platform/GFX Wiki page] | [https://wiki.mozilla.org/index.php?title=Platform/GFX/Contribute contribute]<br />
<br />
Further documentation:<br />
* Jargon: [https://wiki.mozilla.org/Platform/GFX/Jargon Helpful list] of terms used in Graphics<br />
* Talk: [https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E271782 2018 SF All-Hands Graphics Overview] (nical/mattwoodrow/gw) <br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bjacob-gfx-overview/ An overview of Gecko's graphics stack] (Benoit Jacob, 2014-08-12)<br />
* Talk: [https://air.mozilla.org/jeff-muizelaar-2d-graphics/ 2D Graphics] (Jeff Muizelaar, 2014-10-14)<br />
* Blog: Mozilla gfx blog's [https://mozillagfx.wordpress.com/category/technical/ "technical" tag].<br />
* Blog: WebRender/gfx [https://mozillagfx.wordpress.com/category/wr-newsletter/ newsletter].<br />
<br />
==== WebRender vs Layers ====<br />
Until recently, there were two different rendering paths in Gecko. The new one is WebRender.<br />
"Layers" is the name of the previous / non-WebRender architecture, and was removed in [https://bugzilla.mozilla.org/show_bug.cgi?id=1541472 bug 1541472].<br />
<br />
Here's a very high level summary of how it works: [https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/]<br />
<br />
From a high level architectural point of view, the main differences are:<br />
* Layers separate rendering into a painting phase and a compositing phase which usually happen in separate processes. For WebRender, on the other hand, all of the rendering happens in a single operation.<br />
* Layers internally expresses rendering rendering commands through a traditional canvas-like immediate mode abstraction (Moz2D) which has several backends (some of which use the GPU). WebRender works directly at a lower and GPU-centric level, dealing in terms of batches, draw calls and shaders.<br />
* Layers code is entirely C++, while WebRender is mostly Rust with some integration glue in C++.<br />
<br />
==== WebRender ====<br />
<br />
* WebRender's main entry point is a display list. It is a description of a visible subset of the page produced by the layout module.<br />
* WebRender and Gecko's display list representations are currently different so there is a translation between the two.<br />
* The WebRender display list is serialized on the content process and sent to the process that will do the rendering (either the main process or the GPU process).<br />
* The rendering process deserializes the display list and builds a "Scene".<br />
* From this scene, frames can be built. Frames represent the actual drawing operations that need to be performed for content to appear on screen. A single scene can produce several frames, for example if an element of the scene is scrolled.<br />
* The Renderer consumes the frame and produces actual OpenGL drawing commands. Currently WebRender is based on OpenGL and on Windows the OpenGL commands are transparently turned into D3D ones using ANGLE. In the long run we plan to work with a vulkan-like abstraction called gfx-rs.<br />
<br />
The main phases in WebRender are therefore:<br />
* Display list building<br />
* Scene building<br />
* frame building<br />
* GPU commands execution<br />
<br />
All of these phases are performed on different threads. The first two happen whenever the layout of the page changes or the user scrolls past the part of the page covered by the current scene. They don't necessarily happen at a high frequency. Frame building and GPU command execution, on the other hand, happen at a high frequency (the monitor's refresh rate during scrolling and animations), which means that they must fit in the frame budget (typically 16ms). In order to avoid going over the frame budget, frame building and GPU command execution can overlap. scene building and frame building can also overlap and it is possible to continue generating frames while a new scene is being built asynchronously.<br />
<br />
WebRender has a fallback mechanism called "Blob images" for content that it does not handle (for example some SVG drawing primitives). It consists in recording and serializing a list of drawing commands (the "blob") on the content process and sending it to WebRender along with the regular display list. Blobs are then turned into images on the CPU during the scene building phase. The most of WebRender treats blob images as regular images.<br />
<br />
Some important internal operations and data structures:<br />
* The clip-scroll tree (TODO)<br />
* The render task graph (TODO)<br />
* Culling: https://mozillagfx.wordpress.com/2018/11/08/webrender-culling/<br />
* Batching: https://mozillagfx.wordpress.com/2018/11/21/webrender-batching/<br />
* Picture-caching: https://mozillagfx.wordpress.com/2018/11/02/webrender-picture-caching/<br />
<br />
The WebRender code path reuses the layers IPC infrastructure for sharing textures between the content process and the renderer. For example The ImageBridge protocol described in the Compositing section is also used to transfer video frames when WebRender is enabled.<br />
Asynchronous Panning and Zooming (APZ) described in a later sections is also relevant to WebRender.<br />
<br />
==== Painting/Rasterizing (Layers aka Non-WebRender) ====<br />
<br />
[[File:Layers pipeline overview.png|650px|thumb|Layers pipeline overview]]<br />
<br />
Painting/rendering/rasterizing is the step where graphical primitives (such as a command to fill an [https://developer.mozilla.org/en-US/docs/Web/SVG SVG] circle, or the internally produced command to draw a rounded rectangle) are used to color in the pixels of a surface so that the surface "displays" those rasterized primitives.<br />
<br />
The platform independent library that gecko uses to render is [http://dxr.mozilla.org/mozilla-central/source/gfx/2d/2D.h Moz2D]. Gecko code paints into Moz2D DrawTarget objects (the DrawTarget base class having multiple platform dependent subclasses).<br />
<br />
==== Compositing ====<br />
<br />
The compositing stage of the rendering pipeline is operated by the [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ gfx/layers] module.<br />
<br />
Different parts of a web page can sometimes be painted into intermediate surfaces retained by layers. It can be convenient to think of layers as the layers in image manipulation programs like The Gimp or Photoshop. Layers are organized as a tree. Layers are primarily used to minimize invalidating and repainting when elements are being animated independently of one another in a way that can be optimized using layers (e.g. opacity or transform animations), and to enable some effects (such as transparency and 3D transforms).<br />
<br />
Compositing is the action of flattening the layers into the final image that is shown on the screen.<br />
<br />
We paint and composite on separate threads (it is called Off-main-thread compositing, or OMTC, and a long time ago Firefox did not have this separation).<br />
<br />
The Layers architecture is built on the following notions:<br />
* Compositor: an object that can draw quads on the screen (or on an off-screen render target).<br />
* Texture: an object that contains image data.<br />
* Compositable: an object that can manipulate one or several textures, and knows how to present them to the compositor<br />
* Layer: an element of the layer tree. A layer usually doesn't know much about compositing: it uses a compositable to do the work. Layers are mostly nodes of the layer tree.<br />
<br />
[[File:LayersRefactoring.png|thumb|650px|New layers architecture, with OGL backend]]<br />
<br />
Since painting and compositing are performed on different threads/processes, we need a mechanism to synchronize a client layer tree that is constructed on the content thread, and a host layer tree that is used for compositing on the compositor thread.<br />
This synchronization process must ensure that the host layer tree reflects the state of the current layer tree while remaining in a consistent state, and must transfer texture data from a thread to the other. Moreover, on some platforms the content and compositor threads may live in separate processes.<br />
<br />
To perform this synchronization, we use the IPDL IPC framework. IPDL lets us describe communications protocols and actors in a domain specific language. for more information about IPDL, read https://wiki.mozilla.org/IPDL<br />
<br />
When the client layer tree is modified, we record modifications into messages that are sent together to the host side within a transaction. A transaction is basically a list of modifications to the layer tree that have to be applied all at once to preserve consistency in the state of the host layer tree.<br />
<br />
Texture transfer is done by synchronizing texture objects across processes/threads using a couple TextureClient/TextureHost that wrap shared data and provide access to it on both sides. TextureHosts provide access to one or several TextureSource, which has the necessary API to actually composite the texture (TextureClient/Host being more about IPC synchronization than actual compositing.<br />
The logic behind texture transfer (as in single/double/triple buffering, texture tiling, etc) is operated by the CompositableClient and CompositableHost.<br />
<br />
It is important to understand the separation between layers and compositables. Compositables handle all the logic around texture transfer, while layers define the shape of the layer tree. a Compositable is created independently from a layer and attached to it on both sides. While layers transactions can only originate from the content thread, this separation makes it possible for us to have separate compositable transactions between any thread and the compositor thread. We use the ImageBridge IPDL protocol to that end. The Idea of ImageBridge is to create a Compositable that is manipulated on the ImageBridgeThread, and that can transfer/synchronize textures without using the content thread at all. This is very useful for smooth Video compositing: video frames are decoded and passed into the ImageBridge without ever touching the content thread, which could be busy processing reflows or heavy javascript workloads.<br />
<br />
It is worth reading the inline code documentation in the following files:<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Compositor.h gfx/layers/Compositor.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ShadowLayers.h gfx/layers/ShadowLayers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Layers.h gfx/layers/Layers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/host/TextureHost.h gfx/layers/host/TextureHost.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/CompositableClient.h gfx/layers/client/CompositableClient.h]<br />
<br />
To visualize how a web page is layered, turn on the pref "layers.draw-borders" in about:config. When this pref is on, the borders of layers and tiles are displayed on top of the content. This only works when using the Compositor API, that is when WebRender is disabled, since WebRender does not have the same concept of layers.<br />
<br />
Blog posts with information on Layers that should be integrated here:<br />
<br />
* [http://www.basschouten.com/blog1.php/layers-cross-platform-acceleration Layers: Cross-Platform Acceleration]<br />
* [http://robert.ocallahan.org/2010/04/layers_01.html Layers]<br />
* [http://robert.ocallahan.org/2010/07/retained-layers_16.html Retained Layers]<br />
* [http://chrislord.net/index.php/2011/07/25/shadow-layers-and-learning-by-failing/ Shadow Layers, and learning by failing]<br />
* [http://chrislord.net/index.php/2011/08/16/accelerated-layer-rendering-and-learning-by-some-success/ Accelerated layer-rendering, and learning by (some) success]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/mask-layers_26.html Mask Layers]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/building-mask-layer.html Building a mask layer]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/06/mask-layers-on-direct3d-backends.html Mask Layers on the Direct3D backends]<br />
* [http://robert.ocallahan.org/2011/09/graphics-api-design.html Graphics API Design]<br />
<br />
==== Async Panning and Zooming ====<br />
<br />
On some of our mobile platforms we have some code that allows the user to do asynchronous (i.e. off-main-thread) panning and zooming of content. This code is the Async Pan/Zoom module (APZ) code and is further documented at [[Platform/GFX/APZ]].<br />
<br />
== Scripting ==<br />
<br />
=== JavaScript Engine ===<br />
<br />
Gecko embeds the SpiderMonkey JavaScript engine (located in js/src). The JS engine includes a number of Just-In-Time compilers (or JITs). SpiderMonkey provides a powerful and extensive embedding API (called the JSAPI). Because of its complexity, using the JSAPI directly is frowned upon, and a number of abstractions have been built in Gecko to allow interacting with the JS engine without using JSAPI directly. Some JSAPI concepts are important for Gecko developers to understand, and they are listed below:<br />
<br />
* Global object: The '''global object''' is the object on which all global variables/properties/methods live. In a web page this is the 'window' object. In other things such as XPCOM components or sandboxes XPConnect creates a global object with a small number of builtin APIs.<br />
* Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment.<br />
* When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information).<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/kannan-vijayan-baseline-jit/ Baseline JIT] (Kannan Vijayan, 2014-10-14)<br />
<br />
=== XPConnect ===<br />
<br />
'''XPConnect''' is a bridge between C++ and JS used by XPCOM components exposed to or implemented in JavaScript. XPConnect allows two XPCOM components to talk to each other without knowing or caring which language they are implemented in. XPConnect allows JS code to call XPCOM components by exposing XPCOM interfaces as JS objects, and mapping function calls and attributes from JS into virtual method calls on the underlying C++ object. It also allows JS code to implement an XPCOM component that can be called from C++ by faking the vtable of an interface and translating calls on the interface into JS calls. XPConnect accomplishes this using the vtable data stored in XPCOM TypeLibs (or XPT files) by the XPIDL compiler and a small layer of platform specific code called [https://developer.mozilla.org/en-US/docs/xptcall_FAQ xptcall] that knows how to interact with and impersonate vtables of XPCOM interfaces.<br />
<br />
XPConnect is also used for a small (and decreasing) number of legacy DOM objects. At one time all of the DOM used XPConnect to talk to JS, but we have been replacing XPConnect with the WebIDL bindings (see the next section for more information). Arbitrary XPCOM components are not exposed to web content. XPCOM components that want to be accessible to web content must provide class info (that is, they must QI to nsIClassInfo) and must be marked with the nsIClassInfo::DOM_OBJECT flag. Most of these objects also are listed in dom/base/nsDOMClassInfo.cpp, where the interfaces that should be visible to the web are enumerated. This file also houses some "scriptable helpers" (classes ending in "SH" and implementing nsIXPCScriptable), which are a set of optional hooks that can be used by XPConnect objects to implement more exotic behaviors (such as indexed getters or setters, lazily resolved properties, etc). This is all legacy code, and any new DOM code should use the WebIDL bindings.<br />
<br />
=== WebIDL Bindings ===<br />
<br />
The '''WebIDL bindings''' are a separate bridge between C++ and JS that is specifically designed for use by DOM code. We intend to replace all uses of XPConnect to interface with content JavaScript with the WebIDL bindings. [https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings Extensive documentation] on the WebIDL bindings is available, but the basic idea is that a binding generator takes WebIDL files from web standards and some configuration data provided by us and generates at build time C++ glue code that sits between the JS engine and the DOM object. This setup allows us to produce faster, more specialized code for better performance at the cost of increased codesize.<br />
<br />
The WebIDL bindings also implement all of the behavior specified in WebIDL, making it possible for new additions to the DOM to behave correctly "out of the box". The binding layer also provides C++ abstractions for types that would otherwise require direct JSAPI calls to handle, such as typed arrays.<br />
<br />
=== Reflectors ===<br />
Whether using [https://wiki.mozilla.org/Gecko:Overview#XPConnect XPConnect] or [https://wiki.mozilla.org/Gecko:Overview#WebIDL_Bindings Web IDL], the basic idea is that there is a JSObject called a '''reflector''' that represents some C++ object. The JSObject ensures that the C++ object remains alive while the JSObject is alive. The C++ object does ''not'' necessarily keep the JSObject alive; this allows the JSObject to be garbage-collected as needed. If this happens, the next time JS needs access to that C++ object a new reflector is created. If something happens that requires that the actual object identity of the JSObject be preserved even though it's not explicitly reachable, the C++ object will start keeping the JSObject alive as well. After this point, the cycle collector would be the only way for the pair of objects to be deallocated. Examples of operations that require identity-preservation are adding a property to the object, giving the object a non-default prototype, using the object as a weakmap key or weakset member.<br />
<br />
In the XPConnect case, reflectors are created by XPCWrappedNative::GetNewOrUsed. This finds the right JSClass to use for the object, depending on information provided by the C++ object via the nsIClassInfo interface about special class hooks it might need. If the C++ object has no clasinfo, XPC_WN_NoHelper_JSClass is used. GetNewOrUsed also determines the right global to use for the reflector, again based on nsIClassInfo information, with a fallback to the JSContext's current global.<br />
<br />
In the Web IDL case, reflectors are created by the Wrap method that the binding code generator spits out for the relevant Web IDL interface. So for the Document interface, the relevant method is mozilla::dom::Document_Binding::Wrap. The JSClass that is used is also created by the code generator, as part of the DOMJSClass struct it outputs. Web IDL objects provide a GetParentObject() method that is used to determine the right global to use for the reflector.<br />
<br />
Web IDL objects typically inherit from nsWrapperCache, and use that class to store a pointer to their reflector and to keep it alive as needed. The only exception to that is if the Web IDL object only needs to find a reflector once during its lifetime, typically as a result of a Web IDL constructor being called from JS (see TextEncoder for an example). In that case, there is no need to get the JS object from the C++ one, and no way to end up in any of the situations that require preserving the JS object from the C++ side, so the Web IDL object is allowed to not inherit from nsWrapperCache.<br />
<br />
=== Security ===<br />
<br />
Gecko's JS security model is based on the concept of compartments. Every compartment has a '''principal''' associated with it that contains security information such as the '''origin''' of the compartment, whether or not it has system privileges, etc. For the following discussion, '''wrappee''' refers to the underlying object being wrapped, '''scope''' refers to the compartment the object is being wrapped for use in, and '''wrapper''' refers to the object created in '''scope''' that allows it to interact with '''wrappee'''. "Chrome" refers to JS that is built in to the browser or part of an extension, which runs with full privileges, and is contrasted with "content", which is web provided script that is subject to security restrictions and the same origin policy.<br />
<br />
* Xray wrappers: Xray wrappers are used when the scope has chrome privileges and the wrappee is the JS reflection of an underlying DOM object. Beyond the usual CCW duties of making sure that content code does not run with chrome privileges, Xray wrappers also ensure that calling methods or accessing attributes on the wrappee has the "expected" effect. For example, a web page could replace the <code>close</code> method on its window with a JS function that does something completely different. (e.g. <code>window.close = function() { alert("This isn't what you wanted!") };</code>). Overwriting methods in this way (or creating entirely new ones) is referred to as '''expando''' properties. Xrays see through expando properties, invoking the original method/getter/setter if the expando overwrites a builtin or seeing undefined in the expando creates a new property. This allows chrome code to call methods on content DOM objects without worrying about how the page has changed the object.<br />
* Waived xray wrappers: The xray behavior is not always desirable. It is possible for chrome to "waive" the xray behavior and see the actual JS object. The wrapper still guarantees that code runs with the correct privileges, but methods/getters/setters may not behave as expected. This is equivalent to the behavior chrome sees when it looks at non-DOM content JS objects.<br />
* For more information, see the [https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Script_security MDN page]<br />
* bholley's [https://air.mozilla.org/enter-the-compartment/ Enter the Compartment] talk also provides an overview of our compartment architecture.<br />
<br />
== Images ==<br />
<br />
== Plugins ==<br />
<br />
== Platform-specific layers ==<br />
<br />
* widget<br />
* native theme<br />
* files, networking, other low-level things<br />
* Accessibility APIs<br />
* Input. Touch-input stuff is somewhat described at [[Platform/Input/Touch]].<br />
<br />
== Editor ==<br />
<br />
== Base layers ==<br />
<br />
=== NSPR ===<br />
<br />
NSPR is a library for providing cross-platform APIs for various<br />
platform-specific functions. We tend to be trying to use it as little<br />
as possible, although there are a number of areas (particularly some<br />
network-related APIs and threading/locking primitives) where we use it<br />
quite a bit.<br />
<br />
=== XPCOM ===<br />
<br />
XPCOM is a cross-platform modularity library, modeled on Microsoft COM. It<br />
is an object system in which all objects inherit from the <code>nsISupports</code> interface.<br />
<br />
components and services, contract IDs and CIDs<br />
<br />
prior overuse of XPCOM; littering with XPCOM does not produce modularity<br />
<br />
Base headers (part of xpcom/base/) and data structures. See also mfbt.<br />
<br />
Threading<br />
<br />
xptcall, proxies<br />
<br />
reference counting, cycle collection<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]<br />
<br />
=== String ===<br />
<br />
XPCOM has string classes for representing sequences of characters. Typical C++ string classes have the goals of encapsulating the memory management of buffers and the issues needed to avoid buffer overruns common in traditional C string handling. Mozilla's string classes have these goals, and also the goal of reducing copying of strings.<br />
<br />
(There is a second set of string classes in xpcom/glue for callers outside of libxul; these classes are partially source-compatible but have different (worse) performance characteristics. This discussion does not cover those classes.)<br />
<br />
We have two parallel sets of classes, one for strings with 1-byte units (<code>char</code>, which may be signed or unsigned), and one for strings with 2-byte units (<code>char16_t</code>, always unsigned). The classes are named such that the class for 2-byte characters ends with <code>String</code> and the corresponding class for 1-byte characters ends with <code>CString</code>. 2-byte strings are almost always used to encode [http://en.wikipedia.org/wiki/UTF-16 UTF-16]. 1-byte strings are usually used to encode either [http://en.wikipedia.org/wiki/ASCII ASCII] or [http://en.wikipedia.org/wiki/UTF-8 UTF-8], but are sometimes also used to hold data in some other encoding or just byte sequences.<br />
<br />
The string classes distinguish, as part of the type hierarchy, between strings that must have a null-terminator at the end of their buffer (<code>ns[C]String</code>) and strings that are not required to have a null-terminator (<code>ns[C]Substring</code>). <code>ns[C]Substring</code> is the base of the string classes (since it imposes fewer requirements) and <code>ns[C]String</code> is a class derived from it. Functions taking strings as parameters should generally take one of these four types.<br />
<br />
In order to avoid unnecessary copying of string data (which can have significant performance cost), the string classes support different ownership models. All string classes support the following three ownership models dynamically:<br />
* reference counted, copy-on-write, buffers (the default)<br />
* adopted buffers (a buffer that the string class owns, but is not reference counted, because it came from somewhere else)<br />
* dependent buffers, that is, an underlying buffer that the string class does not own, but that the caller that constructed the string guarantees will outlive the string instance<br />
In addition, there is a special string class, <code>nsAuto[C]String</code>, that ''additionally'' contains an internal 64-unit buffer (intended primarily for use on the stack), leading to a fourth ownership model:<br />
* storage within an auto string's stack buffer<br />
Auto strings will prefer reference counting an existing reference-counted buffer over their stack buffer, but will otherwise use their stack buffer for anything that will fit in it.<br />
<br />
There are a number of additional string classes, particularly <code>nsDependent[C]String</code>, <code>nsDependent[C]Substring</code>, and the <code>NS_LITERAL_[C]STRING</code> macros which construct an <code>nsLiteral[C]String</code> which exist primarily as constructors for the other types. These types are really just convenient notation for constructing an <code>ns[C]S[ubs]tring</code> with a non-default ownership mode; they should not be thought of as different types. (The <code>Substring</code>, <code>StringHead</code>, and <code>StringTail</code> functions are also constructors for dependent [sub]strings.) Non-default ownership modes can also be set up using the <code>Rebind</code> and <code>Adopt</code> methods, although the <code>Rebind</code> methods actually live on the derived types, which is probably a mistake (although moving them up would require some care to avoid making an API that easily allows assigning a non-null-terminated buffer to a string whose static type indicates that it is null-terminated).<br />
<br />
Note that the presence of all of these classes imposes some awkwardness in terms of distinctions being available as both static type distinctions and dynamic type distinctions. In general, the only distinctions that should be made statically are 1-byte vs. 2-byte sequences (<code>CString</code> vs <code>String</code>) and whether the buffer is null-terminated or not (<code>Substring</code> vs <code>String</code>). (Does the code actually do a good job of dynamically enforcing the <code>Substring</code> vs. <code>String</code> restriction?)<br />
<br />
TODO: buffer growth, concatenation optimizations<br />
<br />
TODO: encoding conversion, what's validated and what isn't<br />
<br />
TODO: "string API", nsAString (historical)<br />
<br />
* Code: xpcom/string/<br />
* Bugzilla: Core::String<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]</div>Dholberthttps://wiki.mozilla.org/index.php?title=Gecko:Overview&diff=1240907Gecko:Overview2022-03-01T18:45:24Z<p>Dholbert: Add an placeholder rsection on Logical Sizes</p>
<hr />
<div>This document attempts to give an overview of the different parts of<br />
Gecko, what they do, and why they do it, say where the code for them is<br />
within the repository, and link to more specific documentation (when<br />
available) covering the details of that code. '''It is not yet complete.''' Maintainers of these<br />
areas of code should correct errors, add information, and add links to<br />
more detailed documentation (since this document is intended to remain<br />
an overview, not complete documentation).<br />
<br />
__TOC__<br />
<br />
== Browsers, Frames, and Document Navigation ==<br />
<br />
=== Docshell ===<br />
<br />
The user of a Web browser can change the page shown in that browser in<br />
many ways: by clicking a link, loading a new URL, using the forward and<br />
back buttons, or other ways. This can happen inside a space we'll call<br />
a '''browsing context'''; this space can be a browser window, a tab, or a frame<br />
or iframe within a document. The toplevel data structures within Gecko<br />
represent this browsing context; they contain other data structures<br />
representing the individual pages displayed inside of it (most<br />
importantly, the current one). In terms of implementation, these two<br />
types of navigation, the top level of a browser and the frames within<br />
it, largely use the same data structures.<br />
<br />
In Gecko, the '''docshell''' is the toplevel object responsible for<br />
managing a single browsing context. It, and the associated '''session history''' code, <br />
manage the navigation between pages inside of a<br />
docshell. (Note the difference between session history, which is a<br />
sequence of pages in a single browser session, used for recording information<br />
for back and forward navigation, and global history, which is the<br />
history of pages visited and associated times, regardless of browser<br />
session, used for things like link coloring and address autocompletion.)<br />
<br />
There are relatively few objects in Gecko that are associated with a<br />
docshell rather than being associated with a particular one of the pages<br />
inside of it. Most such objects are attached to the docshell. An important object associated with the docshell is the nsGlobalWindowOuter which is what the HTML5 spec refers to as a WindowProxy (into which Window objects, as implemented by nsGlobalWindowInner, are loaded). See the DOM section below for more information on<br />
this.<br />
<br />
The most toplevel object for managing the contents of a particular page<br />
being displayed within a docshell is a document viewer (see layout).<br />
Other important objects associated with this presentation are the<br />
document (see DOM) and the pres(entation) shell and pres(entation)<br />
context (see layout).<br />
<br />
[[File:WebNavigation.png|thumb|400px|<xul:browser>, frameloader and docshell in single process configuration]]<br />
<br />
Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In Gecko, a browsing context container would implement <code>[https://dxr.mozilla.org/mozilla-central/rev/f9a5e9ed62103c84e4cde915f4d08f1ce71be83e/dom/base/nsIFrameLoader.idl#271 nsIFrameLoaderOwner]</code> to hold a '''frameloader''', which holds and manages the docshell. <br />
<br />
One of the most interfaces docshell implemented is <code>[https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl nsIWebNavigation]</code>. It defines major functions of a browsing context, such as <code>loadURI</code> / <code>goBack</code> / <code>goForward</code> and <code>reload</code>. In single process configuration of desktop Firefox, <code><xul:browser></code> (which represents a tab) operates on docshell through <code>nsIWebNavigation</code>, as shown in the right figure.<br />
<br />
* code: mozilla/docshell/<br />
* bugzilla: Core::Document Navigation<br />
* documentation: [[DocShell:Home Page]]<br />
<br />
=== Session History ===<br />
<br />
In order to keep the session history of subframes after the root document is unloaded and docshells of subframes are destroyed, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change).<br />
<br />
As an example to explain the structure of session history implementation in Gecko, consider there's a tab A, which loads document 1; in document 1, there are iframe B & C, which loads document 2 & 3, respectively. Later, an user navigates iframe B to document 4. The following figures show the conceptual model of the example, and the corresponding session history structure.<br />
<br />
{| <br />
| [[File:BrowsingContextExample1.png|thumb|190px|Conceptual model representation; color denotes current visible active documents]]<br />
| [[File:SHistoryExample1.png|thumb|180px|Session history structure; color denotes current transaction / entries]]<br />
|}<br />
<br />
In Gecko, a [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHistory.h session history] object holds a list of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHTransaction.h transactions] (denoted as T1 & T2 in the figure); each transaction points to a tree of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHEntry.h entries]; each entry records the docshell it associated to, and a URL. Now that if we navigate the tab to a different root document 5, which includes an iframe D with document 6, then it becomes:<br />
<br />
{| <br />
| [[File:BrowsingContextExample2.png|thumb|275px|Conceptual model representation]]<br />
| [[File:SHistoryExample2.png|thumb|250px|Session history structure]]<br />
|}<br />
<br />
=== Embedding ===<br />
<br />
To be written (and maybe rewritten if we get an IPC embedding API).<br />
<br />
[[File:WebNavigationE10S.png|thumb|500px|<xul:remote-browser>, frameloader and docshell in multiprocess configuration. The horizontal dash-lines represent inter-process communication]]<br />
<br />
=== Multi-process and IPC ===<br />
<br />
In a multi-process desktop Firefox, a tab is managed by <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/remote-browser.xml <xul:remote-browser>]</code>. It still operates on nsIWebNavigation, but in this case the docshell is in a remote process and can not be accessed directly. The encapsulation of remote nsIWebNavigation is done by the javascript-implemented <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/components/remotebrowserutils/RemoteWebNavigation.js RemoteWebNavigation]</code>.<br />
<br />
In this configuration, the frameloader of a root docshell lives in parent process, so it can not access docshell directly either. Instead, it holds a <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]</code> instance to interact with <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]</code> in child-process. At C/C++ level, the communication across processes for a single tab is through the '''PBrowser''' IPC protocol implemented by TabParent and TabChild, while at the javascript level it's done by '''message manager''' (which is ontop of PBrowser). RemoteWebNavigation, for example, sends messages to <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/browser-child.js browser-child.js]</code> in content process through message manager.<br />
<br />
== Networking ==<br />
<br />
The network library Gecko uses is called Necko. Necko APIs are largely organized around three concepts: '''URI objects''', '''protocol handlers''', and '''channels'''.<br />
<br />
=== Protocol handlers ===<br />
A '''protocol handler''' is an XPCOM service associated with a particular URI scheme or network protocol. Necko includes protocol handlers for HTTP, FTP, the data: URI scheme, and various others. Extensions can implement protocol handlers of their own.<br />
<br />
A protocol handler implements the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl nsIProtocolHandler]</code> API, which serves three primary purposes:<br />
# Providing metadata about the protocol (its security characteristics, whether it requires actual network access, what the corresponding URI scheme is, what TCP port the protocol uses by default).<br />
# Creating URI objects for the protocol's scheme.<br />
# Creating channel objects for the protocol's URI objects<br />
<br />
Typically, the built-in I/O service (<code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService2.idl nsIIOService]</code>) is responsible for finding the right protocol handler for URI object creation and channel creation, while a variety of consumers queries protocol metadata. Querying protocol metadata is the recommended way to handle any sort of code that needs to have different behavior for different URI schemes. In particular, unlike whitelists or blacklists, it correctly handles the addition of new protocols.<br />
<br />
A service can register itself as a protocol handler by registering for the contract ID <code>"@mozilla.org/network/protocol;1?name=SSSSS"</code> where <code>SSSS</code> is the URI scheme for the protocol (e.g. "http", "ftp", and so forth).<br />
<br />
=== URI objects ===<br />
URI objects, which implement the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURI.idl nsIURI]</code> API, are a way of representing URIs and IRIs. Their main advantage over strings is that they do basic syntax checking and canonicalization on the URI string that they're provided with. They also provide various accessors to extract particular parts of the URI and provide URI equality comparisons. URIs that correspond to hierarchical schemes implement the additional <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURL.idl nsIURL]</code> interface, which exposes even more accessors for breaking out parts of the URI.<br />
<br />
URI objects are typically created by calling the <code>newURI</code> method on the I/O service, or in C++ by calling the <code>NS_NewURI</code> utility function. This makes sure to create the URI object using the right protocol handler, which ensures that the right kind of object is created. Direct creation of URIs via <code>createInstance</code> is reserved for protocol handler implementations.<br />
<br />
=== Channels ===<br />
[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIChannel.idl Channels] are the Necko representation of a single request/response interaction with a server. A channel is created by calling the <code>newChannel</code> method on the [https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService.idl I/O service], or in C++ by calling the <code>[https://dxr.mozilla.org/mozilla-central/search?q=function%3ANS_NewChannel&case=true NS_NewChannel]</code> utility function. The channel can then be configured as needed, and finally its <code>asyncOpen</code> method can be called. This method takes an <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl nsIStreamListener]</code> as an argument.<br />
<br />
If <code>asyncOpen</code> has returned successfully, the channel guarantees that it will asynchronously call the <code>onStartRequest</code> and <code>onStopRequest</code> methods on its stream listener. This will happen even if there are network errors that prevent Necko from actually performing the requests. Such errors will be reported in the channel's status and in the <code>status</code> argument to <code>onStopRequest</code>.<br />
<br />
If the channel ends up being able to provide data, it will make one or more <code>onDataAvailable</code> on its listener after calling <code>onStartRequest</code> and before calling <code>onStopRequest</code>. For each call, the listener is responsible for either returning an error or reading the entire data stream passed in to the call.<br />
<br />
If an error is returned from either <code>onStartRequest</code> or <code>onDataAvailable</code>, the channel must act as if it has been canceled with the corresponding error code.<br />
<br />
A channel has two URI objects associated with it. The <code>originalURI</code> of the channel is the URI that was originally passed to <code>newChannel</code> to create the channel that then had <code>asyncOpen</code> called on it. The <code>URI</code> is the URI from which the channel is reading data. These can be different in various cases involving protocol handlers that forward network access to other protocol handlers, as well as in situations in which a redirect occurs (e.g. following an HTTP 3xx response). In redirect situations, a new channel object will be created, but the originalURI will be propagated from the old channel to the new channel.<br />
<br />
Note that the <code>nsIRequest</code> that's passed to onStartRequest must match the one passed to onDataAvailable and onStopRequest, but need not be the original channel that asyncOpen was called on. In particular, when an HTTP redirect happens the request argument to the callbacks will be the post-redirect channel.<br />
<br />
TODO: crypto?<br />
<br />
== Document rendering pipeline ==<br />
<br />
Some of the major components of Gecko can be described as steps on the<br />
path from an HTML document coming in from the network to the graphics<br />
commands needed to render that document. An HTML document is a<br />
serialization of a tree structure. (FIXME: add diagram) The HTML<br />
parser and content sink create an in-memory representation of this tree,<br />
which we call the '''DOM tree''' or '''content tree'''.<br />
Many JavaScript APIs operate on the content tree. Then, in<br />
layout, we create a second tree, the '''frame tree''' (or<br />
'''rendering tree''') that is a similar shape to the content tree,<br />
but where each node in the tree represents a rectangle (except in SVG<br />
where they represent other shapes). We then compute the positions of<br />
the nodes in the frame tree (called '''frames''') and paint them<br />
using our cross-platform graphics APIs (which, underneath, map to<br />
platform-specific graphics APIs).<br />
<br />
Further documentation:<br />
* Talk: Fast CSS: How Browsers Lay Out Web Pages (David Baron, 2012-03-11): [https://dbaron.org/talks/2012-03-11-sxsw/slide-1.xhtml slideshow], [https://dbaron.org/talks/2012-03-11-sxsw/master.xhtml all slides], [http://audio.sxsw.com/2012/podcasts/11-ACC-Fast_CSS_How_Browser_Layout.mp3 audio (MP3)], [https://schedule.sxsw.com/2012/events/event_IAP12909 session page]<br />
* Talk: Efficient CSS Animations (an updated version of the previous talk with a slightly different focus) (David Baron, 2014-06-04): [https://dbaron.org/talks/2014-06-04-cssday/slide-1.xhtml slideshow], [https://dbaron.org/talks/2014-06-04-cssday/master.xhtml all slides], [http://vimeo.com/channels/cssday/103108124 video]<br />
* Talk: [https://air.mozilla.org/benoit-girard-gecko-rendering/ Overview of the Gecko Rendering Pipeline] (Benoit Girard, 2014-10-14)<br />
<br />
=== Parser ===<br />
<br />
The parser's job is to transform a character stream into a tree<br />
structure, with the help of the content sink classes.<br />
<br />
HTML is parsed using a parser implementing the parsing algorithm in the<br />
HTML specification (starting with HTML5). Much of this parser is<br />
translated from Java, and changes are made to the Java version. This<br />
parser in parser/html/. The parser is driven by the output of the networking layer (see nsHtml5StreamParser::OnDataAvailable). The HTML5 parser is capable of parsing off the main thread which is the normal case. It also parses on the main thread to be able to synchronously handle things such as innerHTML modifications.<br />
<br />
The codebase still has the previous generation HTML parser, which is<br />
still used for a small number of things, though we hope to be able to<br />
remove it entirely soon. This parser is in parser/htmlparser/.<br />
<br />
XML is parsed using the expat library (parser/expat/) and code that<br />
wraps it (parser/xml/). This is a non-validating parser; however, it<br />
loads certain DTDs to support XUL localization.<br />
<br />
=== DOM / Content ===<br />
<br />
The content tree or DOM tree is the central data structure for Web<br />
pages. It is a tree structure, initially created from the tree<br />
structure expressed in the HTML or XML markup. The nodes in the tree<br />
implement major parts of the DOM (Document Object Model) specifications.<br />
The nodes themselves are part of a class hierarchy rooted at<br />
<code>nsINode</code>; different derived classes are used for things such<br />
as text nodes, the document itself, HTML elements, SVG elements, etc.,<br />
with further subclasses of many of these types (e.g., for specific HTML<br />
elements). Many of the APIs available to script running in Web pages<br />
are associated with these nodes. The tree structure persists while the<br />
Web pages is displayed, since it stores much of state associated with<br />
the Web page. The code for these nodes lives in the content/ directory.<br />
<br />
The DOM APIs are not threadsafe. DOM nodes can be accessed only from<br />
the main thread (also known as the UI thread (user interface thread)) of<br />
the application.<br />
<br />
There are also many other APIs available to Web pages that are not APIs<br />
on the nodes in the DOM tree. Many of these other APIs also live in the<br />
same directories, though some live in content/ and some in dom/. These<br />
include APIs such as the DOM event model.<br />
<br />
The dom/ directory also includes some of the code needed to expose Web<br />
APIs to JavaScript (in other words, the glue code between JavaScript and<br />
these APIs). For an overview, see [https://ask.mozilla.org/question/390/how-is-the-web-exposed-dom-implemented/ DOM API Implementation]. See [[#Scripting|Scripting]] below for details of the JS engine.<br />
<br />
TODO: Internal APIs vs. DOM APIs.<br />
<br />
TODO: Mutation observers / document observers.<br />
<br />
TODO: Reference counting and cycle collection.<br />
<br />
TODO: specification links<br />
<br />
=== Style System ===<br />
<br />
==== Quantum CSS (Stylo) ====<br />
<br />
Starting with Firefox 57 and later, Gecko makes use of the parallel style system written in Rust that comes from Servo. There's an [https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/ overview] of this with graphics to help explain what's going on. The [https://github.com/servo/servo/wiki/Layout-Overview Servo wiki] has some more details.<br />
<br />
==== Gecko ====<br />
<br />
The rest of the style section section describes the Gecko style system used in Firefox 56 and earlier. Some bits may still apply, but it likely needs revising.<br />
<br />
In order to display the content, Gecko needs to compute the styles<br />
relevant to each DOM node. It does this based on the model described in<br />
the CSS specifications: this model applies to style specified in CSS<br />
(e.g. by a 'style' element, an 'xml-stylesheet' processing instruction<br />
or a 'style' attribute),<br />
style specified by presentation attributes, and the default style<br />
specified by our own user agent style sheets. There are two major<br />
sets of data structures within the style system:<br />
* first, data structures that represent sources of style data, such as CSS style sheets or data from stylistic HTML attributes<br />
* second, data structures that represent computed style for a given DOM node.<br />
These sets of data structures are mostly distinct (for example, they<br />
store values in different ways).<br />
<br />
The loading of CSS style sheets from the network is managed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/Loader.h CSS loader]; <br />
they are then tokenized by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSScanner.h CSS scanner] <br />
and parsed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSParser.h CSS parser]. <br />
Those that are attached to the document also expose APIs to<br />
script that are known as the CSS Object Model, or CSSOM.<br />
<br />
The style sheets that apply to a document are managed by a class called<br />
the [https://dxr.mozilla.org/mozilla-central/source/layout/style/nsStyleSet.h style set].<br />
The style set interacts with the different types of<br />
style sheets (representing CSS style sheets, presentational<br />
attributes, and 'style' attributes) through two interfaces:<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleSheet.h nsIStyleSheet] for basic management of style sheets and<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRuleProcessor.h nsIStyleRuleProcessor] for getting the style data out of them. Usually<br />
the same object implements both interfaces, except in the most important<br />
case, CSS style sheets, where there is a single rule processor for all<br />
of the CSS style sheets in each origin (user/UA/author) of the CSS cascade.<br />
<br />
The computed style data for an element/frame are exposed to the rest of<br />
Gecko through the class mozilla::ComputedStyle (previously called<br />
nsStyleContext). Rather than having a member variable for each<br />
CSS property, it breaks up the properties into groups of related<br />
properties called style structs. These style structs obey the rule that<br />
all of the properties in a single struct either inherit by default (what<br />
the CSS specifications call "Inherited: yes" in the definition of<br />
properties; we call these inherited structs) or all are not inherited by<br />
default (we call these reset structs). Separating the properties in<br />
this way improves the ability to share the structs between similar<br />
ComputedStyle objects and reduce the amount of memory needed to store<br />
the style data. The ComputedStyle API exposes a method for getting each<br />
struct, so you'll see code like<br />
<code>sc->GetStyleText()->mTextAlign</code> for getting the value of the<br />
text-align CSS property. (Frames (see the Layout section below) also<br />
have the same<br />
GetStyle* methods, which just forward the call to the frame's<br />
ComputedStyle.)<br />
<br />
The ComputedStyles form a tree structure, in a shape somewhat like the<br />
content tree (except that we coalesce identical sibling ComputedStyles<br />
rather than keeping two of them around; if the parents have been<br />
coalesced then this can apply recursively and coalasce cousins, etc.;<br />
we do not coalesce parent/child ComputedStyles).<br />
The parent of a ComputedStyle has the style data that the ComputedStyle<br />
inherits from when CSS inheritance occurs. This means that the parent<br />
of the ComputedStyle for a DOM element is generally the ComputedStyle<br />
for that DOM element's parent, since that's how CSS says inheritance<br />
works.<br />
<br />
The process of turning the style sheets into computed style data goes<br />
through three main steps, the first two of which closely relate to the<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRule.h nsIStyleRule] interface, which represents an immutable source of style<br />
data, conceptually representing (and for CSS style rules, directly<br />
storing) a set of property:value pairs. (It is similar to the idea of a<br />
CSS style rule, except that it is immutable; this immutability allows<br />
for significant optimization. When a CSS style rule is changed through<br />
script, we create a new style rule.)<br />
<br />
The first step of going from style sheets to computed style data is<br />
finding the ordered sequence of style rules that apply to an element.<br />
The order represents which rules override which other rules: if two<br />
rules have a value for the same property, the higher ranking one wins.<br />
(Note that there's another difference from CSS style rules: declarations<br />
with !important are represented using a separate style rule.) This is<br />
done by calling one of the nsIStyleRuleProcessor::RulesMatching methods.<br />
The ordered sequence is stored in a<br />
[http://en.wikipedia.org/wiki/Trie trie] called the rule tree: the path<br />
from the root of the rule tree to any (leaf or non-leaf) node in the<br />
rule tree represents a sequence of rules, with the highest ranking<br />
farthest from the root. Each rule node (except for the root) has a<br />
pointer to a rule, but since a rule may appear in many sequences, there<br />
are sometimes many rule nodes pointing to the same rule. Once we have<br />
this list we create a ComputedStyle (or find an appropriate existing<br />
sibling) with the correct parent pointer (for inheritance) and rule node<br />
pointer (for the list of rules), and a few other pieces of information<br />
(like the pseudo-element).<br />
<br />
The second step of going from style sheets to computed style data is<br />
getting the winning property:value pairs from the rules. (This only<br />
provides property:value pairs for some of the properties; the remaining<br />
properties will fall back to inheritance or to their initial values<br />
depending on whether the property is inherited by default.) We do this<br />
step (and the third) for each style struct, the first time it is needed.<br />
This is done in nsRuleNode::WalkRuleTree, where we ask each style rule<br />
to fill in its property:value pairs by calling its MapRuleInfoInto<br />
function. When called, the rule fills in only those pairs that haven't<br />
been filled in already, since we're calling from the highest priority<br />
rule to the lowest (since in many cases this allows us to stop before<br />
going through the whole list, or to do partial computation that just<br />
adds to data cached higher in the rule tree).<br />
<br />
The third step of going from style sheets to computed style data (which<br />
various caching optimizations allow us to skip in many cases) is<br />
actually doing the computation; this generally means we transform the<br />
style data into the data type described in the "Computed Value" line in<br />
the property's definition in the CSS specifications. This<br />
transformation happens in functions called nsRuleNode::Compute*Data,<br />
where the * in the middle represents the name of the style struct. This<br />
is where the transformation from the style sheet value storage format to<br />
the computed value storage format happens.<br />
<br />
Once we have the computed style data, we then store it: if a style struct<br />
in the computed style data doesn't<br />
depend on inherited values or on data from other style structs, then we<br />
can cache it in the rule tree (and then reuse it, without recomputing<br />
it, for any ComputedStyles pointing to that rule node). Otherwise, we<br />
store it on the ComputedStyle (in which case it may be shared<br />
with the ComputedStyle's descendant ComputedStyles).<br />
This is where keeping inherited and<br />
non-inherited properties separate is useful: in the common case of<br />
relatively few properties being specified, we can generally cache the<br />
non-inherited structs in the rule tree, and we can generally share the<br />
inherited structs up and down the ComputedStyle tree.<br />
<br />
The ownership models in style sheet structures are a mix of reference<br />
counted structures (for things accessible from script) and directly<br />
owned structures. ComputedStyles are reference counted, and own their<br />
parents (from which they inherit), and rule nodes are garbage collected<br />
with a simple mark and sweep collector (which often never needs to run).<br />
<br />
* code: [http://dxr.mozilla.org/mozilla-central/source/layout/style/ layout/style/], where most files have useful one line descriptions at the top that show up in DXR<br />
* Bugzilla: Style System (CSS)<br />
* specifications<br />
** [http://www.w3.org/TR/CSS21/ CSS 2.1]<br />
** [http://www.w3.org/TR/css-2010/ CSS 2010, listing stable css3 modules]<br />
** [http://dev.w3.org/csswg/ CSS WG editors drafts] (often more current, but sometimes more unstable than the drafts on the technical reports page)<br />
** [http://dbaron.org/mozilla/visited-privacy Preventing attacks on a user's history through CSS :visited selectors]<br />
* documentation<br />
** [http://www-archive.mozilla.org/newlayout/doc/style-system.html style system documentation] (somewhat out of date)<br />
<br />
=== Layout ===<br />
<br />
Much of the layout code deals with operations on the frame tree (or<br />
rendering tree). In the frame tree, each node represents a rectangle<br />
(or, for SVG, other shapes). The frame tree has a shape similar to the<br />
content tree, since many content nodes have one corresponding frame,<br />
though it differs in a few ways, since some content nodes have more than<br />
one frame or don't have any frames at all. When elements are<br />
display:none in CSS or undisplayed for certain other reasons, they won't<br />
have any frames. When elements are broken across lines or pages, they<br />
have multiple frames; elements may also have multiple frames when<br />
multiple frames nested inside each other are needed to display a single<br />
element (for example, a table, a table cell, or many types of form<br />
controls).<br />
<br />
Each node in the frame tree is an instance of a class derived from<br />
<code>nsIFrame</code>. As with the content tree, there is a substantial<br />
type hierarchy, but the type hierarchy is very different: it includes<br />
types like text frames, blocks and inlines, the various parts of tables,<br />
flex and grid containers, and the various types of HTML form controls.<br />
<br />
Frames are allocated within an arena owned by the PresShell. Each<br />
frame is owned by its parent; frames are not reference counted, and code<br />
must not hold on to pointers to frames. To mitigate potential security<br />
bugs when pointers to destroyed frames, we use<br />
[http://robert.ocallahan.org/2010/10/mitigating-dangling-pointer-bugs-using_15.html frame poisoning], which takes two parts. When a frame is destroyed<br />
other than at the end of life of the presentation, we fill its memory<br />
with a pattern consisting of a repeated pointer to inaccessible memory,<br />
and then put the memory on a per-frame-class freelist. This means that<br />
if code accesses the memory through a dangling pointer, it will either<br />
crash quickly by dereferencing the poison pattern or it will find a<br />
valid frame.<br />
<br />
Like the content tree, frames must be accessed only from the UI thread.<br />
<br />
The frame tree should not store any important data, i.e. any data that cannot<br />
be recomputed on-the-fly. While the frame tree does<br />
usually persist while a page is being displayed, frames are often<br />
destroyed and recreated in response to certain style changes, and in the<br />
future we may do the same to reduce memory use for pages that are<br />
currently inactive. There were a number of cases where this rule was<br />
violated in the past and we stored important data in the frame tree;<br />
however, most (though not quite all) such cases are now fixed.<br />
<br />
The rectangle represented by the frame is what CSS calls the element's<br />
border box. This is the outside edge of the border (or the inside edge<br />
of the margin). The margin lives outside the border; and the padding<br />
lives inside the border. In addition to nsIFrame::GetRect, we also have<br />
the APIs nsIFrame::GetPaddingRect to get the padding box (the outside<br />
edge of the padding, or inside edge of the border) and<br />
nsIFrame::GetContentRect to get the content box (the outside edge of the<br />
content, or inside edge of the padding). These APIs may produce out of<br />
date results when reflow is needed (or has not yet occurred).<br />
<br />
In addition to tracking a rectangle, frames also track two overflow<br />
areas: ink overflow and scrollable overflow. These overflow areas<br />
represent the union of the area needed by the frame and by all its<br />
descendants. The ink overflow is used for painting-related<br />
optimizations: it is a rectangle covering all of the area that might be<br />
painted when the frame and all of its descendants paint. The scrollable<br />
overflow represents the area that the user should be able to scroll to<br />
to see the frame and all of its descendants. In some cases differences<br />
between the frame's rect and its overflow happen because of descendants<br />
that stick out of the frame; in other cases they occur because of some<br />
characteristic of the frame itself. The two overflow areas are<br />
similar, but there are differences: for example, margins are part of<br />
scrollable overflow but not ink overflow, whereas text-shadows are<br />
part of ink overflow but not scrollable overflow.<br />
<br />
When frames are broken across lines, columns, or pages, we create<br />
multiple frames representing the multiple rectangles of the element.<br />
The first one is the primary frame, and the rest are its continuations<br />
(which are more likely to be destroyed and recreated during reflow).<br />
These frames are linked together as continuations: they have a<br />
doubly-linked list that can be used to traverse the continuations using<br />
nsIFrame::GetPrevContinuation and nsIFrame::GetNextContinuation.<br />
(Currently continuations always have the same style data, though we may<br />
at some point want to break that invariant.)<br />
<br />
Continuations are sometimes siblings of each other (i.e.<br />
nsIFrame::GetNextContinuation and nsIFrame::GetNextSibling might return<br />
the same frame), and sometimes not.<br />
For example, if a paragraph contains a span which contains a link, and<br />
the link is split across lines, then the continuations of the span are<br />
siblings (since they are both children of the paragraph), but the<br />
continuations of the link are not siblings (since each continuation of<br />
the link is descended from a different continuation of the span).<br />
Traversing the entire frame tree does '''not''' require explicit traversal<br />
of any frames' continuations-list, since all of the continuations are<br />
descendants of the element containing the break.<br />
<br />
We also use continuations for cases (most importantly, bidi reordering,<br />
where left-to-right text and right-to-left text need to be separated<br />
into different continuations since they may not form a contiguous<br />
rectangle) where the continuations should not be rewrapped during<br />
reflow: we call these continuations fixed rather than fluid.<br />
nsIFrame::GetNextInFlow and nsIFrame::GetPrevInFlow traverse only the<br />
fluid continuations and do not cross fixed continuation boundaries.<br />
<br />
If an inline frame has non-inline children, then we split the original <br />
inline frame into parts. The original inline's children are <br />
distributed into these parts like so: The children of the original <br />
inline are grouped into runs of inline and non-inline, and runs of <br />
inline get an inline parent, while runs of non-inline get an anonymous <br />
block parent. We call this 'ib-splitting' or 'block-inside-inline splitting'. <br />
This splitting proceeds recursively up the frame tree until all <br />
non-inlines inside inlines are ancestors of a block frame with anonymous <br />
block wrappers in between. This splitting maintains the relative order<br />
between these child frames, and the relationship between the parts of a <br />
split inline is maintained using an ib-sibling chain. It is important <br />
to note that any wrappers created during frame construction (such as <br />
for tables) might not be included in the ib-sibling chain depending on <br />
when this wrapper creation takes place. <br />
<br />
TODO: nsBox craziness from https://bugzilla.mozilla.org/show_bug.cgi?id=524925#c64<br />
<br />
TODO: link to documentation of block and inline layout<br />
<br />
TODO: link to documentation of scrollframes<br />
<br />
TODO: link to documentation of XUL frame classes<br />
<br />
Code (note that most files in base and generic have useful one line descriptions at the top that show up in DXR):<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/base/ layout/base/] contains objects that coordinate everything and a bunch of other miscellaneous things<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/generic/ layout/generic/] contains the basic frame classes as well as support code for their reflow methods (ReflowInput, ReflowOutput)<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/forms/ layout/forms/] contains frame classes for HTML form controls<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/tables/ layout/tables/] contains frame classes for CSS/HTML tables<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/mathml/ layout/mathml/] contains frame classes for MathML<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/svg/ layout/svg/] contains frame classes for SVG<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/xul/ layout/xul/] contains frame classes for the XUL box model and for various XUL widgets<br />
<br />
Bugzilla:<br />
* All of the components whose names begin with "Layout" in the "Core" product<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bz-layout-and-styles/ Layout and Styles] (Boris Zbarsky, 2014-10-14)<br />
<br />
<br />
==== Frame Construction ====<br />
<br />
Frame construction is the process of creating frames. This is done when styles change in ways that require frames to be created or recreated or when nodes are inserted into the document. The content tree and the frame tree don't have quite the same shape, and the frame construction process does some of the work of creating the right shape for the frame tree. It handles the aspects of creating the right shape that don't depend on layout information. So for example, frame construction handles the work needed to implement [http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes table anonymous objects] but does not handle frames that need to be created when an element is broken across lines or pages.<br />
<br />
The basic unit of frame construction is a run of contiguous children of a single parent element. When asked to construct frames for such a run of children, the frame constructor first determines, based on the siblings and parent of the nodes involved, where in the frame tree the new frames should be inserted. Then the frame constructor walks through the list of content nodes involved and for each one creates a temporary data structure called a '''frame construction item'''. The frame construction item encapsulates various information needed to create the frames for the content node: its style data, some metadata about how one would create a frame for this node based on its namespace, tag name, and styles, and some data about what sort of frame will be created. This list of frame construction items is then analyzed to see whether constructing frames based on it and inserting them at the chosen insertion point will produce a valid frame tree. If it will not, the frame constructor either fixes up the list of frame construction items so that the resulting frame tree would be valid or throws away the list of frame construction items and requests the destruction and re-creation of the frame for the parent element so that it has a chance to create a list of frame construction items that it <em>can</em> fix up.<br />
<br />
Once the frame constructor has a list of frame construction items and an insertion point that would lead to a valid frame tree, it goes ahead and creates frames based on those items. Creation of a non-leaf frame recursively attempts to create frames for the children of that frame's element, so in effect frames are created in a depth-first traversal of the content tree.<br />
<br />
The vast majority of the code in the frame constructor, therefore, falls into one of these categories:<br />
* Code to determine the correct insertion point in the frame tree for new frames.<br />
* Code to create, for a given content node, frame construction items. This involves some searches through static data tables for metadata about the frame to be created.<br />
* Code to analyze the list of frame construction items.<br />
* Code to fix up the list of frame construction items.<br />
* Code to create frames from frame construction items.<br />
<br />
Code: [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.h layout/base/nsCSSFrameConstructor.h] and [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp layout/base/nsCSSFrameConstructor.cpp]<br />
<br />
==== Physical Sizes vs. Logical Sizes ====<br />
<br />
TODO: Discuss inline-size (typically width) and block size (typically height), writing modes, and the various logical vs. physical size/rect types.<br />
<br />
==== Reflow ====<br />
<br />
Reflow is the process of computing the positions and sizes of frames. (After all,<br />
frames represent rectangles, and at some point we need to figure out<br />
exactly *what* rectangle.) Reflow is done recursively, with each<br />
frame's Reflow method calling the Reflow methods on that frame's<br />
descendants.<br />
<br />
In many cases, the correct results are defined by CSS specifications<br />
(particularly [http://www.w3.org/TR/CSS21/visudet.html CSS 2.1]). In some cases, the details are not defined by<br />
CSS, though in some (but not all) of those cases we are constrained by<br />
Web compatibility. When the details are defined by CSS, however, the<br />
code to compute the layout is generally structured somewhat differently<br />
from the way it is described in the CSS specifications, since the CSS<br />
specifications are generally written in terms of constraints, whereas<br />
our layout code consists of algorithms optimized for incremental<br />
recomputation.<br />
<br />
The reflow generally starts from the root of the frame tree, though some other<br />
types of frame can act as "reflow roots" and start a reflow from them<br />
(nsTextControlFrame is one example; see the<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_REFLOW_ROOT&redirect=true NS_FRAME_REFLOW_ROOT] frame state bit).<br />
Reflow roots must obey the invariant that a change inside one of their<br />
descendants never changes their rect or overflow areas (though currently<br />
scrollbars are reflow roots but don't quite obey this invariant).<br />
<br />
In many cases, we want to reflow a part of the frame tree, and we want<br />
this reflow to be efficient. For example, when content is added or<br />
removed from the document tree or when styles change, we want the amount<br />
of work we need to redo to be proportional to the amount of content. We<br />
also want to efficiently handle a series of changes to the same content.<br />
<br />
To do this, we maintain two bits on frames:<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_IS_DIRTY&redirect=true NS_FRAME_IS_DIRTY]<br />
indicates that a frame and all of its descendants require reflow.<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_HAS_DIRTY_CHILDREN&redirect=true NS_FRAME_HAS_DIRTY_CHILDREN]<br />
indicates that a frame has a descendant that<br />
is dirty or has had a descendant removed (i.e., that it has a child that<br />
has NS_FRAME_IS_DIRTY or NS_FRAME_HAS_DIRTY_CHILDREN or it had a child<br />
removed). These bits allow coalescing of multiple updates; this<br />
coalescing is done in PresShell, which tracks the set of reflow roots<br />
that require reflow. The bits are set during calls to<br />
[https://searchfox.org/mozilla-central/search?q=PresShell%3A%3AFrameNeedsReflow&path= PresShell::FrameNeedsReflow]<br />
and are cleared during reflow.<br />
<br />
The layout algorithms used by many of the frame classes are those<br />
specified in CSS, which are based on the traditional document formatting<br />
model, where widths are input and heights are output.<br />
<br />
In some cases, however, widths need to be determined based on the<br />
content. This depends on two ''intrinsic widths'': the minimum<br />
intrinsic width (see [https://searchfox.org/mozilla-central/search?q=nsIFrame%3A%3AGetMinISize&path= nsIFrame::GetMinISize]) and the preferred intrinsic<br />
width (see [https://searchfox.org/mozilla-central/search?q=nsIFrame%3A%3AGetPrefISize&path= nsIFrame::GetPrefISize]). The concept of what these widths<br />
represent is best explained by describing what they are on a paragraph<br />
containing only text: in such a paragraph the minimum intrinsic width<br />
is the width of the longest word, and the preferred intrinsic width is<br />
the width of the entire paragraph laid out on one line.<br />
<br />
Intrinsic widths are invalidated separately from the dirty bits<br />
described above. When a caller informs the pres shell that a frame<br />
needs reflow (PresShell::FrameNeedsReflow), it passes one of three<br />
options:<br />
* eResize indicates that no intrinsic widths are dirty<br />
* eTreeChange indicates that intrinsic widths on it and its ancestors are dirty (which happens, for example, if new children are added to it)<br />
* eStyleChange indicates that intrinsic widths on it, its ancestors, and its descendants are dirty (for example, if the font-size changes)<br />
<br />
Reflow is the area where the XUL frame classes (those that inherit from<br />
nsBoxFrame or nsLeafBoxFrame) are most different from the rest. Instead<br />
of using nsIFrame::Reflow, they do their layout computations using<br />
intrinsic size methods called GetMinSize, GetPrefSize, and GetMaxSize<br />
(which report intrinsic sizes in two dimensions) and a final layout<br />
method called Layout. In many cases these methods defer some of the<br />
computation to a separate object called a layout manager.<br />
<br />
When an individual frame's Reflow method is called, most of the input is<br />
provided on an object called ReflowInput and the output is filled<br />
in to an object called ReflowOutput. After reflow, the caller<br />
(usually the parent) is responsible for setting the frame's size based<br />
on the metrics reported. (This can make some computations during reflow<br />
difficult, since the new size is found in either the reflow state or the<br />
metrics, but the frame's size is still the old size. However, it's<br />
useful for invalidating the correct areas that need to be repainted.)<br />
<br />
One major difference worth noting is that in XUL layout, the size of the<br />
child is set prior to its parent calling its Layout method. (Once<br />
invalidation uses display lists and is no longer tangled up in Reflow,<br />
it may be worth switching non-XUL layout to work this way as well.)<br />
<br />
==== Painting ====<br />
<br />
TODO: display lists (and event handling)<br />
<br />
TODO: layers<br />
<br />
==== Pagination ====<br />
<br />
The concepts behind pagination (also known as fragmentation) are a bit complicated, so for now we've split them off into a separate document: [[Gecko:Continuation_Model]]. This code is used for printing, print-preview, and multicolumn frames.<br />
<br />
=== Dynamic change handling along the rendering pipeline ===<br />
<br />
The ability to make changes to the DOM from script is a major feature of the Web platform. Web authors rely on the concept (though there are a few exceptions, such as animations) that changing the DOM from script leads to the same rendering that would have resulted from starting from that DOM tree. They also rely on the performance characteristics of these changes: small changes to the DOM that have small effects should have proportionally small processing time. This means that Gecko needs to efficiently propagate changes from the content tree to style, the frame tree, the geometry of the frame tree, and the screen.<br />
<br />
For many types of changes, however, there is substantial overhead to processing a change, no matter how small. For example, reflow must propagate from the top of the frame tree down to the frames that are dirty, no matter how small the change. One very common way around this is to batch up changes. We batch up changes in lots of ways, for example:<br />
* The content sink adds multiple nodes to the DOM tree before notifying listeners that they've been added. This allows notifying once about an ancestor rather than for each of its descendants, or notifying about a group of descendants all at once, which speeds up the processing of those notifications.<br />
* We batch up nodes that require style reresolution (recomputation of selector matching and processing the resulting style changes). This batching is tree based, so it not only merges multiple notifications on the same element, but also merges a notification on an ancestor with a notification on its descendant (since ''some'' of these notifications imply that style reresolution is required on all descendants).<br />
* We wait to reconstruct frames that require reconstruction (after destroying frames eagerly). This, like the tree-based style reresolution batching, avoids duplication both for same-element notifications and ancestor-descendant notifications, even though it doesn't actually do any tree-based caching.<br />
* We postpone doing reflows until needed. As for style reresolution, this maintains tree-based dirty bits (see the description of NS_FRAME_IS_DIRTY and NS_FRAME_HAS_DIRTY_CHILDREN under Reflow).<br />
* We allow the OS to queue up multiple invalidates before repainting (though we will likely switch to controlling that ourselves). This leads to a single repaint of some set of pixels where there might otherwise have been multiple (though it may also lead to more pixels being repainted if multiple rectangles are merged to a single one).<br />
<br />
Having changes buffered up means, however, that various pieces of information (layout, style, etc.) may not be up-to-date. Some things require up-to-date information: for example, we don't want to expose the details of our buffering to Web page script since the programming model of Web page script assumes that DOM changes take effect "immediately", i.e., that the script shouldn't be able to detect any buffering. Many Web pages depend on this.<br />
<br />
We therefore have ways to flush these different sorts of buffers. There are methods called FlushPendingNotifications on nsIDocument and nsIPresShell, that take an argument of what things to flush:<br />
* Flush_Content: create all the content nodes from data buffered in the parser<br />
* Flush_ContentAndNotify: the above, plus notify document observers about the creation of all nodes created so far<br />
* Flush_Style: the above, plus make sure style data are up-to-date<br />
* Flush_Frames: the above, plus make sure all frame construction has happened (currently the same as Flush_Style)<br />
* Flush_InterruptibleLayout: the above, plus perform layout (Reflow), but allow interrupting layout if it takes too long<br />
* Flush_Layout: the above, plus ensure layout (Reflow) runs to completion<br />
* Flush_Display (should never be used): the above, plus ensure repainting happens<br />
<br />
The major way that notifications of changes propagate from the content code to layout and other areas of code is through the nsIDocumentObserver and nsIMutationObserver interfaces. Classes can implement this interface to listen to notifications of changes for an entire document or for a subtree of the content tree.<br />
<br />
WRITE ME: ... layout document observer implementations<br />
<br />
TODO: how style system optimizes away rerunning selector matching<br />
<br />
TODO: style changes and nsChangeHint<br />
<br />
=== Refresh driver ===<br />
<br />
== Graphics ==<br />
[https://wiki.mozilla.org/Platform/GFX Wiki page] | [https://wiki.mozilla.org/index.php?title=Platform/GFX/Contribute contribute]<br />
<br />
Further documentation:<br />
* Jargon: [https://wiki.mozilla.org/Platform/GFX/Jargon Helpful list] of terms used in Graphics<br />
* Talk: [https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E271782 2018 SF All-Hands Graphics Overview] (nical/mattwoodrow/gw) <br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bjacob-gfx-overview/ An overview of Gecko's graphics stack] (Benoit Jacob, 2014-08-12)<br />
* Talk: [https://air.mozilla.org/jeff-muizelaar-2d-graphics/ 2D Graphics] (Jeff Muizelaar, 2014-10-14)<br />
* Blog: Mozilla gfx blog's [https://mozillagfx.wordpress.com/category/technical/ "technical" tag].<br />
* Blog: WebRender/gfx [https://mozillagfx.wordpress.com/category/wr-newsletter/ newsletter].<br />
<br />
==== WebRender vs Layers ====<br />
Currently there are two different rendering paths in Gecko. The new one is WebRender.<br />
"Layers" is the name of the previous / non-webrender architecture. <br />
<br />
Here's a very high level summary of how it works: [https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/]<br />
<br />
From a high level architectural point of view, the main differences are:<br />
* Layers separate rendering into a painting phase and a compositing phase which usually happen in separate processes. For WebRender, on the other hand, all of the rendering happens in a single operation.<br />
* Layers internally expresses rendering rendering commands through a traditional canvas-like immediate mode abstraction (Moz2D) which has several backends (some of which use the GPU). WebRender works directly at a lower and GPU-centric level, dealing in terms of batches, draw calls and shaders.<br />
* Layers code is entirely C++, while WebRender is mostly Rust with some integration glue in C++.<br />
<br />
==== WebRender ====<br />
<br />
* WebRender's main entry point is a display list. It is a description of a visible subset of the page produced by the layout module.<br />
* WebRender and Gecko's display list representations are currently different so there is a translation between the two.<br />
* The WebRender display list is serialized on the content process and sent to the process that will do the rendering (either the main process or the GPU process).<br />
* The rendering process deserializes the display list and builds a "Scene".<br />
* From this scene, frames can be built. Frames represent the actual drawing operations that need to be performed for content to appear on screen. A single scene can produce several frames, for example if an element of the scene is scrolled.<br />
* The Renderer consumes the frame and produces actual OpenGL drawing commands. Currently WebRender is based on OpenGL and on Windows the OpenGL commands are transparently turned into D3D ones using ANGLE. In the long run we plan to work with a vulkan-like abstraction called gfx-rs.<br />
<br />
The main phases in WebRender are therefore:<br />
* Display list building<br />
* Scene building<br />
* frame building<br />
* GPU commands execution<br />
<br />
All of these phases are performed on different threads. The first two happen whenever the layout of the page changes or the user scrolls past the part of the page covered by the current scene. They don't necessarily happen at a high frequency. Frame building and GPU command execution, on the other hand, happen at a high frequency (the monitor's refresh rate during scrolling and animations), which means that they must fit in the frame budget (typically 16ms). In order to avoid going over the frame budget, frame building and GPU command execution can overlap. scene building and frame building can also overlap and it is possible to continue generating frames while a new scene is being built asynchronously.<br />
<br />
WebRender has a fallback mechanism called "Blob images" for content that it does not handle (for example some SVG drawing primitives). It consists in recording and serializing a list of drawing commands (the "blob") on the content process and sending it to WebRender along with the regular display list. Blobs are then turned into images on the CPU during the scene building phase. The most of WebRender treats blob images as regular images.<br />
<br />
Some important internal operations and data structures:<br />
* The clip-scroll tree (TODO)<br />
* The render task graph (TODO)<br />
* Culling: https://mozillagfx.wordpress.com/2018/11/08/webrender-culling/<br />
* Batching: https://mozillagfx.wordpress.com/2018/11/21/webrender-batching/<br />
* Picture-caching: https://mozillagfx.wordpress.com/2018/11/02/webrender-picture-caching/<br />
<br />
The WebRender code path reuses the layers IPC infrastructure for sharing textures between the content process and the renderer. For example The ImageBridge protocol described in the Compositing section is also used to transfer video frames when WebRender is enabled.<br />
Asynchronous Panning and Zooming (APZ) described in a later sections is also relevant to WebRender.<br />
<br />
==== Painting/Rasterizing (Layers aka Non-WebRender) ====<br />
<br />
[[File:Layers pipeline overview.png|650px|thumb|Layers pipeline overview]]<br />
<br />
Painting/rendering/rasterizing is the step where graphical primitives (such as a command to fill an [https://developer.mozilla.org/en-US/docs/Web/SVG SVG] circle, or the internally produced command to draw a rounded rectangle) are used to color in the pixels of a surface so that the surface "displays" those rasterized primitives.<br />
<br />
The platform independent library that gecko uses to render is [http://dxr.mozilla.org/mozilla-central/source/gfx/2d/2D.h Moz2D]. Gecko code paints into Moz2D DrawTarget objects (the DrawTarget base class having multiple platform dependent subclasses).<br />
<br />
==== Compositing ====<br />
<br />
The compositing stage of the rendering pipeline is operated by the [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ gfx/layers] module.<br />
<br />
Different parts of a web page can sometimes be painted into intermediate surfaces retained by layers. It can be convenient to think of layers as the layers in image manipulation programs like The Gimp or Photoshop. Layers are organized as a tree. Layers are primarily used to minimize invalidating and repainting when elements are being animated independently of one another in a way that can be optimized using layers (e.g. opacity or transform animations), and to enable some effects (such as transparency and 3D transforms).<br />
<br />
Compositing is the action of flattening the layers into the final image that is shown on the screen.<br />
<br />
We paint and composite on separate threads (it is called Off-main-thread compositing, or OMTC, and a long time ago Firefox did not have this separation).<br />
<br />
The Layers architecture is built on the following notions:<br />
* Compositor: an object that can draw quads on the screen (or on an off-screen render target).<br />
* Texture: an object that contains image data.<br />
* Compositable: an object that can manipulate one or several textures, and knows how to present them to the compositor<br />
* Layer: an element of the layer tree. A layer usually doesn't know much about compositing: it uses a compositable to do the work. Layers are mostly nodes of the layer tree.<br />
<br />
[[File:LayersRefactoring.png|thumb|650px|New layers architecture, with OGL backend]]<br />
<br />
Since painting and compositing are performed on different threads/processes, we need a mechanism to synchronize a client layer tree that is constructed on the content thread, and a host layer tree that is used for compositing on the compositor thread.<br />
This synchronization process must ensure that the host layer tree reflects the state of the current layer tree while remaining in a consistent state, and must transfer texture data from a thread to the other. Moreover, on some platforms the content and compositor threads may live in separate processes.<br />
<br />
To perform this synchronization, we use the IPDL IPC framework. IPDL lets us describe communications protocols and actors in a domain specific language. for more information about IPDL, read https://wiki.mozilla.org/IPDL<br />
<br />
When the client layer tree is modified, we record modifications into messages that are sent together to the host side within a transaction. A transaction is basically a list of modifications to the layer tree that have to be applied all at once to preserve consistency in the state of the host layer tree.<br />
<br />
Texture transfer is done by synchronizing texture objects across processes/threads using a couple TextureClient/TextureHost that wrap shared data and provide access to it on both sides. TextureHosts provide access to one or several TextureSource, which has the necessary API to actually composite the texture (TextureClient/Host being more about IPC synchronization than actual compositing.<br />
The logic behind texture transfer (as in single/double/triple buffering, texture tiling, etc) is operated by the CompositableClient and CompositableHost.<br />
<br />
It is important to understand the separation between layers and compositables. Compositables handle all the logic around texture transfer, while layers define the shape of the layer tree. a Compositable is created independently from a layer and attached to it on both sides. While layers transactions can only originate from the content thread, this separation makes it possible for us to have separate compositable transactions between any thread and the compositor thread. We use the ImageBridge IPDL protocol to that end. The Idea of ImageBridge is to create a Compositable that is manipulated on the ImageBridgeThread, and that can transfer/synchronize textures without using the content thread at all. This is very useful for smooth Video compositing: video frames are decoded and passed into the ImageBridge without ever touching the content thread, which could be busy processing reflows or heavy javascript workloads.<br />
<br />
It is worth reading the inline code documentation in the following files:<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Compositor.h gfx/layers/Compositor.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ShadowLayers.h gfx/layers/ShadowLayers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Layers.h gfx/layers/Layers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/host/TextureHost.h gfx/layers/host/TextureHost.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/CompositableClient.h gfx/layers/client/CompositableClient.h]<br />
<br />
To visualize how a web page is layered, turn on the pref "layers.draw-borders" in about:config. When this pref is on, the borders of layers and tiles are displayed on top of the content. This only works when using the Compositor API, that is when WebRender is disabled, since WebRender does not have the same concept of layers.<br />
<br />
Blog posts with information on Layers that should be integrated here:<br />
<br />
* [http://www.basschouten.com/blog1.php/layers-cross-platform-acceleration Layers: Cross-Platform Acceleration]<br />
* [http://robert.ocallahan.org/2010/04/layers_01.html Layers]<br />
* [http://robert.ocallahan.org/2010/07/retained-layers_16.html Retained Layers]<br />
* [http://chrislord.net/index.php/2011/07/25/shadow-layers-and-learning-by-failing/ Shadow Layers, and learning by failing]<br />
* [http://chrislord.net/index.php/2011/08/16/accelerated-layer-rendering-and-learning-by-some-success/ Accelerated layer-rendering, and learning by (some) success]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/mask-layers_26.html Mask Layers]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/building-mask-layer.html Building a mask layer]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/06/mask-layers-on-direct3d-backends.html Mask Layers on the Direct3D backends]<br />
* [http://robert.ocallahan.org/2011/09/graphics-api-design.html Graphics API Design]<br />
<br />
==== Async Panning and Zooming ====<br />
<br />
On some of our mobile platforms we have some code that allows the user to do asynchronous (i.e. off-main-thread) panning and zooming of content. This code is the Async Pan/Zoom module (APZ) code and is further documented at [[Platform/GFX/APZ]].<br />
<br />
== Scripting ==<br />
<br />
=== JavaScript Engine ===<br />
<br />
Gecko embeds the SpiderMonkey JavaScript engine (located in js/src). The JS engine includes a number of Just-In-Time compilers (or JITs). SpiderMonkey provides a powerful and extensive embedding API (called the JSAPI). Because of its complexity, using the JSAPI directly is frowned upon, and a number of abstractions have been built in Gecko to allow interacting with the JS engine without using JSAPI directly. Some JSAPI concepts are important for Gecko developers to understand, and they are listed below:<br />
<br />
* Global object: The '''global object''' is the object on which all global variables/properties/methods live. In a web page this is the 'window' object. In other things such as XPCOM components or sandboxes XPConnect creates a global object with a small number of builtin APIs.<br />
* Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment.<br />
* When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information).<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/kannan-vijayan-baseline-jit/ Baseline JIT] (Kannan Vijayan, 2014-10-14)<br />
<br />
=== XPConnect ===<br />
<br />
'''XPConnect''' is a bridge between C++ and JS used by XPCOM components exposed to or implemented in JavaScript. XPConnect allows two XPCOM components to talk to each other without knowing or caring which language they are implemented in. XPConnect allows JS code to call XPCOM components by exposing XPCOM interfaces as JS objects, and mapping function calls and attributes from JS into virtual method calls on the underlying C++ object. It also allows JS code to implement an XPCOM component that can be called from C++ by faking the vtable of an interface and translating calls on the interface into JS calls. XPConnect accomplishes this using the vtable data stored in XPCOM TypeLibs (or XPT files) by the XPIDL compiler and a small layer of platform specific code called [https://developer.mozilla.org/en-US/docs/xptcall_FAQ xptcall] that knows how to interact with and impersonate vtables of XPCOM interfaces.<br />
<br />
XPConnect is also used for a small (and decreasing) number of legacy DOM objects. At one time all of the DOM used XPConnect to talk to JS, but we have been replacing XPConnect with the WebIDL bindings (see the next section for more information). Arbitrary XPCOM components are not exposed to web content. XPCOM components that want to be accessible to web content must provide class info (that is, they must QI to nsIClassInfo) and must be marked with the nsIClassInfo::DOM_OBJECT flag. Most of these objects also are listed in dom/base/nsDOMClassInfo.cpp, where the interfaces that should be visible to the web are enumerated. This file also houses some "scriptable helpers" (classes ending in "SH" and implementing nsIXPCScriptable), which are a set of optional hooks that can be used by XPConnect objects to implement more exotic behaviors (such as indexed getters or setters, lazily resolved properties, etc). This is all legacy code, and any new DOM code should use the WebIDL bindings.<br />
<br />
=== WebIDL Bindings ===<br />
<br />
The '''WebIDL bindings''' are a separate bridge between C++ and JS that is specifically designed for use by DOM code. We intend to replace all uses of XPConnect to interface with content JavaScript with the WebIDL bindings. [https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings Extensive documentation] on the WebIDL bindings is available, but the basic idea is that a binding generator takes WebIDL files from web standards and some configuration data provided by us and generates at build time C++ glue code that sits between the JS engine and the DOM object. This setup allows us to produce faster, more specialized code for better performance at the cost of increased codesize.<br />
<br />
The WebIDL bindings also implement all of the behavior specified in WebIDL, making it possible for new additions to the DOM to behave correctly "out of the box". The binding layer also provides C++ abstractions for types that would otherwise require direct JSAPI calls to handle, such as typed arrays.<br />
<br />
=== Reflectors ===<br />
Whether using [https://wiki.mozilla.org/Gecko:Overview#XPConnect XPConnect] or [https://wiki.mozilla.org/Gecko:Overview#WebIDL_Bindings Web IDL], the basic idea is that there is a JSObject called a '''reflector''' that represents some C++ object. The JSObject ensures that the C++ object remains alive while the JSObject is alive. The C++ object does ''not'' necessarily keep the JSObject alive; this allows the JSObject to be garbage-collected as needed. If this happens, the next time JS needs access to that C++ object a new reflector is created. If something happens that requires that the actual object identity of the JSObject be preserved even though it's not explicitly reachable, the C++ object will start keeping the JSObject alive as well. After this point, the cycle collector would be the only way for the pair of objects to be deallocated. Examples of operations that require identity-preservation are adding a property to the object, giving the object a non-default prototype, using the object as a weakmap key or weakset member.<br />
<br />
In the XPConnect case, reflectors are created by XPCWrappedNative::GetNewOrUsed. This finds the right JSClass to use for the object, depending on information provided by the C++ object via the nsIClassInfo interface about special class hooks it might need. If the C++ object has no clasinfo, XPC_WN_NoHelper_JSClass is used. GetNewOrUsed also determines the right global to use for the reflector, again based on nsIClassInfo information, with a fallback to the JSContext's current global.<br />
<br />
In the Web IDL case, reflectors are created by the Wrap method that the binding code generator spits out for the relevant Web IDL interface. So for the Document interface, the relevant method is mozilla::dom::Document_Binding::Wrap. The JSClass that is used is also created by the code generator, as part of the DOMJSClass struct it outputs. Web IDL objects provide a GetParentObject() method that is used to determine the right global to use for the reflector.<br />
<br />
Web IDL objects typically inherit from nsWrapperCache, and use that class to store a pointer to their reflector and to keep it alive as needed. The only exception to that is if the Web IDL object only needs to find a reflector once during its lifetime, typically as a result of a Web IDL constructor being called from JS (see TextEncoder for an example). In that case, there is no need to get the JS object from the C++ one, and no way to end up in any of the situations that require preserving the JS object from the C++ side, so the Web IDL object is allowed to not inherit from nsWrapperCache.<br />
<br />
=== Security ===<br />
<br />
Gecko's JS security model is based on the concept of compartments. Every compartment has a '''principal''' associated with it that contains security information such as the '''origin''' of the compartment, whether or not it has system privileges, etc. For the following discussion, '''wrappee''' refers to the underlying object being wrapped, '''scope''' refers to the compartment the object is being wrapped for use in, and '''wrapper''' refers to the object created in '''scope''' that allows it to interact with '''wrappee'''. "Chrome" refers to JS that is built in to the browser or part of an extension, which runs with full privileges, and is contrasted with "content", which is web provided script that is subject to security restrictions and the same origin policy.<br />
<br />
* Xray wrappers: Xray wrappers are used when the scope has chrome privileges and the wrappee is the JS reflection of an underlying DOM object. Beyond the usual CCW duties of making sure that content code does not run with chrome privileges, Xray wrappers also ensure that calling methods or accessing attributes on the wrappee has the "expected" effect. For example, a web page could replace the <code>close</code> method on its window with a JS function that does something completely different. (e.g. <code>window.close = function() { alert("This isn't what you wanted!") };</code>). Overwriting methods in this way (or creating entirely new ones) is referred to as '''expando''' properties. Xrays see through expando properties, invoking the original method/getter/setter if the expando overwrites a builtin or seeing undefined in the expando creates a new property. This allows chrome code to call methods on content DOM objects without worrying about how the page has changed the object.<br />
* Waived xray wrappers: The xray behavior is not always desirable. It is possible for chrome to "waive" the xray behavior and see the actual JS object. The wrapper still guarantees that code runs with the correct privileges, but methods/getters/setters may not behave as expected. This is equivalent to the behavior chrome sees when it looks at non-DOM content JS objects.<br />
* For more information, see the [https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Script_security MDN page]<br />
* bholley's [https://air.mozilla.org/enter-the-compartment/ Enter the Compartment] talk also provides an overview of our compartment architecture.<br />
<br />
== Images ==<br />
<br />
== Plugins ==<br />
<br />
== Platform-specific layers ==<br />
<br />
* widget<br />
* native theme<br />
* files, networking, other low-level things<br />
* Accessibility APIs<br />
* Input. Touch-input stuff is somewhat described at [[Platform/Input/Touch]].<br />
<br />
== Editor ==<br />
<br />
== Base layers ==<br />
<br />
=== NSPR ===<br />
<br />
NSPR is a library for providing cross-platform APIs for various<br />
platform-specific functions. We tend to be trying to use it as little<br />
as possible, although there are a number of areas (particularly some<br />
network-related APIs and threading/locking primitives) where we use it<br />
quite a bit.<br />
<br />
=== XPCOM ===<br />
<br />
XPCOM is a cross-platform modularity library, modeled on Microsoft COM. It<br />
is an object system in which all objects inherit from the <code>nsISupports</code> interface.<br />
<br />
components and services, contract IDs and CIDs<br />
<br />
prior overuse of XPCOM; littering with XPCOM does not produce modularity<br />
<br />
Base headers (part of xpcom/base/) and data structures. See also mfbt.<br />
<br />
Threading<br />
<br />
xptcall, proxies<br />
<br />
reference counting, cycle collection<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]<br />
<br />
=== String ===<br />
<br />
XPCOM has string classes for representing sequences of characters. Typical C++ string classes have the goals of encapsulating the memory management of buffers and the issues needed to avoid buffer overruns common in traditional C string handling. Mozilla's string classes have these goals, and also the goal of reducing copying of strings.<br />
<br />
(There is a second set of string classes in xpcom/glue for callers outside of libxul; these classes are partially source-compatible but have different (worse) performance characteristics. This discussion does not cover those classes.)<br />
<br />
We have two parallel sets of classes, one for strings with 1-byte units (<code>char</code>, which may be signed or unsigned), and one for strings with 2-byte units (<code>char16_t</code>, always unsigned). The classes are named such that the class for 2-byte characters ends with <code>String</code> and the corresponding class for 1-byte characters ends with <code>CString</code>. 2-byte strings are almost always used to encode [http://en.wikipedia.org/wiki/UTF-16 UTF-16]. 1-byte strings are usually used to encode either [http://en.wikipedia.org/wiki/ASCII ASCII] or [http://en.wikipedia.org/wiki/UTF-8 UTF-8], but are sometimes also used to hold data in some other encoding or just byte sequences.<br />
<br />
The string classes distinguish, as part of the type hierarchy, between strings that must have a null-terminator at the end of their buffer (<code>ns[C]String</code>) and strings that are not required to have a null-terminator (<code>ns[C]Substring</code>). <code>ns[C]Substring</code> is the base of the string classes (since it imposes fewer requirements) and <code>ns[C]String</code> is a class derived from it. Functions taking strings as parameters should generally take one of these four types.<br />
<br />
In order to avoid unnecessary copying of string data (which can have significant performance cost), the string classes support different ownership models. All string classes support the following three ownership models dynamically:<br />
* reference counted, copy-on-write, buffers (the default)<br />
* adopted buffers (a buffer that the string class owns, but is not reference counted, because it came from somewhere else)<br />
* dependent buffers, that is, an underlying buffer that the string class does not own, but that the caller that constructed the string guarantees will outlive the string instance<br />
In addition, there is a special string class, <code>nsAuto[C]String</code>, that ''additionally'' contains an internal 64-unit buffer (intended primarily for use on the stack), leading to a fourth ownership model:<br />
* storage within an auto string's stack buffer<br />
Auto strings will prefer reference counting an existing reference-counted buffer over their stack buffer, but will otherwise use their stack buffer for anything that will fit in it.<br />
<br />
There are a number of additional string classes, particularly <code>nsDependent[C]String</code>, <code>nsDependent[C]Substring</code>, and the <code>NS_LITERAL_[C]STRING</code> macros which construct an <code>nsLiteral[C]String</code> which exist primarily as constructors for the other types. These types are really just convenient notation for constructing an <code>ns[C]S[ubs]tring</code> with a non-default ownership mode; they should not be thought of as different types. (The <code>Substring</code>, <code>StringHead</code>, and <code>StringTail</code> functions are also constructors for dependent [sub]strings.) Non-default ownership modes can also be set up using the <code>Rebind</code> and <code>Adopt</code> methods, although the <code>Rebind</code> methods actually live on the derived types, which is probably a mistake (although moving them up would require some care to avoid making an API that easily allows assigning a non-null-terminated buffer to a string whose static type indicates that it is null-terminated).<br />
<br />
Note that the presence of all of these classes imposes some awkwardness in terms of distinctions being available as both static type distinctions and dynamic type distinctions. In general, the only distinctions that should be made statically are 1-byte vs. 2-byte sequences (<code>CString</code> vs <code>String</code>) and whether the buffer is null-terminated or not (<code>Substring</code> vs <code>String</code>). (Does the code actually do a good job of dynamically enforcing the <code>Substring</code> vs. <code>String</code> restriction?)<br />
<br />
TODO: buffer growth, concatenation optimizations<br />
<br />
TODO: encoding conversion, what's validated and what isn't<br />
<br />
TODO: "string API", nsAString (historical)<br />
<br />
* Code: xpcom/string/<br />
* Bugzilla: Core::String<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]</div>Dholberthttps://wiki.mozilla.org/index.php?title=Gecko:Overview&diff=1240906Gecko:Overview2022-03-01T18:43:07Z<p>Dholbert: /* Reflow */ Update links to GetMin/PrefWidth to use searchfox and new function names (s/Width/ISize)</p>
<hr />
<div>This document attempts to give an overview of the different parts of<br />
Gecko, what they do, and why they do it, say where the code for them is<br />
within the repository, and link to more specific documentation (when<br />
available) covering the details of that code. '''It is not yet complete.''' Maintainers of these<br />
areas of code should correct errors, add information, and add links to<br />
more detailed documentation (since this document is intended to remain<br />
an overview, not complete documentation).<br />
<br />
__TOC__<br />
<br />
== Browsers, Frames, and Document Navigation ==<br />
<br />
=== Docshell ===<br />
<br />
The user of a Web browser can change the page shown in that browser in<br />
many ways: by clicking a link, loading a new URL, using the forward and<br />
back buttons, or other ways. This can happen inside a space we'll call<br />
a '''browsing context'''; this space can be a browser window, a tab, or a frame<br />
or iframe within a document. The toplevel data structures within Gecko<br />
represent this browsing context; they contain other data structures<br />
representing the individual pages displayed inside of it (most<br />
importantly, the current one). In terms of implementation, these two<br />
types of navigation, the top level of a browser and the frames within<br />
it, largely use the same data structures.<br />
<br />
In Gecko, the '''docshell''' is the toplevel object responsible for<br />
managing a single browsing context. It, and the associated '''session history''' code, <br />
manage the navigation between pages inside of a<br />
docshell. (Note the difference between session history, which is a<br />
sequence of pages in a single browser session, used for recording information<br />
for back and forward navigation, and global history, which is the<br />
history of pages visited and associated times, regardless of browser<br />
session, used for things like link coloring and address autocompletion.)<br />
<br />
There are relatively few objects in Gecko that are associated with a<br />
docshell rather than being associated with a particular one of the pages<br />
inside of it. Most such objects are attached to the docshell. An important object associated with the docshell is the nsGlobalWindowOuter which is what the HTML5 spec refers to as a WindowProxy (into which Window objects, as implemented by nsGlobalWindowInner, are loaded). See the DOM section below for more information on<br />
this.<br />
<br />
The most toplevel object for managing the contents of a particular page<br />
being displayed within a docshell is a document viewer (see layout).<br />
Other important objects associated with this presentation are the<br />
document (see DOM) and the pres(entation) shell and pres(entation)<br />
context (see layout).<br />
<br />
[[File:WebNavigation.png|thumb|400px|<xul:browser>, frameloader and docshell in single process configuration]]<br />
<br />
Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In Gecko, a browsing context container would implement <code>[https://dxr.mozilla.org/mozilla-central/rev/f9a5e9ed62103c84e4cde915f4d08f1ce71be83e/dom/base/nsIFrameLoader.idl#271 nsIFrameLoaderOwner]</code> to hold a '''frameloader''', which holds and manages the docshell. <br />
<br />
One of the most interfaces docshell implemented is <code>[https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl nsIWebNavigation]</code>. It defines major functions of a browsing context, such as <code>loadURI</code> / <code>goBack</code> / <code>goForward</code> and <code>reload</code>. In single process configuration of desktop Firefox, <code><xul:browser></code> (which represents a tab) operates on docshell through <code>nsIWebNavigation</code>, as shown in the right figure.<br />
<br />
* code: mozilla/docshell/<br />
* bugzilla: Core::Document Navigation<br />
* documentation: [[DocShell:Home Page]]<br />
<br />
=== Session History ===<br />
<br />
In order to keep the session history of subframes after the root document is unloaded and docshells of subframes are destroyed, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change).<br />
<br />
As an example to explain the structure of session history implementation in Gecko, consider there's a tab A, which loads document 1; in document 1, there are iframe B & C, which loads document 2 & 3, respectively. Later, an user navigates iframe B to document 4. The following figures show the conceptual model of the example, and the corresponding session history structure.<br />
<br />
{| <br />
| [[File:BrowsingContextExample1.png|thumb|190px|Conceptual model representation; color denotes current visible active documents]]<br />
| [[File:SHistoryExample1.png|thumb|180px|Session history structure; color denotes current transaction / entries]]<br />
|}<br />
<br />
In Gecko, a [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHistory.h session history] object holds a list of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHTransaction.h transactions] (denoted as T1 & T2 in the figure); each transaction points to a tree of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHEntry.h entries]; each entry records the docshell it associated to, and a URL. Now that if we navigate the tab to a different root document 5, which includes an iframe D with document 6, then it becomes:<br />
<br />
{| <br />
| [[File:BrowsingContextExample2.png|thumb|275px|Conceptual model representation]]<br />
| [[File:SHistoryExample2.png|thumb|250px|Session history structure]]<br />
|}<br />
<br />
=== Embedding ===<br />
<br />
To be written (and maybe rewritten if we get an IPC embedding API).<br />
<br />
[[File:WebNavigationE10S.png|thumb|500px|<xul:remote-browser>, frameloader and docshell in multiprocess configuration. The horizontal dash-lines represent inter-process communication]]<br />
<br />
=== Multi-process and IPC ===<br />
<br />
In a multi-process desktop Firefox, a tab is managed by <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/remote-browser.xml <xul:remote-browser>]</code>. It still operates on nsIWebNavigation, but in this case the docshell is in a remote process and can not be accessed directly. The encapsulation of remote nsIWebNavigation is done by the javascript-implemented <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/components/remotebrowserutils/RemoteWebNavigation.js RemoteWebNavigation]</code>.<br />
<br />
In this configuration, the frameloader of a root docshell lives in parent process, so it can not access docshell directly either. Instead, it holds a <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]</code> instance to interact with <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]</code> in child-process. At C/C++ level, the communication across processes for a single tab is through the '''PBrowser''' IPC protocol implemented by TabParent and TabChild, while at the javascript level it's done by '''message manager''' (which is ontop of PBrowser). RemoteWebNavigation, for example, sends messages to <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/browser-child.js browser-child.js]</code> in content process through message manager.<br />
<br />
== Networking ==<br />
<br />
The network library Gecko uses is called Necko. Necko APIs are largely organized around three concepts: '''URI objects''', '''protocol handlers''', and '''channels'''.<br />
<br />
=== Protocol handlers ===<br />
A '''protocol handler''' is an XPCOM service associated with a particular URI scheme or network protocol. Necko includes protocol handlers for HTTP, FTP, the data: URI scheme, and various others. Extensions can implement protocol handlers of their own.<br />
<br />
A protocol handler implements the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl nsIProtocolHandler]</code> API, which serves three primary purposes:<br />
# Providing metadata about the protocol (its security characteristics, whether it requires actual network access, what the corresponding URI scheme is, what TCP port the protocol uses by default).<br />
# Creating URI objects for the protocol's scheme.<br />
# Creating channel objects for the protocol's URI objects<br />
<br />
Typically, the built-in I/O service (<code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService2.idl nsIIOService]</code>) is responsible for finding the right protocol handler for URI object creation and channel creation, while a variety of consumers queries protocol metadata. Querying protocol metadata is the recommended way to handle any sort of code that needs to have different behavior for different URI schemes. In particular, unlike whitelists or blacklists, it correctly handles the addition of new protocols.<br />
<br />
A service can register itself as a protocol handler by registering for the contract ID <code>"@mozilla.org/network/protocol;1?name=SSSSS"</code> where <code>SSSS</code> is the URI scheme for the protocol (e.g. "http", "ftp", and so forth).<br />
<br />
=== URI objects ===<br />
URI objects, which implement the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURI.idl nsIURI]</code> API, are a way of representing URIs and IRIs. Their main advantage over strings is that they do basic syntax checking and canonicalization on the URI string that they're provided with. They also provide various accessors to extract particular parts of the URI and provide URI equality comparisons. URIs that correspond to hierarchical schemes implement the additional <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURL.idl nsIURL]</code> interface, which exposes even more accessors for breaking out parts of the URI.<br />
<br />
URI objects are typically created by calling the <code>newURI</code> method on the I/O service, or in C++ by calling the <code>NS_NewURI</code> utility function. This makes sure to create the URI object using the right protocol handler, which ensures that the right kind of object is created. Direct creation of URIs via <code>createInstance</code> is reserved for protocol handler implementations.<br />
<br />
=== Channels ===<br />
[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIChannel.idl Channels] are the Necko representation of a single request/response interaction with a server. A channel is created by calling the <code>newChannel</code> method on the [https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService.idl I/O service], or in C++ by calling the <code>[https://dxr.mozilla.org/mozilla-central/search?q=function%3ANS_NewChannel&case=true NS_NewChannel]</code> utility function. The channel can then be configured as needed, and finally its <code>asyncOpen</code> method can be called. This method takes an <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl nsIStreamListener]</code> as an argument.<br />
<br />
If <code>asyncOpen</code> has returned successfully, the channel guarantees that it will asynchronously call the <code>onStartRequest</code> and <code>onStopRequest</code> methods on its stream listener. This will happen even if there are network errors that prevent Necko from actually performing the requests. Such errors will be reported in the channel's status and in the <code>status</code> argument to <code>onStopRequest</code>.<br />
<br />
If the channel ends up being able to provide data, it will make one or more <code>onDataAvailable</code> on its listener after calling <code>onStartRequest</code> and before calling <code>onStopRequest</code>. For each call, the listener is responsible for either returning an error or reading the entire data stream passed in to the call.<br />
<br />
If an error is returned from either <code>onStartRequest</code> or <code>onDataAvailable</code>, the channel must act as if it has been canceled with the corresponding error code.<br />
<br />
A channel has two URI objects associated with it. The <code>originalURI</code> of the channel is the URI that was originally passed to <code>newChannel</code> to create the channel that then had <code>asyncOpen</code> called on it. The <code>URI</code> is the URI from which the channel is reading data. These can be different in various cases involving protocol handlers that forward network access to other protocol handlers, as well as in situations in which a redirect occurs (e.g. following an HTTP 3xx response). In redirect situations, a new channel object will be created, but the originalURI will be propagated from the old channel to the new channel.<br />
<br />
Note that the <code>nsIRequest</code> that's passed to onStartRequest must match the one passed to onDataAvailable and onStopRequest, but need not be the original channel that asyncOpen was called on. In particular, when an HTTP redirect happens the request argument to the callbacks will be the post-redirect channel.<br />
<br />
TODO: crypto?<br />
<br />
== Document rendering pipeline ==<br />
<br />
Some of the major components of Gecko can be described as steps on the<br />
path from an HTML document coming in from the network to the graphics<br />
commands needed to render that document. An HTML document is a<br />
serialization of a tree structure. (FIXME: add diagram) The HTML<br />
parser and content sink create an in-memory representation of this tree,<br />
which we call the '''DOM tree''' or '''content tree'''.<br />
Many JavaScript APIs operate on the content tree. Then, in<br />
layout, we create a second tree, the '''frame tree''' (or<br />
'''rendering tree''') that is a similar shape to the content tree,<br />
but where each node in the tree represents a rectangle (except in SVG<br />
where they represent other shapes). We then compute the positions of<br />
the nodes in the frame tree (called '''frames''') and paint them<br />
using our cross-platform graphics APIs (which, underneath, map to<br />
platform-specific graphics APIs).<br />
<br />
Further documentation:<br />
* Talk: Fast CSS: How Browsers Lay Out Web Pages (David Baron, 2012-03-11): [https://dbaron.org/talks/2012-03-11-sxsw/slide-1.xhtml slideshow], [https://dbaron.org/talks/2012-03-11-sxsw/master.xhtml all slides], [http://audio.sxsw.com/2012/podcasts/11-ACC-Fast_CSS_How_Browser_Layout.mp3 audio (MP3)], [https://schedule.sxsw.com/2012/events/event_IAP12909 session page]<br />
* Talk: Efficient CSS Animations (an updated version of the previous talk with a slightly different focus) (David Baron, 2014-06-04): [https://dbaron.org/talks/2014-06-04-cssday/slide-1.xhtml slideshow], [https://dbaron.org/talks/2014-06-04-cssday/master.xhtml all slides], [http://vimeo.com/channels/cssday/103108124 video]<br />
* Talk: [https://air.mozilla.org/benoit-girard-gecko-rendering/ Overview of the Gecko Rendering Pipeline] (Benoit Girard, 2014-10-14)<br />
<br />
=== Parser ===<br />
<br />
The parser's job is to transform a character stream into a tree<br />
structure, with the help of the content sink classes.<br />
<br />
HTML is parsed using a parser implementing the parsing algorithm in the<br />
HTML specification (starting with HTML5). Much of this parser is<br />
translated from Java, and changes are made to the Java version. This<br />
parser in parser/html/. The parser is driven by the output of the networking layer (see nsHtml5StreamParser::OnDataAvailable). The HTML5 parser is capable of parsing off the main thread which is the normal case. It also parses on the main thread to be able to synchronously handle things such as innerHTML modifications.<br />
<br />
The codebase still has the previous generation HTML parser, which is<br />
still used for a small number of things, though we hope to be able to<br />
remove it entirely soon. This parser is in parser/htmlparser/.<br />
<br />
XML is parsed using the expat library (parser/expat/) and code that<br />
wraps it (parser/xml/). This is a non-validating parser; however, it<br />
loads certain DTDs to support XUL localization.<br />
<br />
=== DOM / Content ===<br />
<br />
The content tree or DOM tree is the central data structure for Web<br />
pages. It is a tree structure, initially created from the tree<br />
structure expressed in the HTML or XML markup. The nodes in the tree<br />
implement major parts of the DOM (Document Object Model) specifications.<br />
The nodes themselves are part of a class hierarchy rooted at<br />
<code>nsINode</code>; different derived classes are used for things such<br />
as text nodes, the document itself, HTML elements, SVG elements, etc.,<br />
with further subclasses of many of these types (e.g., for specific HTML<br />
elements). Many of the APIs available to script running in Web pages<br />
are associated with these nodes. The tree structure persists while the<br />
Web pages is displayed, since it stores much of state associated with<br />
the Web page. The code for these nodes lives in the content/ directory.<br />
<br />
The DOM APIs are not threadsafe. DOM nodes can be accessed only from<br />
the main thread (also known as the UI thread (user interface thread)) of<br />
the application.<br />
<br />
There are also many other APIs available to Web pages that are not APIs<br />
on the nodes in the DOM tree. Many of these other APIs also live in the<br />
same directories, though some live in content/ and some in dom/. These<br />
include APIs such as the DOM event model.<br />
<br />
The dom/ directory also includes some of the code needed to expose Web<br />
APIs to JavaScript (in other words, the glue code between JavaScript and<br />
these APIs). For an overview, see [https://ask.mozilla.org/question/390/how-is-the-web-exposed-dom-implemented/ DOM API Implementation]. See [[#Scripting|Scripting]] below for details of the JS engine.<br />
<br />
TODO: Internal APIs vs. DOM APIs.<br />
<br />
TODO: Mutation observers / document observers.<br />
<br />
TODO: Reference counting and cycle collection.<br />
<br />
TODO: specification links<br />
<br />
=== Style System ===<br />
<br />
==== Quantum CSS (Stylo) ====<br />
<br />
Starting with Firefox 57 and later, Gecko makes use of the parallel style system written in Rust that comes from Servo. There's an [https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/ overview] of this with graphics to help explain what's going on. The [https://github.com/servo/servo/wiki/Layout-Overview Servo wiki] has some more details.<br />
<br />
==== Gecko ====<br />
<br />
The rest of the style section section describes the Gecko style system used in Firefox 56 and earlier. Some bits may still apply, but it likely needs revising.<br />
<br />
In order to display the content, Gecko needs to compute the styles<br />
relevant to each DOM node. It does this based on the model described in<br />
the CSS specifications: this model applies to style specified in CSS<br />
(e.g. by a 'style' element, an 'xml-stylesheet' processing instruction<br />
or a 'style' attribute),<br />
style specified by presentation attributes, and the default style<br />
specified by our own user agent style sheets. There are two major<br />
sets of data structures within the style system:<br />
* first, data structures that represent sources of style data, such as CSS style sheets or data from stylistic HTML attributes<br />
* second, data structures that represent computed style for a given DOM node.<br />
These sets of data structures are mostly distinct (for example, they<br />
store values in different ways).<br />
<br />
The loading of CSS style sheets from the network is managed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/Loader.h CSS loader]; <br />
they are then tokenized by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSScanner.h CSS scanner] <br />
and parsed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSParser.h CSS parser]. <br />
Those that are attached to the document also expose APIs to<br />
script that are known as the CSS Object Model, or CSSOM.<br />
<br />
The style sheets that apply to a document are managed by a class called<br />
the [https://dxr.mozilla.org/mozilla-central/source/layout/style/nsStyleSet.h style set].<br />
The style set interacts with the different types of<br />
style sheets (representing CSS style sheets, presentational<br />
attributes, and 'style' attributes) through two interfaces:<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleSheet.h nsIStyleSheet] for basic management of style sheets and<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRuleProcessor.h nsIStyleRuleProcessor] for getting the style data out of them. Usually<br />
the same object implements both interfaces, except in the most important<br />
case, CSS style sheets, where there is a single rule processor for all<br />
of the CSS style sheets in each origin (user/UA/author) of the CSS cascade.<br />
<br />
The computed style data for an element/frame are exposed to the rest of<br />
Gecko through the class mozilla::ComputedStyle (previously called<br />
nsStyleContext). Rather than having a member variable for each<br />
CSS property, it breaks up the properties into groups of related<br />
properties called style structs. These style structs obey the rule that<br />
all of the properties in a single struct either inherit by default (what<br />
the CSS specifications call "Inherited: yes" in the definition of<br />
properties; we call these inherited structs) or all are not inherited by<br />
default (we call these reset structs). Separating the properties in<br />
this way improves the ability to share the structs between similar<br />
ComputedStyle objects and reduce the amount of memory needed to store<br />
the style data. The ComputedStyle API exposes a method for getting each<br />
struct, so you'll see code like<br />
<code>sc->GetStyleText()->mTextAlign</code> for getting the value of the<br />
text-align CSS property. (Frames (see the Layout section below) also<br />
have the same<br />
GetStyle* methods, which just forward the call to the frame's<br />
ComputedStyle.)<br />
<br />
The ComputedStyles form a tree structure, in a shape somewhat like the<br />
content tree (except that we coalesce identical sibling ComputedStyles<br />
rather than keeping two of them around; if the parents have been<br />
coalesced then this can apply recursively and coalasce cousins, etc.;<br />
we do not coalesce parent/child ComputedStyles).<br />
The parent of a ComputedStyle has the style data that the ComputedStyle<br />
inherits from when CSS inheritance occurs. This means that the parent<br />
of the ComputedStyle for a DOM element is generally the ComputedStyle<br />
for that DOM element's parent, since that's how CSS says inheritance<br />
works.<br />
<br />
The process of turning the style sheets into computed style data goes<br />
through three main steps, the first two of which closely relate to the<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRule.h nsIStyleRule] interface, which represents an immutable source of style<br />
data, conceptually representing (and for CSS style rules, directly<br />
storing) a set of property:value pairs. (It is similar to the idea of a<br />
CSS style rule, except that it is immutable; this immutability allows<br />
for significant optimization. When a CSS style rule is changed through<br />
script, we create a new style rule.)<br />
<br />
The first step of going from style sheets to computed style data is<br />
finding the ordered sequence of style rules that apply to an element.<br />
The order represents which rules override which other rules: if two<br />
rules have a value for the same property, the higher ranking one wins.<br />
(Note that there's another difference from CSS style rules: declarations<br />
with !important are represented using a separate style rule.) This is<br />
done by calling one of the nsIStyleRuleProcessor::RulesMatching methods.<br />
The ordered sequence is stored in a<br />
[http://en.wikipedia.org/wiki/Trie trie] called the rule tree: the path<br />
from the root of the rule tree to any (leaf or non-leaf) node in the<br />
rule tree represents a sequence of rules, with the highest ranking<br />
farthest from the root. Each rule node (except for the root) has a<br />
pointer to a rule, but since a rule may appear in many sequences, there<br />
are sometimes many rule nodes pointing to the same rule. Once we have<br />
this list we create a ComputedStyle (or find an appropriate existing<br />
sibling) with the correct parent pointer (for inheritance) and rule node<br />
pointer (for the list of rules), and a few other pieces of information<br />
(like the pseudo-element).<br />
<br />
The second step of going from style sheets to computed style data is<br />
getting the winning property:value pairs from the rules. (This only<br />
provides property:value pairs for some of the properties; the remaining<br />
properties will fall back to inheritance or to their initial values<br />
depending on whether the property is inherited by default.) We do this<br />
step (and the third) for each style struct, the first time it is needed.<br />
This is done in nsRuleNode::WalkRuleTree, where we ask each style rule<br />
to fill in its property:value pairs by calling its MapRuleInfoInto<br />
function. When called, the rule fills in only those pairs that haven't<br />
been filled in already, since we're calling from the highest priority<br />
rule to the lowest (since in many cases this allows us to stop before<br />
going through the whole list, or to do partial computation that just<br />
adds to data cached higher in the rule tree).<br />
<br />
The third step of going from style sheets to computed style data (which<br />
various caching optimizations allow us to skip in many cases) is<br />
actually doing the computation; this generally means we transform the<br />
style data into the data type described in the "Computed Value" line in<br />
the property's definition in the CSS specifications. This<br />
transformation happens in functions called nsRuleNode::Compute*Data,<br />
where the * in the middle represents the name of the style struct. This<br />
is where the transformation from the style sheet value storage format to<br />
the computed value storage format happens.<br />
<br />
Once we have the computed style data, we then store it: if a style struct<br />
in the computed style data doesn't<br />
depend on inherited values or on data from other style structs, then we<br />
can cache it in the rule tree (and then reuse it, without recomputing<br />
it, for any ComputedStyles pointing to that rule node). Otherwise, we<br />
store it on the ComputedStyle (in which case it may be shared<br />
with the ComputedStyle's descendant ComputedStyles).<br />
This is where keeping inherited and<br />
non-inherited properties separate is useful: in the common case of<br />
relatively few properties being specified, we can generally cache the<br />
non-inherited structs in the rule tree, and we can generally share the<br />
inherited structs up and down the ComputedStyle tree.<br />
<br />
The ownership models in style sheet structures are a mix of reference<br />
counted structures (for things accessible from script) and directly<br />
owned structures. ComputedStyles are reference counted, and own their<br />
parents (from which they inherit), and rule nodes are garbage collected<br />
with a simple mark and sweep collector (which often never needs to run).<br />
<br />
* code: [http://dxr.mozilla.org/mozilla-central/source/layout/style/ layout/style/], where most files have useful one line descriptions at the top that show up in DXR<br />
* Bugzilla: Style System (CSS)<br />
* specifications<br />
** [http://www.w3.org/TR/CSS21/ CSS 2.1]<br />
** [http://www.w3.org/TR/css-2010/ CSS 2010, listing stable css3 modules]<br />
** [http://dev.w3.org/csswg/ CSS WG editors drafts] (often more current, but sometimes more unstable than the drafts on the technical reports page)<br />
** [http://dbaron.org/mozilla/visited-privacy Preventing attacks on a user's history through CSS :visited selectors]<br />
* documentation<br />
** [http://www-archive.mozilla.org/newlayout/doc/style-system.html style system documentation] (somewhat out of date)<br />
<br />
=== Layout ===<br />
<br />
Much of the layout code deals with operations on the frame tree (or<br />
rendering tree). In the frame tree, each node represents a rectangle<br />
(or, for SVG, other shapes). The frame tree has a shape similar to the<br />
content tree, since many content nodes have one corresponding frame,<br />
though it differs in a few ways, since some content nodes have more than<br />
one frame or don't have any frames at all. When elements are<br />
display:none in CSS or undisplayed for certain other reasons, they won't<br />
have any frames. When elements are broken across lines or pages, they<br />
have multiple frames; elements may also have multiple frames when<br />
multiple frames nested inside each other are needed to display a single<br />
element (for example, a table, a table cell, or many types of form<br />
controls).<br />
<br />
Each node in the frame tree is an instance of a class derived from<br />
<code>nsIFrame</code>. As with the content tree, there is a substantial<br />
type hierarchy, but the type hierarchy is very different: it includes<br />
types like text frames, blocks and inlines, the various parts of tables,<br />
flex and grid containers, and the various types of HTML form controls.<br />
<br />
Frames are allocated within an arena owned by the PresShell. Each<br />
frame is owned by its parent; frames are not reference counted, and code<br />
must not hold on to pointers to frames. To mitigate potential security<br />
bugs when pointers to destroyed frames, we use<br />
[http://robert.ocallahan.org/2010/10/mitigating-dangling-pointer-bugs-using_15.html frame poisoning], which takes two parts. When a frame is destroyed<br />
other than at the end of life of the presentation, we fill its memory<br />
with a pattern consisting of a repeated pointer to inaccessible memory,<br />
and then put the memory on a per-frame-class freelist. This means that<br />
if code accesses the memory through a dangling pointer, it will either<br />
crash quickly by dereferencing the poison pattern or it will find a<br />
valid frame.<br />
<br />
Like the content tree, frames must be accessed only from the UI thread.<br />
<br />
The frame tree should not store any important data, i.e. any data that cannot<br />
be recomputed on-the-fly. While the frame tree does<br />
usually persist while a page is being displayed, frames are often<br />
destroyed and recreated in response to certain style changes, and in the<br />
future we may do the same to reduce memory use for pages that are<br />
currently inactive. There were a number of cases where this rule was<br />
violated in the past and we stored important data in the frame tree;<br />
however, most (though not quite all) such cases are now fixed.<br />
<br />
The rectangle represented by the frame is what CSS calls the element's<br />
border box. This is the outside edge of the border (or the inside edge<br />
of the margin). The margin lives outside the border; and the padding<br />
lives inside the border. In addition to nsIFrame::GetRect, we also have<br />
the APIs nsIFrame::GetPaddingRect to get the padding box (the outside<br />
edge of the padding, or inside edge of the border) and<br />
nsIFrame::GetContentRect to get the content box (the outside edge of the<br />
content, or inside edge of the padding). These APIs may produce out of<br />
date results when reflow is needed (or has not yet occurred).<br />
<br />
In addition to tracking a rectangle, frames also track two overflow<br />
areas: ink overflow and scrollable overflow. These overflow areas<br />
represent the union of the area needed by the frame and by all its<br />
descendants. The ink overflow is used for painting-related<br />
optimizations: it is a rectangle covering all of the area that might be<br />
painted when the frame and all of its descendants paint. The scrollable<br />
overflow represents the area that the user should be able to scroll to<br />
to see the frame and all of its descendants. In some cases differences<br />
between the frame's rect and its overflow happen because of descendants<br />
that stick out of the frame; in other cases they occur because of some<br />
characteristic of the frame itself. The two overflow areas are<br />
similar, but there are differences: for example, margins are part of<br />
scrollable overflow but not ink overflow, whereas text-shadows are<br />
part of ink overflow but not scrollable overflow.<br />
<br />
When frames are broken across lines, columns, or pages, we create<br />
multiple frames representing the multiple rectangles of the element.<br />
The first one is the primary frame, and the rest are its continuations<br />
(which are more likely to be destroyed and recreated during reflow).<br />
These frames are linked together as continuations: they have a<br />
doubly-linked list that can be used to traverse the continuations using<br />
nsIFrame::GetPrevContinuation and nsIFrame::GetNextContinuation.<br />
(Currently continuations always have the same style data, though we may<br />
at some point want to break that invariant.)<br />
<br />
Continuations are sometimes siblings of each other (i.e.<br />
nsIFrame::GetNextContinuation and nsIFrame::GetNextSibling might return<br />
the same frame), and sometimes not.<br />
For example, if a paragraph contains a span which contains a link, and<br />
the link is split across lines, then the continuations of the span are<br />
siblings (since they are both children of the paragraph), but the<br />
continuations of the link are not siblings (since each continuation of<br />
the link is descended from a different continuation of the span).<br />
Traversing the entire frame tree does '''not''' require explicit traversal<br />
of any frames' continuations-list, since all of the continuations are<br />
descendants of the element containing the break.<br />
<br />
We also use continuations for cases (most importantly, bidi reordering,<br />
where left-to-right text and right-to-left text need to be separated<br />
into different continuations since they may not form a contiguous<br />
rectangle) where the continuations should not be rewrapped during<br />
reflow: we call these continuations fixed rather than fluid.<br />
nsIFrame::GetNextInFlow and nsIFrame::GetPrevInFlow traverse only the<br />
fluid continuations and do not cross fixed continuation boundaries.<br />
<br />
If an inline frame has non-inline children, then we split the original <br />
inline frame into parts. The original inline's children are <br />
distributed into these parts like so: The children of the original <br />
inline are grouped into runs of inline and non-inline, and runs of <br />
inline get an inline parent, while runs of non-inline get an anonymous <br />
block parent. We call this 'ib-splitting' or 'block-inside-inline splitting'. <br />
This splitting proceeds recursively up the frame tree until all <br />
non-inlines inside inlines are ancestors of a block frame with anonymous <br />
block wrappers in between. This splitting maintains the relative order<br />
between these child frames, and the relationship between the parts of a <br />
split inline is maintained using an ib-sibling chain. It is important <br />
to note that any wrappers created during frame construction (such as <br />
for tables) might not be included in the ib-sibling chain depending on <br />
when this wrapper creation takes place. <br />
<br />
TODO: nsBox craziness from https://bugzilla.mozilla.org/show_bug.cgi?id=524925#c64<br />
<br />
TODO: link to documentation of block and inline layout<br />
<br />
TODO: link to documentation of scrollframes<br />
<br />
TODO: link to documentation of XUL frame classes<br />
<br />
Code (note that most files in base and generic have useful one line descriptions at the top that show up in DXR):<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/base/ layout/base/] contains objects that coordinate everything and a bunch of other miscellaneous things<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/generic/ layout/generic/] contains the basic frame classes as well as support code for their reflow methods (ReflowInput, ReflowOutput)<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/forms/ layout/forms/] contains frame classes for HTML form controls<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/tables/ layout/tables/] contains frame classes for CSS/HTML tables<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/mathml/ layout/mathml/] contains frame classes for MathML<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/svg/ layout/svg/] contains frame classes for SVG<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/xul/ layout/xul/] contains frame classes for the XUL box model and for various XUL widgets<br />
<br />
Bugzilla:<br />
* All of the components whose names begin with "Layout" in the "Core" product<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bz-layout-and-styles/ Layout and Styles] (Boris Zbarsky, 2014-10-14)<br />
<br />
<br />
==== Frame Construction ====<br />
<br />
Frame construction is the process of creating frames. This is done when styles change in ways that require frames to be created or recreated or when nodes are inserted into the document. The content tree and the frame tree don't have quite the same shape, and the frame construction process does some of the work of creating the right shape for the frame tree. It handles the aspects of creating the right shape that don't depend on layout information. So for example, frame construction handles the work needed to implement [http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes table anonymous objects] but does not handle frames that need to be created when an element is broken across lines or pages.<br />
<br />
The basic unit of frame construction is a run of contiguous children of a single parent element. When asked to construct frames for such a run of children, the frame constructor first determines, based on the siblings and parent of the nodes involved, where in the frame tree the new frames should be inserted. Then the frame constructor walks through the list of content nodes involved and for each one creates a temporary data structure called a '''frame construction item'''. The frame construction item encapsulates various information needed to create the frames for the content node: its style data, some metadata about how one would create a frame for this node based on its namespace, tag name, and styles, and some data about what sort of frame will be created. This list of frame construction items is then analyzed to see whether constructing frames based on it and inserting them at the chosen insertion point will produce a valid frame tree. If it will not, the frame constructor either fixes up the list of frame construction items so that the resulting frame tree would be valid or throws away the list of frame construction items and requests the destruction and re-creation of the frame for the parent element so that it has a chance to create a list of frame construction items that it <em>can</em> fix up.<br />
<br />
Once the frame constructor has a list of frame construction items and an insertion point that would lead to a valid frame tree, it goes ahead and creates frames based on those items. Creation of a non-leaf frame recursively attempts to create frames for the children of that frame's element, so in effect frames are created in a depth-first traversal of the content tree.<br />
<br />
The vast majority of the code in the frame constructor, therefore, falls into one of these categories:<br />
* Code to determine the correct insertion point in the frame tree for new frames.<br />
* Code to create, for a given content node, frame construction items. This involves some searches through static data tables for metadata about the frame to be created.<br />
* Code to analyze the list of frame construction items.<br />
* Code to fix up the list of frame construction items.<br />
* Code to create frames from frame construction items.<br />
<br />
Code: [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.h layout/base/nsCSSFrameConstructor.h] and [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp layout/base/nsCSSFrameConstructor.cpp]<br />
<br />
==== Reflow ====<br />
<br />
Reflow is the process of computing the positions and sizes of frames. (After all,<br />
frames represent rectangles, and at some point we need to figure out<br />
exactly *what* rectangle.) Reflow is done recursively, with each<br />
frame's Reflow method calling the Reflow methods on that frame's<br />
descendants.<br />
<br />
In many cases, the correct results are defined by CSS specifications<br />
(particularly [http://www.w3.org/TR/CSS21/visudet.html CSS 2.1]). In some cases, the details are not defined by<br />
CSS, though in some (but not all) of those cases we are constrained by<br />
Web compatibility. When the details are defined by CSS, however, the<br />
code to compute the layout is generally structured somewhat differently<br />
from the way it is described in the CSS specifications, since the CSS<br />
specifications are generally written in terms of constraints, whereas<br />
our layout code consists of algorithms optimized for incremental<br />
recomputation.<br />
<br />
The reflow generally starts from the root of the frame tree, though some other<br />
types of frame can act as "reflow roots" and start a reflow from them<br />
(nsTextControlFrame is one example; see the<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_REFLOW_ROOT&redirect=true NS_FRAME_REFLOW_ROOT] frame state bit).<br />
Reflow roots must obey the invariant that a change inside one of their<br />
descendants never changes their rect or overflow areas (though currently<br />
scrollbars are reflow roots but don't quite obey this invariant).<br />
<br />
In many cases, we want to reflow a part of the frame tree, and we want<br />
this reflow to be efficient. For example, when content is added or<br />
removed from the document tree or when styles change, we want the amount<br />
of work we need to redo to be proportional to the amount of content. We<br />
also want to efficiently handle a series of changes to the same content.<br />
<br />
To do this, we maintain two bits on frames:<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_IS_DIRTY&redirect=true NS_FRAME_IS_DIRTY]<br />
indicates that a frame and all of its descendants require reflow.<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_HAS_DIRTY_CHILDREN&redirect=true NS_FRAME_HAS_DIRTY_CHILDREN]<br />
indicates that a frame has a descendant that<br />
is dirty or has had a descendant removed (i.e., that it has a child that<br />
has NS_FRAME_IS_DIRTY or NS_FRAME_HAS_DIRTY_CHILDREN or it had a child<br />
removed). These bits allow coalescing of multiple updates; this<br />
coalescing is done in PresShell, which tracks the set of reflow roots<br />
that require reflow. The bits are set during calls to<br />
[https://searchfox.org/mozilla-central/search?q=PresShell%3A%3AFrameNeedsReflow&path= PresShell::FrameNeedsReflow]<br />
and are cleared during reflow.<br />
<br />
The layout algorithms used by many of the frame classes are those<br />
specified in CSS, which are based on the traditional document formatting<br />
model, where widths are input and heights are output.<br />
<br />
In some cases, however, widths need to be determined based on the<br />
content. This depends on two ''intrinsic widths'': the minimum<br />
intrinsic width (see [https://searchfox.org/mozilla-central/search?q=nsIFrame%3A%3AGetMinISize&path= nsIFrame::GetMinISize]) and the preferred intrinsic<br />
width (see [https://searchfox.org/mozilla-central/search?q=nsIFrame%3A%3AGetPrefISize&path= nsIFrame::GetPrefISize]). The concept of what these widths<br />
represent is best explained by describing what they are on a paragraph<br />
containing only text: in such a paragraph the minimum intrinsic width<br />
is the width of the longest word, and the preferred intrinsic width is<br />
the width of the entire paragraph laid out on one line.<br />
<br />
Intrinsic widths are invalidated separately from the dirty bits<br />
described above. When a caller informs the pres shell that a frame<br />
needs reflow (PresShell::FrameNeedsReflow), it passes one of three<br />
options:<br />
* eResize indicates that no intrinsic widths are dirty<br />
* eTreeChange indicates that intrinsic widths on it and its ancestors are dirty (which happens, for example, if new children are added to it)<br />
* eStyleChange indicates that intrinsic widths on it, its ancestors, and its descendants are dirty (for example, if the font-size changes)<br />
<br />
Reflow is the area where the XUL frame classes (those that inherit from<br />
nsBoxFrame or nsLeafBoxFrame) are most different from the rest. Instead<br />
of using nsIFrame::Reflow, they do their layout computations using<br />
intrinsic size methods called GetMinSize, GetPrefSize, and GetMaxSize<br />
(which report intrinsic sizes in two dimensions) and a final layout<br />
method called Layout. In many cases these methods defer some of the<br />
computation to a separate object called a layout manager.<br />
<br />
When an individual frame's Reflow method is called, most of the input is<br />
provided on an object called ReflowInput and the output is filled<br />
in to an object called ReflowOutput. After reflow, the caller<br />
(usually the parent) is responsible for setting the frame's size based<br />
on the metrics reported. (This can make some computations during reflow<br />
difficult, since the new size is found in either the reflow state or the<br />
metrics, but the frame's size is still the old size. However, it's<br />
useful for invalidating the correct areas that need to be repainted.)<br />
<br />
One major difference worth noting is that in XUL layout, the size of the<br />
child is set prior to its parent calling its Layout method. (Once<br />
invalidation uses display lists and is no longer tangled up in Reflow,<br />
it may be worth switching non-XUL layout to work this way as well.)<br />
<br />
==== Painting ====<br />
<br />
TODO: display lists (and event handling)<br />
<br />
TODO: layers<br />
<br />
==== Pagination ====<br />
<br />
The concepts behind pagination (also known as fragmentation) are a bit complicated, so for now we've split them off into a separate document: [[Gecko:Continuation_Model]]. This code is used for printing, print-preview, and multicolumn frames.<br />
<br />
=== Dynamic change handling along the rendering pipeline ===<br />
<br />
The ability to make changes to the DOM from script is a major feature of the Web platform. Web authors rely on the concept (though there are a few exceptions, such as animations) that changing the DOM from script leads to the same rendering that would have resulted from starting from that DOM tree. They also rely on the performance characteristics of these changes: small changes to the DOM that have small effects should have proportionally small processing time. This means that Gecko needs to efficiently propagate changes from the content tree to style, the frame tree, the geometry of the frame tree, and the screen.<br />
<br />
For many types of changes, however, there is substantial overhead to processing a change, no matter how small. For example, reflow must propagate from the top of the frame tree down to the frames that are dirty, no matter how small the change. One very common way around this is to batch up changes. We batch up changes in lots of ways, for example:<br />
* The content sink adds multiple nodes to the DOM tree before notifying listeners that they've been added. This allows notifying once about an ancestor rather than for each of its descendants, or notifying about a group of descendants all at once, which speeds up the processing of those notifications.<br />
* We batch up nodes that require style reresolution (recomputation of selector matching and processing the resulting style changes). This batching is tree based, so it not only merges multiple notifications on the same element, but also merges a notification on an ancestor with a notification on its descendant (since ''some'' of these notifications imply that style reresolution is required on all descendants).<br />
* We wait to reconstruct frames that require reconstruction (after destroying frames eagerly). This, like the tree-based style reresolution batching, avoids duplication both for same-element notifications and ancestor-descendant notifications, even though it doesn't actually do any tree-based caching.<br />
* We postpone doing reflows until needed. As for style reresolution, this maintains tree-based dirty bits (see the description of NS_FRAME_IS_DIRTY and NS_FRAME_HAS_DIRTY_CHILDREN under Reflow).<br />
* We allow the OS to queue up multiple invalidates before repainting (though we will likely switch to controlling that ourselves). This leads to a single repaint of some set of pixels where there might otherwise have been multiple (though it may also lead to more pixels being repainted if multiple rectangles are merged to a single one).<br />
<br />
Having changes buffered up means, however, that various pieces of information (layout, style, etc.) may not be up-to-date. Some things require up-to-date information: for example, we don't want to expose the details of our buffering to Web page script since the programming model of Web page script assumes that DOM changes take effect "immediately", i.e., that the script shouldn't be able to detect any buffering. Many Web pages depend on this.<br />
<br />
We therefore have ways to flush these different sorts of buffers. There are methods called FlushPendingNotifications on nsIDocument and nsIPresShell, that take an argument of what things to flush:<br />
* Flush_Content: create all the content nodes from data buffered in the parser<br />
* Flush_ContentAndNotify: the above, plus notify document observers about the creation of all nodes created so far<br />
* Flush_Style: the above, plus make sure style data are up-to-date<br />
* Flush_Frames: the above, plus make sure all frame construction has happened (currently the same as Flush_Style)<br />
* Flush_InterruptibleLayout: the above, plus perform layout (Reflow), but allow interrupting layout if it takes too long<br />
* Flush_Layout: the above, plus ensure layout (Reflow) runs to completion<br />
* Flush_Display (should never be used): the above, plus ensure repainting happens<br />
<br />
The major way that notifications of changes propagate from the content code to layout and other areas of code is through the nsIDocumentObserver and nsIMutationObserver interfaces. Classes can implement this interface to listen to notifications of changes for an entire document or for a subtree of the content tree.<br />
<br />
WRITE ME: ... layout document observer implementations<br />
<br />
TODO: how style system optimizes away rerunning selector matching<br />
<br />
TODO: style changes and nsChangeHint<br />
<br />
=== Refresh driver ===<br />
<br />
== Graphics ==<br />
[https://wiki.mozilla.org/Platform/GFX Wiki page] | [https://wiki.mozilla.org/index.php?title=Platform/GFX/Contribute contribute]<br />
<br />
Further documentation:<br />
* Jargon: [https://wiki.mozilla.org/Platform/GFX/Jargon Helpful list] of terms used in Graphics<br />
* Talk: [https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E271782 2018 SF All-Hands Graphics Overview] (nical/mattwoodrow/gw) <br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bjacob-gfx-overview/ An overview of Gecko's graphics stack] (Benoit Jacob, 2014-08-12)<br />
* Talk: [https://air.mozilla.org/jeff-muizelaar-2d-graphics/ 2D Graphics] (Jeff Muizelaar, 2014-10-14)<br />
* Blog: Mozilla gfx blog's [https://mozillagfx.wordpress.com/category/technical/ "technical" tag].<br />
* Blog: WebRender/gfx [https://mozillagfx.wordpress.com/category/wr-newsletter/ newsletter].<br />
<br />
==== WebRender vs Layers ====<br />
Currently there are two different rendering paths in Gecko. The new one is WebRender.<br />
"Layers" is the name of the previous / non-webrender architecture. <br />
<br />
Here's a very high level summary of how it works: [https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/]<br />
<br />
From a high level architectural point of view, the main differences are:<br />
* Layers separate rendering into a painting phase and a compositing phase which usually happen in separate processes. For WebRender, on the other hand, all of the rendering happens in a single operation.<br />
* Layers internally expresses rendering rendering commands through a traditional canvas-like immediate mode abstraction (Moz2D) which has several backends (some of which use the GPU). WebRender works directly at a lower and GPU-centric level, dealing in terms of batches, draw calls and shaders.<br />
* Layers code is entirely C++, while WebRender is mostly Rust with some integration glue in C++.<br />
<br />
==== WebRender ====<br />
<br />
* WebRender's main entry point is a display list. It is a description of a visible subset of the page produced by the layout module.<br />
* WebRender and Gecko's display list representations are currently different so there is a translation between the two.<br />
* The WebRender display list is serialized on the content process and sent to the process that will do the rendering (either the main process or the GPU process).<br />
* The rendering process deserializes the display list and builds a "Scene".<br />
* From this scene, frames can be built. Frames represent the actual drawing operations that need to be performed for content to appear on screen. A single scene can produce several frames, for example if an element of the scene is scrolled.<br />
* The Renderer consumes the frame and produces actual OpenGL drawing commands. Currently WebRender is based on OpenGL and on Windows the OpenGL commands are transparently turned into D3D ones using ANGLE. In the long run we plan to work with a vulkan-like abstraction called gfx-rs.<br />
<br />
The main phases in WebRender are therefore:<br />
* Display list building<br />
* Scene building<br />
* frame building<br />
* GPU commands execution<br />
<br />
All of these phases are performed on different threads. The first two happen whenever the layout of the page changes or the user scrolls past the part of the page covered by the current scene. They don't necessarily happen at a high frequency. Frame building and GPU command execution, on the other hand, happen at a high frequency (the monitor's refresh rate during scrolling and animations), which means that they must fit in the frame budget (typically 16ms). In order to avoid going over the frame budget, frame building and GPU command execution can overlap. scene building and frame building can also overlap and it is possible to continue generating frames while a new scene is being built asynchronously.<br />
<br />
WebRender has a fallback mechanism called "Blob images" for content that it does not handle (for example some SVG drawing primitives). It consists in recording and serializing a list of drawing commands (the "blob") on the content process and sending it to WebRender along with the regular display list. Blobs are then turned into images on the CPU during the scene building phase. The most of WebRender treats blob images as regular images.<br />
<br />
Some important internal operations and data structures:<br />
* The clip-scroll tree (TODO)<br />
* The render task graph (TODO)<br />
* Culling: https://mozillagfx.wordpress.com/2018/11/08/webrender-culling/<br />
* Batching: https://mozillagfx.wordpress.com/2018/11/21/webrender-batching/<br />
* Picture-caching: https://mozillagfx.wordpress.com/2018/11/02/webrender-picture-caching/<br />
<br />
The WebRender code path reuses the layers IPC infrastructure for sharing textures between the content process and the renderer. For example The ImageBridge protocol described in the Compositing section is also used to transfer video frames when WebRender is enabled.<br />
Asynchronous Panning and Zooming (APZ) described in a later sections is also relevant to WebRender.<br />
<br />
==== Painting/Rasterizing (Layers aka Non-WebRender) ====<br />
<br />
[[File:Layers pipeline overview.png|650px|thumb|Layers pipeline overview]]<br />
<br />
Painting/rendering/rasterizing is the step where graphical primitives (such as a command to fill an [https://developer.mozilla.org/en-US/docs/Web/SVG SVG] circle, or the internally produced command to draw a rounded rectangle) are used to color in the pixels of a surface so that the surface "displays" those rasterized primitives.<br />
<br />
The platform independent library that gecko uses to render is [http://dxr.mozilla.org/mozilla-central/source/gfx/2d/2D.h Moz2D]. Gecko code paints into Moz2D DrawTarget objects (the DrawTarget base class having multiple platform dependent subclasses).<br />
<br />
==== Compositing ====<br />
<br />
The compositing stage of the rendering pipeline is operated by the [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ gfx/layers] module.<br />
<br />
Different parts of a web page can sometimes be painted into intermediate surfaces retained by layers. It can be convenient to think of layers as the layers in image manipulation programs like The Gimp or Photoshop. Layers are organized as a tree. Layers are primarily used to minimize invalidating and repainting when elements are being animated independently of one another in a way that can be optimized using layers (e.g. opacity or transform animations), and to enable some effects (such as transparency and 3D transforms).<br />
<br />
Compositing is the action of flattening the layers into the final image that is shown on the screen.<br />
<br />
We paint and composite on separate threads (it is called Off-main-thread compositing, or OMTC, and a long time ago Firefox did not have this separation).<br />
<br />
The Layers architecture is built on the following notions:<br />
* Compositor: an object that can draw quads on the screen (or on an off-screen render target).<br />
* Texture: an object that contains image data.<br />
* Compositable: an object that can manipulate one or several textures, and knows how to present them to the compositor<br />
* Layer: an element of the layer tree. A layer usually doesn't know much about compositing: it uses a compositable to do the work. Layers are mostly nodes of the layer tree.<br />
<br />
[[File:LayersRefactoring.png|thumb|650px|New layers architecture, with OGL backend]]<br />
<br />
Since painting and compositing are performed on different threads/processes, we need a mechanism to synchronize a client layer tree that is constructed on the content thread, and a host layer tree that is used for compositing on the compositor thread.<br />
This synchronization process must ensure that the host layer tree reflects the state of the current layer tree while remaining in a consistent state, and must transfer texture data from a thread to the other. Moreover, on some platforms the content and compositor threads may live in separate processes.<br />
<br />
To perform this synchronization, we use the IPDL IPC framework. IPDL lets us describe communications protocols and actors in a domain specific language. for more information about IPDL, read https://wiki.mozilla.org/IPDL<br />
<br />
When the client layer tree is modified, we record modifications into messages that are sent together to the host side within a transaction. A transaction is basically a list of modifications to the layer tree that have to be applied all at once to preserve consistency in the state of the host layer tree.<br />
<br />
Texture transfer is done by synchronizing texture objects across processes/threads using a couple TextureClient/TextureHost that wrap shared data and provide access to it on both sides. TextureHosts provide access to one or several TextureSource, which has the necessary API to actually composite the texture (TextureClient/Host being more about IPC synchronization than actual compositing.<br />
The logic behind texture transfer (as in single/double/triple buffering, texture tiling, etc) is operated by the CompositableClient and CompositableHost.<br />
<br />
It is important to understand the separation between layers and compositables. Compositables handle all the logic around texture transfer, while layers define the shape of the layer tree. a Compositable is created independently from a layer and attached to it on both sides. While layers transactions can only originate from the content thread, this separation makes it possible for us to have separate compositable transactions between any thread and the compositor thread. We use the ImageBridge IPDL protocol to that end. The Idea of ImageBridge is to create a Compositable that is manipulated on the ImageBridgeThread, and that can transfer/synchronize textures without using the content thread at all. This is very useful for smooth Video compositing: video frames are decoded and passed into the ImageBridge without ever touching the content thread, which could be busy processing reflows or heavy javascript workloads.<br />
<br />
It is worth reading the inline code documentation in the following files:<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Compositor.h gfx/layers/Compositor.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ShadowLayers.h gfx/layers/ShadowLayers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Layers.h gfx/layers/Layers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/host/TextureHost.h gfx/layers/host/TextureHost.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/CompositableClient.h gfx/layers/client/CompositableClient.h]<br />
<br />
To visualize how a web page is layered, turn on the pref "layers.draw-borders" in about:config. When this pref is on, the borders of layers and tiles are displayed on top of the content. This only works when using the Compositor API, that is when WebRender is disabled, since WebRender does not have the same concept of layers.<br />
<br />
Blog posts with information on Layers that should be integrated here:<br />
<br />
* [http://www.basschouten.com/blog1.php/layers-cross-platform-acceleration Layers: Cross-Platform Acceleration]<br />
* [http://robert.ocallahan.org/2010/04/layers_01.html Layers]<br />
* [http://robert.ocallahan.org/2010/07/retained-layers_16.html Retained Layers]<br />
* [http://chrislord.net/index.php/2011/07/25/shadow-layers-and-learning-by-failing/ Shadow Layers, and learning by failing]<br />
* [http://chrislord.net/index.php/2011/08/16/accelerated-layer-rendering-and-learning-by-some-success/ Accelerated layer-rendering, and learning by (some) success]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/mask-layers_26.html Mask Layers]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/building-mask-layer.html Building a mask layer]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/06/mask-layers-on-direct3d-backends.html Mask Layers on the Direct3D backends]<br />
* [http://robert.ocallahan.org/2011/09/graphics-api-design.html Graphics API Design]<br />
<br />
==== Async Panning and Zooming ====<br />
<br />
On some of our mobile platforms we have some code that allows the user to do asynchronous (i.e. off-main-thread) panning and zooming of content. This code is the Async Pan/Zoom module (APZ) code and is further documented at [[Platform/GFX/APZ]].<br />
<br />
== Scripting ==<br />
<br />
=== JavaScript Engine ===<br />
<br />
Gecko embeds the SpiderMonkey JavaScript engine (located in js/src). The JS engine includes a number of Just-In-Time compilers (or JITs). SpiderMonkey provides a powerful and extensive embedding API (called the JSAPI). Because of its complexity, using the JSAPI directly is frowned upon, and a number of abstractions have been built in Gecko to allow interacting with the JS engine without using JSAPI directly. Some JSAPI concepts are important for Gecko developers to understand, and they are listed below:<br />
<br />
* Global object: The '''global object''' is the object on which all global variables/properties/methods live. In a web page this is the 'window' object. In other things such as XPCOM components or sandboxes XPConnect creates a global object with a small number of builtin APIs.<br />
* Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment.<br />
* When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information).<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/kannan-vijayan-baseline-jit/ Baseline JIT] (Kannan Vijayan, 2014-10-14)<br />
<br />
=== XPConnect ===<br />
<br />
'''XPConnect''' is a bridge between C++ and JS used by XPCOM components exposed to or implemented in JavaScript. XPConnect allows two XPCOM components to talk to each other without knowing or caring which language they are implemented in. XPConnect allows JS code to call XPCOM components by exposing XPCOM interfaces as JS objects, and mapping function calls and attributes from JS into virtual method calls on the underlying C++ object. It also allows JS code to implement an XPCOM component that can be called from C++ by faking the vtable of an interface and translating calls on the interface into JS calls. XPConnect accomplishes this using the vtable data stored in XPCOM TypeLibs (or XPT files) by the XPIDL compiler and a small layer of platform specific code called [https://developer.mozilla.org/en-US/docs/xptcall_FAQ xptcall] that knows how to interact with and impersonate vtables of XPCOM interfaces.<br />
<br />
XPConnect is also used for a small (and decreasing) number of legacy DOM objects. At one time all of the DOM used XPConnect to talk to JS, but we have been replacing XPConnect with the WebIDL bindings (see the next section for more information). Arbitrary XPCOM components are not exposed to web content. XPCOM components that want to be accessible to web content must provide class info (that is, they must QI to nsIClassInfo) and must be marked with the nsIClassInfo::DOM_OBJECT flag. Most of these objects also are listed in dom/base/nsDOMClassInfo.cpp, where the interfaces that should be visible to the web are enumerated. This file also houses some "scriptable helpers" (classes ending in "SH" and implementing nsIXPCScriptable), which are a set of optional hooks that can be used by XPConnect objects to implement more exotic behaviors (such as indexed getters or setters, lazily resolved properties, etc). This is all legacy code, and any new DOM code should use the WebIDL bindings.<br />
<br />
=== WebIDL Bindings ===<br />
<br />
The '''WebIDL bindings''' are a separate bridge between C++ and JS that is specifically designed for use by DOM code. We intend to replace all uses of XPConnect to interface with content JavaScript with the WebIDL bindings. [https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings Extensive documentation] on the WebIDL bindings is available, but the basic idea is that a binding generator takes WebIDL files from web standards and some configuration data provided by us and generates at build time C++ glue code that sits between the JS engine and the DOM object. This setup allows us to produce faster, more specialized code for better performance at the cost of increased codesize.<br />
<br />
The WebIDL bindings also implement all of the behavior specified in WebIDL, making it possible for new additions to the DOM to behave correctly "out of the box". The binding layer also provides C++ abstractions for types that would otherwise require direct JSAPI calls to handle, such as typed arrays.<br />
<br />
=== Reflectors ===<br />
Whether using [https://wiki.mozilla.org/Gecko:Overview#XPConnect XPConnect] or [https://wiki.mozilla.org/Gecko:Overview#WebIDL_Bindings Web IDL], the basic idea is that there is a JSObject called a '''reflector''' that represents some C++ object. The JSObject ensures that the C++ object remains alive while the JSObject is alive. The C++ object does ''not'' necessarily keep the JSObject alive; this allows the JSObject to be garbage-collected as needed. If this happens, the next time JS needs access to that C++ object a new reflector is created. If something happens that requires that the actual object identity of the JSObject be preserved even though it's not explicitly reachable, the C++ object will start keeping the JSObject alive as well. After this point, the cycle collector would be the only way for the pair of objects to be deallocated. Examples of operations that require identity-preservation are adding a property to the object, giving the object a non-default prototype, using the object as a weakmap key or weakset member.<br />
<br />
In the XPConnect case, reflectors are created by XPCWrappedNative::GetNewOrUsed. This finds the right JSClass to use for the object, depending on information provided by the C++ object via the nsIClassInfo interface about special class hooks it might need. If the C++ object has no clasinfo, XPC_WN_NoHelper_JSClass is used. GetNewOrUsed also determines the right global to use for the reflector, again based on nsIClassInfo information, with a fallback to the JSContext's current global.<br />
<br />
In the Web IDL case, reflectors are created by the Wrap method that the binding code generator spits out for the relevant Web IDL interface. So for the Document interface, the relevant method is mozilla::dom::Document_Binding::Wrap. The JSClass that is used is also created by the code generator, as part of the DOMJSClass struct it outputs. Web IDL objects provide a GetParentObject() method that is used to determine the right global to use for the reflector.<br />
<br />
Web IDL objects typically inherit from nsWrapperCache, and use that class to store a pointer to their reflector and to keep it alive as needed. The only exception to that is if the Web IDL object only needs to find a reflector once during its lifetime, typically as a result of a Web IDL constructor being called from JS (see TextEncoder for an example). In that case, there is no need to get the JS object from the C++ one, and no way to end up in any of the situations that require preserving the JS object from the C++ side, so the Web IDL object is allowed to not inherit from nsWrapperCache.<br />
<br />
=== Security ===<br />
<br />
Gecko's JS security model is based on the concept of compartments. Every compartment has a '''principal''' associated with it that contains security information such as the '''origin''' of the compartment, whether or not it has system privileges, etc. For the following discussion, '''wrappee''' refers to the underlying object being wrapped, '''scope''' refers to the compartment the object is being wrapped for use in, and '''wrapper''' refers to the object created in '''scope''' that allows it to interact with '''wrappee'''. "Chrome" refers to JS that is built in to the browser or part of an extension, which runs with full privileges, and is contrasted with "content", which is web provided script that is subject to security restrictions and the same origin policy.<br />
<br />
* Xray wrappers: Xray wrappers are used when the scope has chrome privileges and the wrappee is the JS reflection of an underlying DOM object. Beyond the usual CCW duties of making sure that content code does not run with chrome privileges, Xray wrappers also ensure that calling methods or accessing attributes on the wrappee has the "expected" effect. For example, a web page could replace the <code>close</code> method on its window with a JS function that does something completely different. (e.g. <code>window.close = function() { alert("This isn't what you wanted!") };</code>). Overwriting methods in this way (or creating entirely new ones) is referred to as '''expando''' properties. Xrays see through expando properties, invoking the original method/getter/setter if the expando overwrites a builtin or seeing undefined in the expando creates a new property. This allows chrome code to call methods on content DOM objects without worrying about how the page has changed the object.<br />
* Waived xray wrappers: The xray behavior is not always desirable. It is possible for chrome to "waive" the xray behavior and see the actual JS object. The wrapper still guarantees that code runs with the correct privileges, but methods/getters/setters may not behave as expected. This is equivalent to the behavior chrome sees when it looks at non-DOM content JS objects.<br />
* For more information, see the [https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Script_security MDN page]<br />
* bholley's [https://air.mozilla.org/enter-the-compartment/ Enter the Compartment] talk also provides an overview of our compartment architecture.<br />
<br />
== Images ==<br />
<br />
== Plugins ==<br />
<br />
== Platform-specific layers ==<br />
<br />
* widget<br />
* native theme<br />
* files, networking, other low-level things<br />
* Accessibility APIs<br />
* Input. Touch-input stuff is somewhat described at [[Platform/Input/Touch]].<br />
<br />
== Editor ==<br />
<br />
== Base layers ==<br />
<br />
=== NSPR ===<br />
<br />
NSPR is a library for providing cross-platform APIs for various<br />
platform-specific functions. We tend to be trying to use it as little<br />
as possible, although there are a number of areas (particularly some<br />
network-related APIs and threading/locking primitives) where we use it<br />
quite a bit.<br />
<br />
=== XPCOM ===<br />
<br />
XPCOM is a cross-platform modularity library, modeled on Microsoft COM. It<br />
is an object system in which all objects inherit from the <code>nsISupports</code> interface.<br />
<br />
components and services, contract IDs and CIDs<br />
<br />
prior overuse of XPCOM; littering with XPCOM does not produce modularity<br />
<br />
Base headers (part of xpcom/base/) and data structures. See also mfbt.<br />
<br />
Threading<br />
<br />
xptcall, proxies<br />
<br />
reference counting, cycle collection<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]<br />
<br />
=== String ===<br />
<br />
XPCOM has string classes for representing sequences of characters. Typical C++ string classes have the goals of encapsulating the memory management of buffers and the issues needed to avoid buffer overruns common in traditional C string handling. Mozilla's string classes have these goals, and also the goal of reducing copying of strings.<br />
<br />
(There is a second set of string classes in xpcom/glue for callers outside of libxul; these classes are partially source-compatible but have different (worse) performance characteristics. This discussion does not cover those classes.)<br />
<br />
We have two parallel sets of classes, one for strings with 1-byte units (<code>char</code>, which may be signed or unsigned), and one for strings with 2-byte units (<code>char16_t</code>, always unsigned). The classes are named such that the class for 2-byte characters ends with <code>String</code> and the corresponding class for 1-byte characters ends with <code>CString</code>. 2-byte strings are almost always used to encode [http://en.wikipedia.org/wiki/UTF-16 UTF-16]. 1-byte strings are usually used to encode either [http://en.wikipedia.org/wiki/ASCII ASCII] or [http://en.wikipedia.org/wiki/UTF-8 UTF-8], but are sometimes also used to hold data in some other encoding or just byte sequences.<br />
<br />
The string classes distinguish, as part of the type hierarchy, between strings that must have a null-terminator at the end of their buffer (<code>ns[C]String</code>) and strings that are not required to have a null-terminator (<code>ns[C]Substring</code>). <code>ns[C]Substring</code> is the base of the string classes (since it imposes fewer requirements) and <code>ns[C]String</code> is a class derived from it. Functions taking strings as parameters should generally take one of these four types.<br />
<br />
In order to avoid unnecessary copying of string data (which can have significant performance cost), the string classes support different ownership models. All string classes support the following three ownership models dynamically:<br />
* reference counted, copy-on-write, buffers (the default)<br />
* adopted buffers (a buffer that the string class owns, but is not reference counted, because it came from somewhere else)<br />
* dependent buffers, that is, an underlying buffer that the string class does not own, but that the caller that constructed the string guarantees will outlive the string instance<br />
In addition, there is a special string class, <code>nsAuto[C]String</code>, that ''additionally'' contains an internal 64-unit buffer (intended primarily for use on the stack), leading to a fourth ownership model:<br />
* storage within an auto string's stack buffer<br />
Auto strings will prefer reference counting an existing reference-counted buffer over their stack buffer, but will otherwise use their stack buffer for anything that will fit in it.<br />
<br />
There are a number of additional string classes, particularly <code>nsDependent[C]String</code>, <code>nsDependent[C]Substring</code>, and the <code>NS_LITERAL_[C]STRING</code> macros which construct an <code>nsLiteral[C]String</code> which exist primarily as constructors for the other types. These types are really just convenient notation for constructing an <code>ns[C]S[ubs]tring</code> with a non-default ownership mode; they should not be thought of as different types. (The <code>Substring</code>, <code>StringHead</code>, and <code>StringTail</code> functions are also constructors for dependent [sub]strings.) Non-default ownership modes can also be set up using the <code>Rebind</code> and <code>Adopt</code> methods, although the <code>Rebind</code> methods actually live on the derived types, which is probably a mistake (although moving them up would require some care to avoid making an API that easily allows assigning a non-null-terminated buffer to a string whose static type indicates that it is null-terminated).<br />
<br />
Note that the presence of all of these classes imposes some awkwardness in terms of distinctions being available as both static type distinctions and dynamic type distinctions. In general, the only distinctions that should be made statically are 1-byte vs. 2-byte sequences (<code>CString</code> vs <code>String</code>) and whether the buffer is null-terminated or not (<code>Substring</code> vs <code>String</code>). (Does the code actually do a good job of dynamically enforcing the <code>Substring</code> vs. <code>String</code> restriction?)<br />
<br />
TODO: buffer growth, concatenation optimizations<br />
<br />
TODO: encoding conversion, what's validated and what isn't<br />
<br />
TODO: "string API", nsAString (historical)<br />
<br />
* Code: xpcom/string/<br />
* Bugzilla: Core::String<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]</div>Dholberthttps://wiki.mozilla.org/index.php?title=Gecko:Overview&diff=1240905Gecko:Overview2022-03-01T18:39:36Z<p>Dholbert: /* Reflow */ fix out-of-date reference to nsIPresShell interface</p>
<hr />
<div>This document attempts to give an overview of the different parts of<br />
Gecko, what they do, and why they do it, say where the code for them is<br />
within the repository, and link to more specific documentation (when<br />
available) covering the details of that code. '''It is not yet complete.''' Maintainers of these<br />
areas of code should correct errors, add information, and add links to<br />
more detailed documentation (since this document is intended to remain<br />
an overview, not complete documentation).<br />
<br />
__TOC__<br />
<br />
== Browsers, Frames, and Document Navigation ==<br />
<br />
=== Docshell ===<br />
<br />
The user of a Web browser can change the page shown in that browser in<br />
many ways: by clicking a link, loading a new URL, using the forward and<br />
back buttons, or other ways. This can happen inside a space we'll call<br />
a '''browsing context'''; this space can be a browser window, a tab, or a frame<br />
or iframe within a document. The toplevel data structures within Gecko<br />
represent this browsing context; they contain other data structures<br />
representing the individual pages displayed inside of it (most<br />
importantly, the current one). In terms of implementation, these two<br />
types of navigation, the top level of a browser and the frames within<br />
it, largely use the same data structures.<br />
<br />
In Gecko, the '''docshell''' is the toplevel object responsible for<br />
managing a single browsing context. It, and the associated '''session history''' code, <br />
manage the navigation between pages inside of a<br />
docshell. (Note the difference between session history, which is a<br />
sequence of pages in a single browser session, used for recording information<br />
for back and forward navigation, and global history, which is the<br />
history of pages visited and associated times, regardless of browser<br />
session, used for things like link coloring and address autocompletion.)<br />
<br />
There are relatively few objects in Gecko that are associated with a<br />
docshell rather than being associated with a particular one of the pages<br />
inside of it. Most such objects are attached to the docshell. An important object associated with the docshell is the nsGlobalWindowOuter which is what the HTML5 spec refers to as a WindowProxy (into which Window objects, as implemented by nsGlobalWindowInner, are loaded). See the DOM section below for more information on<br />
this.<br />
<br />
The most toplevel object for managing the contents of a particular page<br />
being displayed within a docshell is a document viewer (see layout).<br />
Other important objects associated with this presentation are the<br />
document (see DOM) and the pres(entation) shell and pres(entation)<br />
context (see layout).<br />
<br />
[[File:WebNavigation.png|thumb|400px|<xul:browser>, frameloader and docshell in single process configuration]]<br />
<br />
Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In Gecko, a browsing context container would implement <code>[https://dxr.mozilla.org/mozilla-central/rev/f9a5e9ed62103c84e4cde915f4d08f1ce71be83e/dom/base/nsIFrameLoader.idl#271 nsIFrameLoaderOwner]</code> to hold a '''frameloader''', which holds and manages the docshell. <br />
<br />
One of the most interfaces docshell implemented is <code>[https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl nsIWebNavigation]</code>. It defines major functions of a browsing context, such as <code>loadURI</code> / <code>goBack</code> / <code>goForward</code> and <code>reload</code>. In single process configuration of desktop Firefox, <code><xul:browser></code> (which represents a tab) operates on docshell through <code>nsIWebNavigation</code>, as shown in the right figure.<br />
<br />
* code: mozilla/docshell/<br />
* bugzilla: Core::Document Navigation<br />
* documentation: [[DocShell:Home Page]]<br />
<br />
=== Session History ===<br />
<br />
In order to keep the session history of subframes after the root document is unloaded and docshells of subframes are destroyed, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change).<br />
<br />
As an example to explain the structure of session history implementation in Gecko, consider there's a tab A, which loads document 1; in document 1, there are iframe B & C, which loads document 2 & 3, respectively. Later, an user navigates iframe B to document 4. The following figures show the conceptual model of the example, and the corresponding session history structure.<br />
<br />
{| <br />
| [[File:BrowsingContextExample1.png|thumb|190px|Conceptual model representation; color denotes current visible active documents]]<br />
| [[File:SHistoryExample1.png|thumb|180px|Session history structure; color denotes current transaction / entries]]<br />
|}<br />
<br />
In Gecko, a [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHistory.h session history] object holds a list of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHTransaction.h transactions] (denoted as T1 & T2 in the figure); each transaction points to a tree of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHEntry.h entries]; each entry records the docshell it associated to, and a URL. Now that if we navigate the tab to a different root document 5, which includes an iframe D with document 6, then it becomes:<br />
<br />
{| <br />
| [[File:BrowsingContextExample2.png|thumb|275px|Conceptual model representation]]<br />
| [[File:SHistoryExample2.png|thumb|250px|Session history structure]]<br />
|}<br />
<br />
=== Embedding ===<br />
<br />
To be written (and maybe rewritten if we get an IPC embedding API).<br />
<br />
[[File:WebNavigationE10S.png|thumb|500px|<xul:remote-browser>, frameloader and docshell in multiprocess configuration. The horizontal dash-lines represent inter-process communication]]<br />
<br />
=== Multi-process and IPC ===<br />
<br />
In a multi-process desktop Firefox, a tab is managed by <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/remote-browser.xml <xul:remote-browser>]</code>. It still operates on nsIWebNavigation, but in this case the docshell is in a remote process and can not be accessed directly. The encapsulation of remote nsIWebNavigation is done by the javascript-implemented <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/components/remotebrowserutils/RemoteWebNavigation.js RemoteWebNavigation]</code>.<br />
<br />
In this configuration, the frameloader of a root docshell lives in parent process, so it can not access docshell directly either. Instead, it holds a <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]</code> instance to interact with <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]</code> in child-process. At C/C++ level, the communication across processes for a single tab is through the '''PBrowser''' IPC protocol implemented by TabParent and TabChild, while at the javascript level it's done by '''message manager''' (which is ontop of PBrowser). RemoteWebNavigation, for example, sends messages to <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/browser-child.js browser-child.js]</code> in content process through message manager.<br />
<br />
== Networking ==<br />
<br />
The network library Gecko uses is called Necko. Necko APIs are largely organized around three concepts: '''URI objects''', '''protocol handlers''', and '''channels'''.<br />
<br />
=== Protocol handlers ===<br />
A '''protocol handler''' is an XPCOM service associated with a particular URI scheme or network protocol. Necko includes protocol handlers for HTTP, FTP, the data: URI scheme, and various others. Extensions can implement protocol handlers of their own.<br />
<br />
A protocol handler implements the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl nsIProtocolHandler]</code> API, which serves three primary purposes:<br />
# Providing metadata about the protocol (its security characteristics, whether it requires actual network access, what the corresponding URI scheme is, what TCP port the protocol uses by default).<br />
# Creating URI objects for the protocol's scheme.<br />
# Creating channel objects for the protocol's URI objects<br />
<br />
Typically, the built-in I/O service (<code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService2.idl nsIIOService]</code>) is responsible for finding the right protocol handler for URI object creation and channel creation, while a variety of consumers queries protocol metadata. Querying protocol metadata is the recommended way to handle any sort of code that needs to have different behavior for different URI schemes. In particular, unlike whitelists or blacklists, it correctly handles the addition of new protocols.<br />
<br />
A service can register itself as a protocol handler by registering for the contract ID <code>"@mozilla.org/network/protocol;1?name=SSSSS"</code> where <code>SSSS</code> is the URI scheme for the protocol (e.g. "http", "ftp", and so forth).<br />
<br />
=== URI objects ===<br />
URI objects, which implement the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURI.idl nsIURI]</code> API, are a way of representing URIs and IRIs. Their main advantage over strings is that they do basic syntax checking and canonicalization on the URI string that they're provided with. They also provide various accessors to extract particular parts of the URI and provide URI equality comparisons. URIs that correspond to hierarchical schemes implement the additional <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURL.idl nsIURL]</code> interface, which exposes even more accessors for breaking out parts of the URI.<br />
<br />
URI objects are typically created by calling the <code>newURI</code> method on the I/O service, or in C++ by calling the <code>NS_NewURI</code> utility function. This makes sure to create the URI object using the right protocol handler, which ensures that the right kind of object is created. Direct creation of URIs via <code>createInstance</code> is reserved for protocol handler implementations.<br />
<br />
=== Channels ===<br />
[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIChannel.idl Channels] are the Necko representation of a single request/response interaction with a server. A channel is created by calling the <code>newChannel</code> method on the [https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService.idl I/O service], or in C++ by calling the <code>[https://dxr.mozilla.org/mozilla-central/search?q=function%3ANS_NewChannel&case=true NS_NewChannel]</code> utility function. The channel can then be configured as needed, and finally its <code>asyncOpen</code> method can be called. This method takes an <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl nsIStreamListener]</code> as an argument.<br />
<br />
If <code>asyncOpen</code> has returned successfully, the channel guarantees that it will asynchronously call the <code>onStartRequest</code> and <code>onStopRequest</code> methods on its stream listener. This will happen even if there are network errors that prevent Necko from actually performing the requests. Such errors will be reported in the channel's status and in the <code>status</code> argument to <code>onStopRequest</code>.<br />
<br />
If the channel ends up being able to provide data, it will make one or more <code>onDataAvailable</code> on its listener after calling <code>onStartRequest</code> and before calling <code>onStopRequest</code>. For each call, the listener is responsible for either returning an error or reading the entire data stream passed in to the call.<br />
<br />
If an error is returned from either <code>onStartRequest</code> or <code>onDataAvailable</code>, the channel must act as if it has been canceled with the corresponding error code.<br />
<br />
A channel has two URI objects associated with it. The <code>originalURI</code> of the channel is the URI that was originally passed to <code>newChannel</code> to create the channel that then had <code>asyncOpen</code> called on it. The <code>URI</code> is the URI from which the channel is reading data. These can be different in various cases involving protocol handlers that forward network access to other protocol handlers, as well as in situations in which a redirect occurs (e.g. following an HTTP 3xx response). In redirect situations, a new channel object will be created, but the originalURI will be propagated from the old channel to the new channel.<br />
<br />
Note that the <code>nsIRequest</code> that's passed to onStartRequest must match the one passed to onDataAvailable and onStopRequest, but need not be the original channel that asyncOpen was called on. In particular, when an HTTP redirect happens the request argument to the callbacks will be the post-redirect channel.<br />
<br />
TODO: crypto?<br />
<br />
== Document rendering pipeline ==<br />
<br />
Some of the major components of Gecko can be described as steps on the<br />
path from an HTML document coming in from the network to the graphics<br />
commands needed to render that document. An HTML document is a<br />
serialization of a tree structure. (FIXME: add diagram) The HTML<br />
parser and content sink create an in-memory representation of this tree,<br />
which we call the '''DOM tree''' or '''content tree'''.<br />
Many JavaScript APIs operate on the content tree. Then, in<br />
layout, we create a second tree, the '''frame tree''' (or<br />
'''rendering tree''') that is a similar shape to the content tree,<br />
but where each node in the tree represents a rectangle (except in SVG<br />
where they represent other shapes). We then compute the positions of<br />
the nodes in the frame tree (called '''frames''') and paint them<br />
using our cross-platform graphics APIs (which, underneath, map to<br />
platform-specific graphics APIs).<br />
<br />
Further documentation:<br />
* Talk: Fast CSS: How Browsers Lay Out Web Pages (David Baron, 2012-03-11): [https://dbaron.org/talks/2012-03-11-sxsw/slide-1.xhtml slideshow], [https://dbaron.org/talks/2012-03-11-sxsw/master.xhtml all slides], [http://audio.sxsw.com/2012/podcasts/11-ACC-Fast_CSS_How_Browser_Layout.mp3 audio (MP3)], [https://schedule.sxsw.com/2012/events/event_IAP12909 session page]<br />
* Talk: Efficient CSS Animations (an updated version of the previous talk with a slightly different focus) (David Baron, 2014-06-04): [https://dbaron.org/talks/2014-06-04-cssday/slide-1.xhtml slideshow], [https://dbaron.org/talks/2014-06-04-cssday/master.xhtml all slides], [http://vimeo.com/channels/cssday/103108124 video]<br />
* Talk: [https://air.mozilla.org/benoit-girard-gecko-rendering/ Overview of the Gecko Rendering Pipeline] (Benoit Girard, 2014-10-14)<br />
<br />
=== Parser ===<br />
<br />
The parser's job is to transform a character stream into a tree<br />
structure, with the help of the content sink classes.<br />
<br />
HTML is parsed using a parser implementing the parsing algorithm in the<br />
HTML specification (starting with HTML5). Much of this parser is<br />
translated from Java, and changes are made to the Java version. This<br />
parser in parser/html/. The parser is driven by the output of the networking layer (see nsHtml5StreamParser::OnDataAvailable). The HTML5 parser is capable of parsing off the main thread which is the normal case. It also parses on the main thread to be able to synchronously handle things such as innerHTML modifications.<br />
<br />
The codebase still has the previous generation HTML parser, which is<br />
still used for a small number of things, though we hope to be able to<br />
remove it entirely soon. This parser is in parser/htmlparser/.<br />
<br />
XML is parsed using the expat library (parser/expat/) and code that<br />
wraps it (parser/xml/). This is a non-validating parser; however, it<br />
loads certain DTDs to support XUL localization.<br />
<br />
=== DOM / Content ===<br />
<br />
The content tree or DOM tree is the central data structure for Web<br />
pages. It is a tree structure, initially created from the tree<br />
structure expressed in the HTML or XML markup. The nodes in the tree<br />
implement major parts of the DOM (Document Object Model) specifications.<br />
The nodes themselves are part of a class hierarchy rooted at<br />
<code>nsINode</code>; different derived classes are used for things such<br />
as text nodes, the document itself, HTML elements, SVG elements, etc.,<br />
with further subclasses of many of these types (e.g., for specific HTML<br />
elements). Many of the APIs available to script running in Web pages<br />
are associated with these nodes. The tree structure persists while the<br />
Web pages is displayed, since it stores much of state associated with<br />
the Web page. The code for these nodes lives in the content/ directory.<br />
<br />
The DOM APIs are not threadsafe. DOM nodes can be accessed only from<br />
the main thread (also known as the UI thread (user interface thread)) of<br />
the application.<br />
<br />
There are also many other APIs available to Web pages that are not APIs<br />
on the nodes in the DOM tree. Many of these other APIs also live in the<br />
same directories, though some live in content/ and some in dom/. These<br />
include APIs such as the DOM event model.<br />
<br />
The dom/ directory also includes some of the code needed to expose Web<br />
APIs to JavaScript (in other words, the glue code between JavaScript and<br />
these APIs). For an overview, see [https://ask.mozilla.org/question/390/how-is-the-web-exposed-dom-implemented/ DOM API Implementation]. See [[#Scripting|Scripting]] below for details of the JS engine.<br />
<br />
TODO: Internal APIs vs. DOM APIs.<br />
<br />
TODO: Mutation observers / document observers.<br />
<br />
TODO: Reference counting and cycle collection.<br />
<br />
TODO: specification links<br />
<br />
=== Style System ===<br />
<br />
==== Quantum CSS (Stylo) ====<br />
<br />
Starting with Firefox 57 and later, Gecko makes use of the parallel style system written in Rust that comes from Servo. There's an [https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/ overview] of this with graphics to help explain what's going on. The [https://github.com/servo/servo/wiki/Layout-Overview Servo wiki] has some more details.<br />
<br />
==== Gecko ====<br />
<br />
The rest of the style section section describes the Gecko style system used in Firefox 56 and earlier. Some bits may still apply, but it likely needs revising.<br />
<br />
In order to display the content, Gecko needs to compute the styles<br />
relevant to each DOM node. It does this based on the model described in<br />
the CSS specifications: this model applies to style specified in CSS<br />
(e.g. by a 'style' element, an 'xml-stylesheet' processing instruction<br />
or a 'style' attribute),<br />
style specified by presentation attributes, and the default style<br />
specified by our own user agent style sheets. There are two major<br />
sets of data structures within the style system:<br />
* first, data structures that represent sources of style data, such as CSS style sheets or data from stylistic HTML attributes<br />
* second, data structures that represent computed style for a given DOM node.<br />
These sets of data structures are mostly distinct (for example, they<br />
store values in different ways).<br />
<br />
The loading of CSS style sheets from the network is managed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/Loader.h CSS loader]; <br />
they are then tokenized by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSScanner.h CSS scanner] <br />
and parsed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSParser.h CSS parser]. <br />
Those that are attached to the document also expose APIs to<br />
script that are known as the CSS Object Model, or CSSOM.<br />
<br />
The style sheets that apply to a document are managed by a class called<br />
the [https://dxr.mozilla.org/mozilla-central/source/layout/style/nsStyleSet.h style set].<br />
The style set interacts with the different types of<br />
style sheets (representing CSS style sheets, presentational<br />
attributes, and 'style' attributes) through two interfaces:<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleSheet.h nsIStyleSheet] for basic management of style sheets and<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRuleProcessor.h nsIStyleRuleProcessor] for getting the style data out of them. Usually<br />
the same object implements both interfaces, except in the most important<br />
case, CSS style sheets, where there is a single rule processor for all<br />
of the CSS style sheets in each origin (user/UA/author) of the CSS cascade.<br />
<br />
The computed style data for an element/frame are exposed to the rest of<br />
Gecko through the class mozilla::ComputedStyle (previously called<br />
nsStyleContext). Rather than having a member variable for each<br />
CSS property, it breaks up the properties into groups of related<br />
properties called style structs. These style structs obey the rule that<br />
all of the properties in a single struct either inherit by default (what<br />
the CSS specifications call "Inherited: yes" in the definition of<br />
properties; we call these inherited structs) or all are not inherited by<br />
default (we call these reset structs). Separating the properties in<br />
this way improves the ability to share the structs between similar<br />
ComputedStyle objects and reduce the amount of memory needed to store<br />
the style data. The ComputedStyle API exposes a method for getting each<br />
struct, so you'll see code like<br />
<code>sc->GetStyleText()->mTextAlign</code> for getting the value of the<br />
text-align CSS property. (Frames (see the Layout section below) also<br />
have the same<br />
GetStyle* methods, which just forward the call to the frame's<br />
ComputedStyle.)<br />
<br />
The ComputedStyles form a tree structure, in a shape somewhat like the<br />
content tree (except that we coalesce identical sibling ComputedStyles<br />
rather than keeping two of them around; if the parents have been<br />
coalesced then this can apply recursively and coalasce cousins, etc.;<br />
we do not coalesce parent/child ComputedStyles).<br />
The parent of a ComputedStyle has the style data that the ComputedStyle<br />
inherits from when CSS inheritance occurs. This means that the parent<br />
of the ComputedStyle for a DOM element is generally the ComputedStyle<br />
for that DOM element's parent, since that's how CSS says inheritance<br />
works.<br />
<br />
The process of turning the style sheets into computed style data goes<br />
through three main steps, the first two of which closely relate to the<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRule.h nsIStyleRule] interface, which represents an immutable source of style<br />
data, conceptually representing (and for CSS style rules, directly<br />
storing) a set of property:value pairs. (It is similar to the idea of a<br />
CSS style rule, except that it is immutable; this immutability allows<br />
for significant optimization. When a CSS style rule is changed through<br />
script, we create a new style rule.)<br />
<br />
The first step of going from style sheets to computed style data is<br />
finding the ordered sequence of style rules that apply to an element.<br />
The order represents which rules override which other rules: if two<br />
rules have a value for the same property, the higher ranking one wins.<br />
(Note that there's another difference from CSS style rules: declarations<br />
with !important are represented using a separate style rule.) This is<br />
done by calling one of the nsIStyleRuleProcessor::RulesMatching methods.<br />
The ordered sequence is stored in a<br />
[http://en.wikipedia.org/wiki/Trie trie] called the rule tree: the path<br />
from the root of the rule tree to any (leaf or non-leaf) node in the<br />
rule tree represents a sequence of rules, with the highest ranking<br />
farthest from the root. Each rule node (except for the root) has a<br />
pointer to a rule, but since a rule may appear in many sequences, there<br />
are sometimes many rule nodes pointing to the same rule. Once we have<br />
this list we create a ComputedStyle (or find an appropriate existing<br />
sibling) with the correct parent pointer (for inheritance) and rule node<br />
pointer (for the list of rules), and a few other pieces of information<br />
(like the pseudo-element).<br />
<br />
The second step of going from style sheets to computed style data is<br />
getting the winning property:value pairs from the rules. (This only<br />
provides property:value pairs for some of the properties; the remaining<br />
properties will fall back to inheritance or to their initial values<br />
depending on whether the property is inherited by default.) We do this<br />
step (and the third) for each style struct, the first time it is needed.<br />
This is done in nsRuleNode::WalkRuleTree, where we ask each style rule<br />
to fill in its property:value pairs by calling its MapRuleInfoInto<br />
function. When called, the rule fills in only those pairs that haven't<br />
been filled in already, since we're calling from the highest priority<br />
rule to the lowest (since in many cases this allows us to stop before<br />
going through the whole list, or to do partial computation that just<br />
adds to data cached higher in the rule tree).<br />
<br />
The third step of going from style sheets to computed style data (which<br />
various caching optimizations allow us to skip in many cases) is<br />
actually doing the computation; this generally means we transform the<br />
style data into the data type described in the "Computed Value" line in<br />
the property's definition in the CSS specifications. This<br />
transformation happens in functions called nsRuleNode::Compute*Data,<br />
where the * in the middle represents the name of the style struct. This<br />
is where the transformation from the style sheet value storage format to<br />
the computed value storage format happens.<br />
<br />
Once we have the computed style data, we then store it: if a style struct<br />
in the computed style data doesn't<br />
depend on inherited values or on data from other style structs, then we<br />
can cache it in the rule tree (and then reuse it, without recomputing<br />
it, for any ComputedStyles pointing to that rule node). Otherwise, we<br />
store it on the ComputedStyle (in which case it may be shared<br />
with the ComputedStyle's descendant ComputedStyles).<br />
This is where keeping inherited and<br />
non-inherited properties separate is useful: in the common case of<br />
relatively few properties being specified, we can generally cache the<br />
non-inherited structs in the rule tree, and we can generally share the<br />
inherited structs up and down the ComputedStyle tree.<br />
<br />
The ownership models in style sheet structures are a mix of reference<br />
counted structures (for things accessible from script) and directly<br />
owned structures. ComputedStyles are reference counted, and own their<br />
parents (from which they inherit), and rule nodes are garbage collected<br />
with a simple mark and sweep collector (which often never needs to run).<br />
<br />
* code: [http://dxr.mozilla.org/mozilla-central/source/layout/style/ layout/style/], where most files have useful one line descriptions at the top that show up in DXR<br />
* Bugzilla: Style System (CSS)<br />
* specifications<br />
** [http://www.w3.org/TR/CSS21/ CSS 2.1]<br />
** [http://www.w3.org/TR/css-2010/ CSS 2010, listing stable css3 modules]<br />
** [http://dev.w3.org/csswg/ CSS WG editors drafts] (often more current, but sometimes more unstable than the drafts on the technical reports page)<br />
** [http://dbaron.org/mozilla/visited-privacy Preventing attacks on a user's history through CSS :visited selectors]<br />
* documentation<br />
** [http://www-archive.mozilla.org/newlayout/doc/style-system.html style system documentation] (somewhat out of date)<br />
<br />
=== Layout ===<br />
<br />
Much of the layout code deals with operations on the frame tree (or<br />
rendering tree). In the frame tree, each node represents a rectangle<br />
(or, for SVG, other shapes). The frame tree has a shape similar to the<br />
content tree, since many content nodes have one corresponding frame,<br />
though it differs in a few ways, since some content nodes have more than<br />
one frame or don't have any frames at all. When elements are<br />
display:none in CSS or undisplayed for certain other reasons, they won't<br />
have any frames. When elements are broken across lines or pages, they<br />
have multiple frames; elements may also have multiple frames when<br />
multiple frames nested inside each other are needed to display a single<br />
element (for example, a table, a table cell, or many types of form<br />
controls).<br />
<br />
Each node in the frame tree is an instance of a class derived from<br />
<code>nsIFrame</code>. As with the content tree, there is a substantial<br />
type hierarchy, but the type hierarchy is very different: it includes<br />
types like text frames, blocks and inlines, the various parts of tables,<br />
flex and grid containers, and the various types of HTML form controls.<br />
<br />
Frames are allocated within an arena owned by the PresShell. Each<br />
frame is owned by its parent; frames are not reference counted, and code<br />
must not hold on to pointers to frames. To mitigate potential security<br />
bugs when pointers to destroyed frames, we use<br />
[http://robert.ocallahan.org/2010/10/mitigating-dangling-pointer-bugs-using_15.html frame poisoning], which takes two parts. When a frame is destroyed<br />
other than at the end of life of the presentation, we fill its memory<br />
with a pattern consisting of a repeated pointer to inaccessible memory,<br />
and then put the memory on a per-frame-class freelist. This means that<br />
if code accesses the memory through a dangling pointer, it will either<br />
crash quickly by dereferencing the poison pattern or it will find a<br />
valid frame.<br />
<br />
Like the content tree, frames must be accessed only from the UI thread.<br />
<br />
The frame tree should not store any important data, i.e. any data that cannot<br />
be recomputed on-the-fly. While the frame tree does<br />
usually persist while a page is being displayed, frames are often<br />
destroyed and recreated in response to certain style changes, and in the<br />
future we may do the same to reduce memory use for pages that are<br />
currently inactive. There were a number of cases where this rule was<br />
violated in the past and we stored important data in the frame tree;<br />
however, most (though not quite all) such cases are now fixed.<br />
<br />
The rectangle represented by the frame is what CSS calls the element's<br />
border box. This is the outside edge of the border (or the inside edge<br />
of the margin). The margin lives outside the border; and the padding<br />
lives inside the border. In addition to nsIFrame::GetRect, we also have<br />
the APIs nsIFrame::GetPaddingRect to get the padding box (the outside<br />
edge of the padding, or inside edge of the border) and<br />
nsIFrame::GetContentRect to get the content box (the outside edge of the<br />
content, or inside edge of the padding). These APIs may produce out of<br />
date results when reflow is needed (or has not yet occurred).<br />
<br />
In addition to tracking a rectangle, frames also track two overflow<br />
areas: ink overflow and scrollable overflow. These overflow areas<br />
represent the union of the area needed by the frame and by all its<br />
descendants. The ink overflow is used for painting-related<br />
optimizations: it is a rectangle covering all of the area that might be<br />
painted when the frame and all of its descendants paint. The scrollable<br />
overflow represents the area that the user should be able to scroll to<br />
to see the frame and all of its descendants. In some cases differences<br />
between the frame's rect and its overflow happen because of descendants<br />
that stick out of the frame; in other cases they occur because of some<br />
characteristic of the frame itself. The two overflow areas are<br />
similar, but there are differences: for example, margins are part of<br />
scrollable overflow but not ink overflow, whereas text-shadows are<br />
part of ink overflow but not scrollable overflow.<br />
<br />
When frames are broken across lines, columns, or pages, we create<br />
multiple frames representing the multiple rectangles of the element.<br />
The first one is the primary frame, and the rest are its continuations<br />
(which are more likely to be destroyed and recreated during reflow).<br />
These frames are linked together as continuations: they have a<br />
doubly-linked list that can be used to traverse the continuations using<br />
nsIFrame::GetPrevContinuation and nsIFrame::GetNextContinuation.<br />
(Currently continuations always have the same style data, though we may<br />
at some point want to break that invariant.)<br />
<br />
Continuations are sometimes siblings of each other (i.e.<br />
nsIFrame::GetNextContinuation and nsIFrame::GetNextSibling might return<br />
the same frame), and sometimes not.<br />
For example, if a paragraph contains a span which contains a link, and<br />
the link is split across lines, then the continuations of the span are<br />
siblings (since they are both children of the paragraph), but the<br />
continuations of the link are not siblings (since each continuation of<br />
the link is descended from a different continuation of the span).<br />
Traversing the entire frame tree does '''not''' require explicit traversal<br />
of any frames' continuations-list, since all of the continuations are<br />
descendants of the element containing the break.<br />
<br />
We also use continuations for cases (most importantly, bidi reordering,<br />
where left-to-right text and right-to-left text need to be separated<br />
into different continuations since they may not form a contiguous<br />
rectangle) where the continuations should not be rewrapped during<br />
reflow: we call these continuations fixed rather than fluid.<br />
nsIFrame::GetNextInFlow and nsIFrame::GetPrevInFlow traverse only the<br />
fluid continuations and do not cross fixed continuation boundaries.<br />
<br />
If an inline frame has non-inline children, then we split the original <br />
inline frame into parts. The original inline's children are <br />
distributed into these parts like so: The children of the original <br />
inline are grouped into runs of inline and non-inline, and runs of <br />
inline get an inline parent, while runs of non-inline get an anonymous <br />
block parent. We call this 'ib-splitting' or 'block-inside-inline splitting'. <br />
This splitting proceeds recursively up the frame tree until all <br />
non-inlines inside inlines are ancestors of a block frame with anonymous <br />
block wrappers in between. This splitting maintains the relative order<br />
between these child frames, and the relationship between the parts of a <br />
split inline is maintained using an ib-sibling chain. It is important <br />
to note that any wrappers created during frame construction (such as <br />
for tables) might not be included in the ib-sibling chain depending on <br />
when this wrapper creation takes place. <br />
<br />
TODO: nsBox craziness from https://bugzilla.mozilla.org/show_bug.cgi?id=524925#c64<br />
<br />
TODO: link to documentation of block and inline layout<br />
<br />
TODO: link to documentation of scrollframes<br />
<br />
TODO: link to documentation of XUL frame classes<br />
<br />
Code (note that most files in base and generic have useful one line descriptions at the top that show up in DXR):<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/base/ layout/base/] contains objects that coordinate everything and a bunch of other miscellaneous things<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/generic/ layout/generic/] contains the basic frame classes as well as support code for their reflow methods (ReflowInput, ReflowOutput)<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/forms/ layout/forms/] contains frame classes for HTML form controls<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/tables/ layout/tables/] contains frame classes for CSS/HTML tables<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/mathml/ layout/mathml/] contains frame classes for MathML<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/svg/ layout/svg/] contains frame classes for SVG<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/xul/ layout/xul/] contains frame classes for the XUL box model and for various XUL widgets<br />
<br />
Bugzilla:<br />
* All of the components whose names begin with "Layout" in the "Core" product<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bz-layout-and-styles/ Layout and Styles] (Boris Zbarsky, 2014-10-14)<br />
<br />
<br />
==== Frame Construction ====<br />
<br />
Frame construction is the process of creating frames. This is done when styles change in ways that require frames to be created or recreated or when nodes are inserted into the document. The content tree and the frame tree don't have quite the same shape, and the frame construction process does some of the work of creating the right shape for the frame tree. It handles the aspects of creating the right shape that don't depend on layout information. So for example, frame construction handles the work needed to implement [http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes table anonymous objects] but does not handle frames that need to be created when an element is broken across lines or pages.<br />
<br />
The basic unit of frame construction is a run of contiguous children of a single parent element. When asked to construct frames for such a run of children, the frame constructor first determines, based on the siblings and parent of the nodes involved, where in the frame tree the new frames should be inserted. Then the frame constructor walks through the list of content nodes involved and for each one creates a temporary data structure called a '''frame construction item'''. The frame construction item encapsulates various information needed to create the frames for the content node: its style data, some metadata about how one would create a frame for this node based on its namespace, tag name, and styles, and some data about what sort of frame will be created. This list of frame construction items is then analyzed to see whether constructing frames based on it and inserting them at the chosen insertion point will produce a valid frame tree. If it will not, the frame constructor either fixes up the list of frame construction items so that the resulting frame tree would be valid or throws away the list of frame construction items and requests the destruction and re-creation of the frame for the parent element so that it has a chance to create a list of frame construction items that it <em>can</em> fix up.<br />
<br />
Once the frame constructor has a list of frame construction items and an insertion point that would lead to a valid frame tree, it goes ahead and creates frames based on those items. Creation of a non-leaf frame recursively attempts to create frames for the children of that frame's element, so in effect frames are created in a depth-first traversal of the content tree.<br />
<br />
The vast majority of the code in the frame constructor, therefore, falls into one of these categories:<br />
* Code to determine the correct insertion point in the frame tree for new frames.<br />
* Code to create, for a given content node, frame construction items. This involves some searches through static data tables for metadata about the frame to be created.<br />
* Code to analyze the list of frame construction items.<br />
* Code to fix up the list of frame construction items.<br />
* Code to create frames from frame construction items.<br />
<br />
Code: [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.h layout/base/nsCSSFrameConstructor.h] and [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp layout/base/nsCSSFrameConstructor.cpp]<br />
<br />
==== Reflow ====<br />
<br />
Reflow is the process of computing the positions and sizes of frames. (After all,<br />
frames represent rectangles, and at some point we need to figure out<br />
exactly *what* rectangle.) Reflow is done recursively, with each<br />
frame's Reflow method calling the Reflow methods on that frame's<br />
descendants.<br />
<br />
In many cases, the correct results are defined by CSS specifications<br />
(particularly [http://www.w3.org/TR/CSS21/visudet.html CSS 2.1]). In some cases, the details are not defined by<br />
CSS, though in some (but not all) of those cases we are constrained by<br />
Web compatibility. When the details are defined by CSS, however, the<br />
code to compute the layout is generally structured somewhat differently<br />
from the way it is described in the CSS specifications, since the CSS<br />
specifications are generally written in terms of constraints, whereas<br />
our layout code consists of algorithms optimized for incremental<br />
recomputation.<br />
<br />
The reflow generally starts from the root of the frame tree, though some other<br />
types of frame can act as "reflow roots" and start a reflow from them<br />
(nsTextControlFrame is one example; see the<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_REFLOW_ROOT&redirect=true NS_FRAME_REFLOW_ROOT] frame state bit).<br />
Reflow roots must obey the invariant that a change inside one of their<br />
descendants never changes their rect or overflow areas (though currently<br />
scrollbars are reflow roots but don't quite obey this invariant).<br />
<br />
In many cases, we want to reflow a part of the frame tree, and we want<br />
this reflow to be efficient. For example, when content is added or<br />
removed from the document tree or when styles change, we want the amount<br />
of work we need to redo to be proportional to the amount of content. We<br />
also want to efficiently handle a series of changes to the same content.<br />
<br />
To do this, we maintain two bits on frames:<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_IS_DIRTY&redirect=true NS_FRAME_IS_DIRTY]<br />
indicates that a frame and all of its descendants require reflow.<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_HAS_DIRTY_CHILDREN&redirect=true NS_FRAME_HAS_DIRTY_CHILDREN]<br />
indicates that a frame has a descendant that<br />
is dirty or has had a descendant removed (i.e., that it has a child that<br />
has NS_FRAME_IS_DIRTY or NS_FRAME_HAS_DIRTY_CHILDREN or it had a child<br />
removed). These bits allow coalescing of multiple updates; this<br />
coalescing is done in PresShell, which tracks the set of reflow roots<br />
that require reflow. The bits are set during calls to<br />
[https://searchfox.org/mozilla-central/search?q=PresShell%3A%3AFrameNeedsReflow&path= PresShell::FrameNeedsReflow]<br />
and are cleared during reflow.<br />
<br />
The layout algorithms used by many of the frame classes are those<br />
specified in CSS, which are based on the traditional document formatting<br />
model, where widths are input and heights are output.<br />
<br />
In some cases, however, widths need to be determined based on the<br />
content. This depends on two ''intrinsic widths'': the minimum<br />
intrinsic width (see [http://dxr.mozilla.org/search?q=type%3AnsIFrame%20function%3AGetMinWidth&tree=mozilla-central nsIFrame::GetMinWidth]) and the preferred intrinsic<br />
width (see [http://dxr.mozilla.org/search?q=type%3AnsIFrame%20function%3AGetPrefWidth&tree=mozilla-central nsIFrame::GetPrefWidth]). The concept of what these widths<br />
represent is best explained by describing what they are on a paragraph<br />
containing only text: in such a paragraph the minimum intrinsic width<br />
is the width of the longest word, and the preferred intrinsic width is<br />
the width of the entire paragraph laid out on one line.<br />
<br />
Intrinsic widths are invalidated separately from the dirty bits<br />
described above. When a caller informs the pres shell that a frame<br />
needs reflow (PresShell::FrameNeedsReflow), it passes one of three<br />
options:<br />
* eResize indicates that no intrinsic widths are dirty<br />
* eTreeChange indicates that intrinsic widths on it and its ancestors are dirty (which happens, for example, if new children are added to it)<br />
* eStyleChange indicates that intrinsic widths on it, its ancestors, and its descendants are dirty (for example, if the font-size changes)<br />
<br />
Reflow is the area where the XUL frame classes (those that inherit from<br />
nsBoxFrame or nsLeafBoxFrame) are most different from the rest. Instead<br />
of using nsIFrame::Reflow, they do their layout computations using<br />
intrinsic size methods called GetMinSize, GetPrefSize, and GetMaxSize<br />
(which report intrinsic sizes in two dimensions) and a final layout<br />
method called Layout. In many cases these methods defer some of the<br />
computation to a separate object called a layout manager.<br />
<br />
When an individual frame's Reflow method is called, most of the input is<br />
provided on an object called ReflowInput and the output is filled<br />
in to an object called ReflowOutput. After reflow, the caller<br />
(usually the parent) is responsible for setting the frame's size based<br />
on the metrics reported. (This can make some computations during reflow<br />
difficult, since the new size is found in either the reflow state or the<br />
metrics, but the frame's size is still the old size. However, it's<br />
useful for invalidating the correct areas that need to be repainted.)<br />
<br />
One major difference worth noting is that in XUL layout, the size of the<br />
child is set prior to its parent calling its Layout method. (Once<br />
invalidation uses display lists and is no longer tangled up in Reflow,<br />
it may be worth switching non-XUL layout to work this way as well.)<br />
<br />
==== Painting ====<br />
<br />
TODO: display lists (and event handling)<br />
<br />
TODO: layers<br />
<br />
==== Pagination ====<br />
<br />
The concepts behind pagination (also known as fragmentation) are a bit complicated, so for now we've split them off into a separate document: [[Gecko:Continuation_Model]]. This code is used for printing, print-preview, and multicolumn frames.<br />
<br />
=== Dynamic change handling along the rendering pipeline ===<br />
<br />
The ability to make changes to the DOM from script is a major feature of the Web platform. Web authors rely on the concept (though there are a few exceptions, such as animations) that changing the DOM from script leads to the same rendering that would have resulted from starting from that DOM tree. They also rely on the performance characteristics of these changes: small changes to the DOM that have small effects should have proportionally small processing time. This means that Gecko needs to efficiently propagate changes from the content tree to style, the frame tree, the geometry of the frame tree, and the screen.<br />
<br />
For many types of changes, however, there is substantial overhead to processing a change, no matter how small. For example, reflow must propagate from the top of the frame tree down to the frames that are dirty, no matter how small the change. One very common way around this is to batch up changes. We batch up changes in lots of ways, for example:<br />
* The content sink adds multiple nodes to the DOM tree before notifying listeners that they've been added. This allows notifying once about an ancestor rather than for each of its descendants, or notifying about a group of descendants all at once, which speeds up the processing of those notifications.<br />
* We batch up nodes that require style reresolution (recomputation of selector matching and processing the resulting style changes). This batching is tree based, so it not only merges multiple notifications on the same element, but also merges a notification on an ancestor with a notification on its descendant (since ''some'' of these notifications imply that style reresolution is required on all descendants).<br />
* We wait to reconstruct frames that require reconstruction (after destroying frames eagerly). This, like the tree-based style reresolution batching, avoids duplication both for same-element notifications and ancestor-descendant notifications, even though it doesn't actually do any tree-based caching.<br />
* We postpone doing reflows until needed. As for style reresolution, this maintains tree-based dirty bits (see the description of NS_FRAME_IS_DIRTY and NS_FRAME_HAS_DIRTY_CHILDREN under Reflow).<br />
* We allow the OS to queue up multiple invalidates before repainting (though we will likely switch to controlling that ourselves). This leads to a single repaint of some set of pixels where there might otherwise have been multiple (though it may also lead to more pixels being repainted if multiple rectangles are merged to a single one).<br />
<br />
Having changes buffered up means, however, that various pieces of information (layout, style, etc.) may not be up-to-date. Some things require up-to-date information: for example, we don't want to expose the details of our buffering to Web page script since the programming model of Web page script assumes that DOM changes take effect "immediately", i.e., that the script shouldn't be able to detect any buffering. Many Web pages depend on this.<br />
<br />
We therefore have ways to flush these different sorts of buffers. There are methods called FlushPendingNotifications on nsIDocument and nsIPresShell, that take an argument of what things to flush:<br />
* Flush_Content: create all the content nodes from data buffered in the parser<br />
* Flush_ContentAndNotify: the above, plus notify document observers about the creation of all nodes created so far<br />
* Flush_Style: the above, plus make sure style data are up-to-date<br />
* Flush_Frames: the above, plus make sure all frame construction has happened (currently the same as Flush_Style)<br />
* Flush_InterruptibleLayout: the above, plus perform layout (Reflow), but allow interrupting layout if it takes too long<br />
* Flush_Layout: the above, plus ensure layout (Reflow) runs to completion<br />
* Flush_Display (should never be used): the above, plus ensure repainting happens<br />
<br />
The major way that notifications of changes propagate from the content code to layout and other areas of code is through the nsIDocumentObserver and nsIMutationObserver interfaces. Classes can implement this interface to listen to notifications of changes for an entire document or for a subtree of the content tree.<br />
<br />
WRITE ME: ... layout document observer implementations<br />
<br />
TODO: how style system optimizes away rerunning selector matching<br />
<br />
TODO: style changes and nsChangeHint<br />
<br />
=== Refresh driver ===<br />
<br />
== Graphics ==<br />
[https://wiki.mozilla.org/Platform/GFX Wiki page] | [https://wiki.mozilla.org/index.php?title=Platform/GFX/Contribute contribute]<br />
<br />
Further documentation:<br />
* Jargon: [https://wiki.mozilla.org/Platform/GFX/Jargon Helpful list] of terms used in Graphics<br />
* Talk: [https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E271782 2018 SF All-Hands Graphics Overview] (nical/mattwoodrow/gw) <br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bjacob-gfx-overview/ An overview of Gecko's graphics stack] (Benoit Jacob, 2014-08-12)<br />
* Talk: [https://air.mozilla.org/jeff-muizelaar-2d-graphics/ 2D Graphics] (Jeff Muizelaar, 2014-10-14)<br />
* Blog: Mozilla gfx blog's [https://mozillagfx.wordpress.com/category/technical/ "technical" tag].<br />
* Blog: WebRender/gfx [https://mozillagfx.wordpress.com/category/wr-newsletter/ newsletter].<br />
<br />
==== WebRender vs Layers ====<br />
Currently there are two different rendering paths in Gecko. The new one is WebRender.<br />
"Layers" is the name of the previous / non-webrender architecture. <br />
<br />
Here's a very high level summary of how it works: [https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/]<br />
<br />
From a high level architectural point of view, the main differences are:<br />
* Layers separate rendering into a painting phase and a compositing phase which usually happen in separate processes. For WebRender, on the other hand, all of the rendering happens in a single operation.<br />
* Layers internally expresses rendering rendering commands through a traditional canvas-like immediate mode abstraction (Moz2D) which has several backends (some of which use the GPU). WebRender works directly at a lower and GPU-centric level, dealing in terms of batches, draw calls and shaders.<br />
* Layers code is entirely C++, while WebRender is mostly Rust with some integration glue in C++.<br />
<br />
==== WebRender ====<br />
<br />
* WebRender's main entry point is a display list. It is a description of a visible subset of the page produced by the layout module.<br />
* WebRender and Gecko's display list representations are currently different so there is a translation between the two.<br />
* The WebRender display list is serialized on the content process and sent to the process that will do the rendering (either the main process or the GPU process).<br />
* The rendering process deserializes the display list and builds a "Scene".<br />
* From this scene, frames can be built. Frames represent the actual drawing operations that need to be performed for content to appear on screen. A single scene can produce several frames, for example if an element of the scene is scrolled.<br />
* The Renderer consumes the frame and produces actual OpenGL drawing commands. Currently WebRender is based on OpenGL and on Windows the OpenGL commands are transparently turned into D3D ones using ANGLE. In the long run we plan to work with a vulkan-like abstraction called gfx-rs.<br />
<br />
The main phases in WebRender are therefore:<br />
* Display list building<br />
* Scene building<br />
* frame building<br />
* GPU commands execution<br />
<br />
All of these phases are performed on different threads. The first two happen whenever the layout of the page changes or the user scrolls past the part of the page covered by the current scene. They don't necessarily happen at a high frequency. Frame building and GPU command execution, on the other hand, happen at a high frequency (the monitor's refresh rate during scrolling and animations), which means that they must fit in the frame budget (typically 16ms). In order to avoid going over the frame budget, frame building and GPU command execution can overlap. scene building and frame building can also overlap and it is possible to continue generating frames while a new scene is being built asynchronously.<br />
<br />
WebRender has a fallback mechanism called "Blob images" for content that it does not handle (for example some SVG drawing primitives). It consists in recording and serializing a list of drawing commands (the "blob") on the content process and sending it to WebRender along with the regular display list. Blobs are then turned into images on the CPU during the scene building phase. The most of WebRender treats blob images as regular images.<br />
<br />
Some important internal operations and data structures:<br />
* The clip-scroll tree (TODO)<br />
* The render task graph (TODO)<br />
* Culling: https://mozillagfx.wordpress.com/2018/11/08/webrender-culling/<br />
* Batching: https://mozillagfx.wordpress.com/2018/11/21/webrender-batching/<br />
* Picture-caching: https://mozillagfx.wordpress.com/2018/11/02/webrender-picture-caching/<br />
<br />
The WebRender code path reuses the layers IPC infrastructure for sharing textures between the content process and the renderer. For example The ImageBridge protocol described in the Compositing section is also used to transfer video frames when WebRender is enabled.<br />
Asynchronous Panning and Zooming (APZ) described in a later sections is also relevant to WebRender.<br />
<br />
==== Painting/Rasterizing (Layers aka Non-WebRender) ====<br />
<br />
[[File:Layers pipeline overview.png|650px|thumb|Layers pipeline overview]]<br />
<br />
Painting/rendering/rasterizing is the step where graphical primitives (such as a command to fill an [https://developer.mozilla.org/en-US/docs/Web/SVG SVG] circle, or the internally produced command to draw a rounded rectangle) are used to color in the pixels of a surface so that the surface "displays" those rasterized primitives.<br />
<br />
The platform independent library that gecko uses to render is [http://dxr.mozilla.org/mozilla-central/source/gfx/2d/2D.h Moz2D]. Gecko code paints into Moz2D DrawTarget objects (the DrawTarget base class having multiple platform dependent subclasses).<br />
<br />
==== Compositing ====<br />
<br />
The compositing stage of the rendering pipeline is operated by the [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ gfx/layers] module.<br />
<br />
Different parts of a web page can sometimes be painted into intermediate surfaces retained by layers. It can be convenient to think of layers as the layers in image manipulation programs like The Gimp or Photoshop. Layers are organized as a tree. Layers are primarily used to minimize invalidating and repainting when elements are being animated independently of one another in a way that can be optimized using layers (e.g. opacity or transform animations), and to enable some effects (such as transparency and 3D transforms).<br />
<br />
Compositing is the action of flattening the layers into the final image that is shown on the screen.<br />
<br />
We paint and composite on separate threads (it is called Off-main-thread compositing, or OMTC, and a long time ago Firefox did not have this separation).<br />
<br />
The Layers architecture is built on the following notions:<br />
* Compositor: an object that can draw quads on the screen (or on an off-screen render target).<br />
* Texture: an object that contains image data.<br />
* Compositable: an object that can manipulate one or several textures, and knows how to present them to the compositor<br />
* Layer: an element of the layer tree. A layer usually doesn't know much about compositing: it uses a compositable to do the work. Layers are mostly nodes of the layer tree.<br />
<br />
[[File:LayersRefactoring.png|thumb|650px|New layers architecture, with OGL backend]]<br />
<br />
Since painting and compositing are performed on different threads/processes, we need a mechanism to synchronize a client layer tree that is constructed on the content thread, and a host layer tree that is used for compositing on the compositor thread.<br />
This synchronization process must ensure that the host layer tree reflects the state of the current layer tree while remaining in a consistent state, and must transfer texture data from a thread to the other. Moreover, on some platforms the content and compositor threads may live in separate processes.<br />
<br />
To perform this synchronization, we use the IPDL IPC framework. IPDL lets us describe communications protocols and actors in a domain specific language. for more information about IPDL, read https://wiki.mozilla.org/IPDL<br />
<br />
When the client layer tree is modified, we record modifications into messages that are sent together to the host side within a transaction. A transaction is basically a list of modifications to the layer tree that have to be applied all at once to preserve consistency in the state of the host layer tree.<br />
<br />
Texture transfer is done by synchronizing texture objects across processes/threads using a couple TextureClient/TextureHost that wrap shared data and provide access to it on both sides. TextureHosts provide access to one or several TextureSource, which has the necessary API to actually composite the texture (TextureClient/Host being more about IPC synchronization than actual compositing.<br />
The logic behind texture transfer (as in single/double/triple buffering, texture tiling, etc) is operated by the CompositableClient and CompositableHost.<br />
<br />
It is important to understand the separation between layers and compositables. Compositables handle all the logic around texture transfer, while layers define the shape of the layer tree. a Compositable is created independently from a layer and attached to it on both sides. While layers transactions can only originate from the content thread, this separation makes it possible for us to have separate compositable transactions between any thread and the compositor thread. We use the ImageBridge IPDL protocol to that end. The Idea of ImageBridge is to create a Compositable that is manipulated on the ImageBridgeThread, and that can transfer/synchronize textures without using the content thread at all. This is very useful for smooth Video compositing: video frames are decoded and passed into the ImageBridge without ever touching the content thread, which could be busy processing reflows or heavy javascript workloads.<br />
<br />
It is worth reading the inline code documentation in the following files:<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Compositor.h gfx/layers/Compositor.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ShadowLayers.h gfx/layers/ShadowLayers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Layers.h gfx/layers/Layers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/host/TextureHost.h gfx/layers/host/TextureHost.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/CompositableClient.h gfx/layers/client/CompositableClient.h]<br />
<br />
To visualize how a web page is layered, turn on the pref "layers.draw-borders" in about:config. When this pref is on, the borders of layers and tiles are displayed on top of the content. This only works when using the Compositor API, that is when WebRender is disabled, since WebRender does not have the same concept of layers.<br />
<br />
Blog posts with information on Layers that should be integrated here:<br />
<br />
* [http://www.basschouten.com/blog1.php/layers-cross-platform-acceleration Layers: Cross-Platform Acceleration]<br />
* [http://robert.ocallahan.org/2010/04/layers_01.html Layers]<br />
* [http://robert.ocallahan.org/2010/07/retained-layers_16.html Retained Layers]<br />
* [http://chrislord.net/index.php/2011/07/25/shadow-layers-and-learning-by-failing/ Shadow Layers, and learning by failing]<br />
* [http://chrislord.net/index.php/2011/08/16/accelerated-layer-rendering-and-learning-by-some-success/ Accelerated layer-rendering, and learning by (some) success]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/mask-layers_26.html Mask Layers]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/building-mask-layer.html Building a mask layer]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/06/mask-layers-on-direct3d-backends.html Mask Layers on the Direct3D backends]<br />
* [http://robert.ocallahan.org/2011/09/graphics-api-design.html Graphics API Design]<br />
<br />
==== Async Panning and Zooming ====<br />
<br />
On some of our mobile platforms we have some code that allows the user to do asynchronous (i.e. off-main-thread) panning and zooming of content. This code is the Async Pan/Zoom module (APZ) code and is further documented at [[Platform/GFX/APZ]].<br />
<br />
== Scripting ==<br />
<br />
=== JavaScript Engine ===<br />
<br />
Gecko embeds the SpiderMonkey JavaScript engine (located in js/src). The JS engine includes a number of Just-In-Time compilers (or JITs). SpiderMonkey provides a powerful and extensive embedding API (called the JSAPI). Because of its complexity, using the JSAPI directly is frowned upon, and a number of abstractions have been built in Gecko to allow interacting with the JS engine without using JSAPI directly. Some JSAPI concepts are important for Gecko developers to understand, and they are listed below:<br />
<br />
* Global object: The '''global object''' is the object on which all global variables/properties/methods live. In a web page this is the 'window' object. In other things such as XPCOM components or sandboxes XPConnect creates a global object with a small number of builtin APIs.<br />
* Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment.<br />
* When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information).<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/kannan-vijayan-baseline-jit/ Baseline JIT] (Kannan Vijayan, 2014-10-14)<br />
<br />
=== XPConnect ===<br />
<br />
'''XPConnect''' is a bridge between C++ and JS used by XPCOM components exposed to or implemented in JavaScript. XPConnect allows two XPCOM components to talk to each other without knowing or caring which language they are implemented in. XPConnect allows JS code to call XPCOM components by exposing XPCOM interfaces as JS objects, and mapping function calls and attributes from JS into virtual method calls on the underlying C++ object. It also allows JS code to implement an XPCOM component that can be called from C++ by faking the vtable of an interface and translating calls on the interface into JS calls. XPConnect accomplishes this using the vtable data stored in XPCOM TypeLibs (or XPT files) by the XPIDL compiler and a small layer of platform specific code called [https://developer.mozilla.org/en-US/docs/xptcall_FAQ xptcall] that knows how to interact with and impersonate vtables of XPCOM interfaces.<br />
<br />
XPConnect is also used for a small (and decreasing) number of legacy DOM objects. At one time all of the DOM used XPConnect to talk to JS, but we have been replacing XPConnect with the WebIDL bindings (see the next section for more information). Arbitrary XPCOM components are not exposed to web content. XPCOM components that want to be accessible to web content must provide class info (that is, they must QI to nsIClassInfo) and must be marked with the nsIClassInfo::DOM_OBJECT flag. Most of these objects also are listed in dom/base/nsDOMClassInfo.cpp, where the interfaces that should be visible to the web are enumerated. This file also houses some "scriptable helpers" (classes ending in "SH" and implementing nsIXPCScriptable), which are a set of optional hooks that can be used by XPConnect objects to implement more exotic behaviors (such as indexed getters or setters, lazily resolved properties, etc). This is all legacy code, and any new DOM code should use the WebIDL bindings.<br />
<br />
=== WebIDL Bindings ===<br />
<br />
The '''WebIDL bindings''' are a separate bridge between C++ and JS that is specifically designed for use by DOM code. We intend to replace all uses of XPConnect to interface with content JavaScript with the WebIDL bindings. [https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings Extensive documentation] on the WebIDL bindings is available, but the basic idea is that a binding generator takes WebIDL files from web standards and some configuration data provided by us and generates at build time C++ glue code that sits between the JS engine and the DOM object. This setup allows us to produce faster, more specialized code for better performance at the cost of increased codesize.<br />
<br />
The WebIDL bindings also implement all of the behavior specified in WebIDL, making it possible for new additions to the DOM to behave correctly "out of the box". The binding layer also provides C++ abstractions for types that would otherwise require direct JSAPI calls to handle, such as typed arrays.<br />
<br />
=== Reflectors ===<br />
Whether using [https://wiki.mozilla.org/Gecko:Overview#XPConnect XPConnect] or [https://wiki.mozilla.org/Gecko:Overview#WebIDL_Bindings Web IDL], the basic idea is that there is a JSObject called a '''reflector''' that represents some C++ object. The JSObject ensures that the C++ object remains alive while the JSObject is alive. The C++ object does ''not'' necessarily keep the JSObject alive; this allows the JSObject to be garbage-collected as needed. If this happens, the next time JS needs access to that C++ object a new reflector is created. If something happens that requires that the actual object identity of the JSObject be preserved even though it's not explicitly reachable, the C++ object will start keeping the JSObject alive as well. After this point, the cycle collector would be the only way for the pair of objects to be deallocated. Examples of operations that require identity-preservation are adding a property to the object, giving the object a non-default prototype, using the object as a weakmap key or weakset member.<br />
<br />
In the XPConnect case, reflectors are created by XPCWrappedNative::GetNewOrUsed. This finds the right JSClass to use for the object, depending on information provided by the C++ object via the nsIClassInfo interface about special class hooks it might need. If the C++ object has no clasinfo, XPC_WN_NoHelper_JSClass is used. GetNewOrUsed also determines the right global to use for the reflector, again based on nsIClassInfo information, with a fallback to the JSContext's current global.<br />
<br />
In the Web IDL case, reflectors are created by the Wrap method that the binding code generator spits out for the relevant Web IDL interface. So for the Document interface, the relevant method is mozilla::dom::Document_Binding::Wrap. The JSClass that is used is also created by the code generator, as part of the DOMJSClass struct it outputs. Web IDL objects provide a GetParentObject() method that is used to determine the right global to use for the reflector.<br />
<br />
Web IDL objects typically inherit from nsWrapperCache, and use that class to store a pointer to their reflector and to keep it alive as needed. The only exception to that is if the Web IDL object only needs to find a reflector once during its lifetime, typically as a result of a Web IDL constructor being called from JS (see TextEncoder for an example). In that case, there is no need to get the JS object from the C++ one, and no way to end up in any of the situations that require preserving the JS object from the C++ side, so the Web IDL object is allowed to not inherit from nsWrapperCache.<br />
<br />
=== Security ===<br />
<br />
Gecko's JS security model is based on the concept of compartments. Every compartment has a '''principal''' associated with it that contains security information such as the '''origin''' of the compartment, whether or not it has system privileges, etc. For the following discussion, '''wrappee''' refers to the underlying object being wrapped, '''scope''' refers to the compartment the object is being wrapped for use in, and '''wrapper''' refers to the object created in '''scope''' that allows it to interact with '''wrappee'''. "Chrome" refers to JS that is built in to the browser or part of an extension, which runs with full privileges, and is contrasted with "content", which is web provided script that is subject to security restrictions and the same origin policy.<br />
<br />
* Xray wrappers: Xray wrappers are used when the scope has chrome privileges and the wrappee is the JS reflection of an underlying DOM object. Beyond the usual CCW duties of making sure that content code does not run with chrome privileges, Xray wrappers also ensure that calling methods or accessing attributes on the wrappee has the "expected" effect. For example, a web page could replace the <code>close</code> method on its window with a JS function that does something completely different. (e.g. <code>window.close = function() { alert("This isn't what you wanted!") };</code>). Overwriting methods in this way (or creating entirely new ones) is referred to as '''expando''' properties. Xrays see through expando properties, invoking the original method/getter/setter if the expando overwrites a builtin or seeing undefined in the expando creates a new property. This allows chrome code to call methods on content DOM objects without worrying about how the page has changed the object.<br />
* Waived xray wrappers: The xray behavior is not always desirable. It is possible for chrome to "waive" the xray behavior and see the actual JS object. The wrapper still guarantees that code runs with the correct privileges, but methods/getters/setters may not behave as expected. This is equivalent to the behavior chrome sees when it looks at non-DOM content JS objects.<br />
* For more information, see the [https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Script_security MDN page]<br />
* bholley's [https://air.mozilla.org/enter-the-compartment/ Enter the Compartment] talk also provides an overview of our compartment architecture.<br />
<br />
== Images ==<br />
<br />
== Plugins ==<br />
<br />
== Platform-specific layers ==<br />
<br />
* widget<br />
* native theme<br />
* files, networking, other low-level things<br />
* Accessibility APIs<br />
* Input. Touch-input stuff is somewhat described at [[Platform/Input/Touch]].<br />
<br />
== Editor ==<br />
<br />
== Base layers ==<br />
<br />
=== NSPR ===<br />
<br />
NSPR is a library for providing cross-platform APIs for various<br />
platform-specific functions. We tend to be trying to use it as little<br />
as possible, although there are a number of areas (particularly some<br />
network-related APIs and threading/locking primitives) where we use it<br />
quite a bit.<br />
<br />
=== XPCOM ===<br />
<br />
XPCOM is a cross-platform modularity library, modeled on Microsoft COM. It<br />
is an object system in which all objects inherit from the <code>nsISupports</code> interface.<br />
<br />
components and services, contract IDs and CIDs<br />
<br />
prior overuse of XPCOM; littering with XPCOM does not produce modularity<br />
<br />
Base headers (part of xpcom/base/) and data structures. See also mfbt.<br />
<br />
Threading<br />
<br />
xptcall, proxies<br />
<br />
reference counting, cycle collection<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]<br />
<br />
=== String ===<br />
<br />
XPCOM has string classes for representing sequences of characters. Typical C++ string classes have the goals of encapsulating the memory management of buffers and the issues needed to avoid buffer overruns common in traditional C string handling. Mozilla's string classes have these goals, and also the goal of reducing copying of strings.<br />
<br />
(There is a second set of string classes in xpcom/glue for callers outside of libxul; these classes are partially source-compatible but have different (worse) performance characteristics. This discussion does not cover those classes.)<br />
<br />
We have two parallel sets of classes, one for strings with 1-byte units (<code>char</code>, which may be signed or unsigned), and one for strings with 2-byte units (<code>char16_t</code>, always unsigned). The classes are named such that the class for 2-byte characters ends with <code>String</code> and the corresponding class for 1-byte characters ends with <code>CString</code>. 2-byte strings are almost always used to encode [http://en.wikipedia.org/wiki/UTF-16 UTF-16]. 1-byte strings are usually used to encode either [http://en.wikipedia.org/wiki/ASCII ASCII] or [http://en.wikipedia.org/wiki/UTF-8 UTF-8], but are sometimes also used to hold data in some other encoding or just byte sequences.<br />
<br />
The string classes distinguish, as part of the type hierarchy, between strings that must have a null-terminator at the end of their buffer (<code>ns[C]String</code>) and strings that are not required to have a null-terminator (<code>ns[C]Substring</code>). <code>ns[C]Substring</code> is the base of the string classes (since it imposes fewer requirements) and <code>ns[C]String</code> is a class derived from it. Functions taking strings as parameters should generally take one of these four types.<br />
<br />
In order to avoid unnecessary copying of string data (which can have significant performance cost), the string classes support different ownership models. All string classes support the following three ownership models dynamically:<br />
* reference counted, copy-on-write, buffers (the default)<br />
* adopted buffers (a buffer that the string class owns, but is not reference counted, because it came from somewhere else)<br />
* dependent buffers, that is, an underlying buffer that the string class does not own, but that the caller that constructed the string guarantees will outlive the string instance<br />
In addition, there is a special string class, <code>nsAuto[C]String</code>, that ''additionally'' contains an internal 64-unit buffer (intended primarily for use on the stack), leading to a fourth ownership model:<br />
* storage within an auto string's stack buffer<br />
Auto strings will prefer reference counting an existing reference-counted buffer over their stack buffer, but will otherwise use their stack buffer for anything that will fit in it.<br />
<br />
There are a number of additional string classes, particularly <code>nsDependent[C]String</code>, <code>nsDependent[C]Substring</code>, and the <code>NS_LITERAL_[C]STRING</code> macros which construct an <code>nsLiteral[C]String</code> which exist primarily as constructors for the other types. These types are really just convenient notation for constructing an <code>ns[C]S[ubs]tring</code> with a non-default ownership mode; they should not be thought of as different types. (The <code>Substring</code>, <code>StringHead</code>, and <code>StringTail</code> functions are also constructors for dependent [sub]strings.) Non-default ownership modes can also be set up using the <code>Rebind</code> and <code>Adopt</code> methods, although the <code>Rebind</code> methods actually live on the derived types, which is probably a mistake (although moving them up would require some care to avoid making an API that easily allows assigning a non-null-terminated buffer to a string whose static type indicates that it is null-terminated).<br />
<br />
Note that the presence of all of these classes imposes some awkwardness in terms of distinctions being available as both static type distinctions and dynamic type distinctions. In general, the only distinctions that should be made statically are 1-byte vs. 2-byte sequences (<code>CString</code> vs <code>String</code>) and whether the buffer is null-terminated or not (<code>Substring</code> vs <code>String</code>). (Does the code actually do a good job of dynamically enforcing the <code>Substring</code> vs. <code>String</code> restriction?)<br />
<br />
TODO: buffer growth, concatenation optimizations<br />
<br />
TODO: encoding conversion, what's validated and what isn't<br />
<br />
TODO: "string API", nsAString (historical)<br />
<br />
* Code: xpcom/string/<br />
* Bugzilla: Core::String<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]</div>Dholberthttps://wiki.mozilla.org/index.php?title=Gecko:Overview&diff=1240904Gecko:Overview2022-03-01T18:37:44Z<p>Dholbert: /* Reflow */ Update links and documentation about reflow roots</p>
<hr />
<div>This document attempts to give an overview of the different parts of<br />
Gecko, what they do, and why they do it, say where the code for them is<br />
within the repository, and link to more specific documentation (when<br />
available) covering the details of that code. '''It is not yet complete.''' Maintainers of these<br />
areas of code should correct errors, add information, and add links to<br />
more detailed documentation (since this document is intended to remain<br />
an overview, not complete documentation).<br />
<br />
__TOC__<br />
<br />
== Browsers, Frames, and Document Navigation ==<br />
<br />
=== Docshell ===<br />
<br />
The user of a Web browser can change the page shown in that browser in<br />
many ways: by clicking a link, loading a new URL, using the forward and<br />
back buttons, or other ways. This can happen inside a space we'll call<br />
a '''browsing context'''; this space can be a browser window, a tab, or a frame<br />
or iframe within a document. The toplevel data structures within Gecko<br />
represent this browsing context; they contain other data structures<br />
representing the individual pages displayed inside of it (most<br />
importantly, the current one). In terms of implementation, these two<br />
types of navigation, the top level of a browser and the frames within<br />
it, largely use the same data structures.<br />
<br />
In Gecko, the '''docshell''' is the toplevel object responsible for<br />
managing a single browsing context. It, and the associated '''session history''' code, <br />
manage the navigation between pages inside of a<br />
docshell. (Note the difference between session history, which is a<br />
sequence of pages in a single browser session, used for recording information<br />
for back and forward navigation, and global history, which is the<br />
history of pages visited and associated times, regardless of browser<br />
session, used for things like link coloring and address autocompletion.)<br />
<br />
There are relatively few objects in Gecko that are associated with a<br />
docshell rather than being associated with a particular one of the pages<br />
inside of it. Most such objects are attached to the docshell. An important object associated with the docshell is the nsGlobalWindowOuter which is what the HTML5 spec refers to as a WindowProxy (into which Window objects, as implemented by nsGlobalWindowInner, are loaded). See the DOM section below for more information on<br />
this.<br />
<br />
The most toplevel object for managing the contents of a particular page<br />
being displayed within a docshell is a document viewer (see layout).<br />
Other important objects associated with this presentation are the<br />
document (see DOM) and the pres(entation) shell and pres(entation)<br />
context (see layout).<br />
<br />
[[File:WebNavigation.png|thumb|400px|<xul:browser>, frameloader and docshell in single process configuration]]<br />
<br />
Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In Gecko, a browsing context container would implement <code>[https://dxr.mozilla.org/mozilla-central/rev/f9a5e9ed62103c84e4cde915f4d08f1ce71be83e/dom/base/nsIFrameLoader.idl#271 nsIFrameLoaderOwner]</code> to hold a '''frameloader''', which holds and manages the docshell. <br />
<br />
One of the most interfaces docshell implemented is <code>[https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl nsIWebNavigation]</code>. It defines major functions of a browsing context, such as <code>loadURI</code> / <code>goBack</code> / <code>goForward</code> and <code>reload</code>. In single process configuration of desktop Firefox, <code><xul:browser></code> (which represents a tab) operates on docshell through <code>nsIWebNavigation</code>, as shown in the right figure.<br />
<br />
* code: mozilla/docshell/<br />
* bugzilla: Core::Document Navigation<br />
* documentation: [[DocShell:Home Page]]<br />
<br />
=== Session History ===<br />
<br />
In order to keep the session history of subframes after the root document is unloaded and docshells of subframes are destroyed, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change).<br />
<br />
As an example to explain the structure of session history implementation in Gecko, consider there's a tab A, which loads document 1; in document 1, there are iframe B & C, which loads document 2 & 3, respectively. Later, an user navigates iframe B to document 4. The following figures show the conceptual model of the example, and the corresponding session history structure.<br />
<br />
{| <br />
| [[File:BrowsingContextExample1.png|thumb|190px|Conceptual model representation; color denotes current visible active documents]]<br />
| [[File:SHistoryExample1.png|thumb|180px|Session history structure; color denotes current transaction / entries]]<br />
|}<br />
<br />
In Gecko, a [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHistory.h session history] object holds a list of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHTransaction.h transactions] (denoted as T1 & T2 in the figure); each transaction points to a tree of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHEntry.h entries]; each entry records the docshell it associated to, and a URL. Now that if we navigate the tab to a different root document 5, which includes an iframe D with document 6, then it becomes:<br />
<br />
{| <br />
| [[File:BrowsingContextExample2.png|thumb|275px|Conceptual model representation]]<br />
| [[File:SHistoryExample2.png|thumb|250px|Session history structure]]<br />
|}<br />
<br />
=== Embedding ===<br />
<br />
To be written (and maybe rewritten if we get an IPC embedding API).<br />
<br />
[[File:WebNavigationE10S.png|thumb|500px|<xul:remote-browser>, frameloader and docshell in multiprocess configuration. The horizontal dash-lines represent inter-process communication]]<br />
<br />
=== Multi-process and IPC ===<br />
<br />
In a multi-process desktop Firefox, a tab is managed by <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/remote-browser.xml <xul:remote-browser>]</code>. It still operates on nsIWebNavigation, but in this case the docshell is in a remote process and can not be accessed directly. The encapsulation of remote nsIWebNavigation is done by the javascript-implemented <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/components/remotebrowserutils/RemoteWebNavigation.js RemoteWebNavigation]</code>.<br />
<br />
In this configuration, the frameloader of a root docshell lives in parent process, so it can not access docshell directly either. Instead, it holds a <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]</code> instance to interact with <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]</code> in child-process. At C/C++ level, the communication across processes for a single tab is through the '''PBrowser''' IPC protocol implemented by TabParent and TabChild, while at the javascript level it's done by '''message manager''' (which is ontop of PBrowser). RemoteWebNavigation, for example, sends messages to <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/browser-child.js browser-child.js]</code> in content process through message manager.<br />
<br />
== Networking ==<br />
<br />
The network library Gecko uses is called Necko. Necko APIs are largely organized around three concepts: '''URI objects''', '''protocol handlers''', and '''channels'''.<br />
<br />
=== Protocol handlers ===<br />
A '''protocol handler''' is an XPCOM service associated with a particular URI scheme or network protocol. Necko includes protocol handlers for HTTP, FTP, the data: URI scheme, and various others. Extensions can implement protocol handlers of their own.<br />
<br />
A protocol handler implements the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl nsIProtocolHandler]</code> API, which serves three primary purposes:<br />
# Providing metadata about the protocol (its security characteristics, whether it requires actual network access, what the corresponding URI scheme is, what TCP port the protocol uses by default).<br />
# Creating URI objects for the protocol's scheme.<br />
# Creating channel objects for the protocol's URI objects<br />
<br />
Typically, the built-in I/O service (<code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService2.idl nsIIOService]</code>) is responsible for finding the right protocol handler for URI object creation and channel creation, while a variety of consumers queries protocol metadata. Querying protocol metadata is the recommended way to handle any sort of code that needs to have different behavior for different URI schemes. In particular, unlike whitelists or blacklists, it correctly handles the addition of new protocols.<br />
<br />
A service can register itself as a protocol handler by registering for the contract ID <code>"@mozilla.org/network/protocol;1?name=SSSSS"</code> where <code>SSSS</code> is the URI scheme for the protocol (e.g. "http", "ftp", and so forth).<br />
<br />
=== URI objects ===<br />
URI objects, which implement the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURI.idl nsIURI]</code> API, are a way of representing URIs and IRIs. Their main advantage over strings is that they do basic syntax checking and canonicalization on the URI string that they're provided with. They also provide various accessors to extract particular parts of the URI and provide URI equality comparisons. URIs that correspond to hierarchical schemes implement the additional <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURL.idl nsIURL]</code> interface, which exposes even more accessors for breaking out parts of the URI.<br />
<br />
URI objects are typically created by calling the <code>newURI</code> method on the I/O service, or in C++ by calling the <code>NS_NewURI</code> utility function. This makes sure to create the URI object using the right protocol handler, which ensures that the right kind of object is created. Direct creation of URIs via <code>createInstance</code> is reserved for protocol handler implementations.<br />
<br />
=== Channels ===<br />
[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIChannel.idl Channels] are the Necko representation of a single request/response interaction with a server. A channel is created by calling the <code>newChannel</code> method on the [https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService.idl I/O service], or in C++ by calling the <code>[https://dxr.mozilla.org/mozilla-central/search?q=function%3ANS_NewChannel&case=true NS_NewChannel]</code> utility function. The channel can then be configured as needed, and finally its <code>asyncOpen</code> method can be called. This method takes an <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl nsIStreamListener]</code> as an argument.<br />
<br />
If <code>asyncOpen</code> has returned successfully, the channel guarantees that it will asynchronously call the <code>onStartRequest</code> and <code>onStopRequest</code> methods on its stream listener. This will happen even if there are network errors that prevent Necko from actually performing the requests. Such errors will be reported in the channel's status and in the <code>status</code> argument to <code>onStopRequest</code>.<br />
<br />
If the channel ends up being able to provide data, it will make one or more <code>onDataAvailable</code> on its listener after calling <code>onStartRequest</code> and before calling <code>onStopRequest</code>. For each call, the listener is responsible for either returning an error or reading the entire data stream passed in to the call.<br />
<br />
If an error is returned from either <code>onStartRequest</code> or <code>onDataAvailable</code>, the channel must act as if it has been canceled with the corresponding error code.<br />
<br />
A channel has two URI objects associated with it. The <code>originalURI</code> of the channel is the URI that was originally passed to <code>newChannel</code> to create the channel that then had <code>asyncOpen</code> called on it. The <code>URI</code> is the URI from which the channel is reading data. These can be different in various cases involving protocol handlers that forward network access to other protocol handlers, as well as in situations in which a redirect occurs (e.g. following an HTTP 3xx response). In redirect situations, a new channel object will be created, but the originalURI will be propagated from the old channel to the new channel.<br />
<br />
Note that the <code>nsIRequest</code> that's passed to onStartRequest must match the one passed to onDataAvailable and onStopRequest, but need not be the original channel that asyncOpen was called on. In particular, when an HTTP redirect happens the request argument to the callbacks will be the post-redirect channel.<br />
<br />
TODO: crypto?<br />
<br />
== Document rendering pipeline ==<br />
<br />
Some of the major components of Gecko can be described as steps on the<br />
path from an HTML document coming in from the network to the graphics<br />
commands needed to render that document. An HTML document is a<br />
serialization of a tree structure. (FIXME: add diagram) The HTML<br />
parser and content sink create an in-memory representation of this tree,<br />
which we call the '''DOM tree''' or '''content tree'''.<br />
Many JavaScript APIs operate on the content tree. Then, in<br />
layout, we create a second tree, the '''frame tree''' (or<br />
'''rendering tree''') that is a similar shape to the content tree,<br />
but where each node in the tree represents a rectangle (except in SVG<br />
where they represent other shapes). We then compute the positions of<br />
the nodes in the frame tree (called '''frames''') and paint them<br />
using our cross-platform graphics APIs (which, underneath, map to<br />
platform-specific graphics APIs).<br />
<br />
Further documentation:<br />
* Talk: Fast CSS: How Browsers Lay Out Web Pages (David Baron, 2012-03-11): [https://dbaron.org/talks/2012-03-11-sxsw/slide-1.xhtml slideshow], [https://dbaron.org/talks/2012-03-11-sxsw/master.xhtml all slides], [http://audio.sxsw.com/2012/podcasts/11-ACC-Fast_CSS_How_Browser_Layout.mp3 audio (MP3)], [https://schedule.sxsw.com/2012/events/event_IAP12909 session page]<br />
* Talk: Efficient CSS Animations (an updated version of the previous talk with a slightly different focus) (David Baron, 2014-06-04): [https://dbaron.org/talks/2014-06-04-cssday/slide-1.xhtml slideshow], [https://dbaron.org/talks/2014-06-04-cssday/master.xhtml all slides], [http://vimeo.com/channels/cssday/103108124 video]<br />
* Talk: [https://air.mozilla.org/benoit-girard-gecko-rendering/ Overview of the Gecko Rendering Pipeline] (Benoit Girard, 2014-10-14)<br />
<br />
=== Parser ===<br />
<br />
The parser's job is to transform a character stream into a tree<br />
structure, with the help of the content sink classes.<br />
<br />
HTML is parsed using a parser implementing the parsing algorithm in the<br />
HTML specification (starting with HTML5). Much of this parser is<br />
translated from Java, and changes are made to the Java version. This<br />
parser in parser/html/. The parser is driven by the output of the networking layer (see nsHtml5StreamParser::OnDataAvailable). The HTML5 parser is capable of parsing off the main thread which is the normal case. It also parses on the main thread to be able to synchronously handle things such as innerHTML modifications.<br />
<br />
The codebase still has the previous generation HTML parser, which is<br />
still used for a small number of things, though we hope to be able to<br />
remove it entirely soon. This parser is in parser/htmlparser/.<br />
<br />
XML is parsed using the expat library (parser/expat/) and code that<br />
wraps it (parser/xml/). This is a non-validating parser; however, it<br />
loads certain DTDs to support XUL localization.<br />
<br />
=== DOM / Content ===<br />
<br />
The content tree or DOM tree is the central data structure for Web<br />
pages. It is a tree structure, initially created from the tree<br />
structure expressed in the HTML or XML markup. The nodes in the tree<br />
implement major parts of the DOM (Document Object Model) specifications.<br />
The nodes themselves are part of a class hierarchy rooted at<br />
<code>nsINode</code>; different derived classes are used for things such<br />
as text nodes, the document itself, HTML elements, SVG elements, etc.,<br />
with further subclasses of many of these types (e.g., for specific HTML<br />
elements). Many of the APIs available to script running in Web pages<br />
are associated with these nodes. The tree structure persists while the<br />
Web pages is displayed, since it stores much of state associated with<br />
the Web page. The code for these nodes lives in the content/ directory.<br />
<br />
The DOM APIs are not threadsafe. DOM nodes can be accessed only from<br />
the main thread (also known as the UI thread (user interface thread)) of<br />
the application.<br />
<br />
There are also many other APIs available to Web pages that are not APIs<br />
on the nodes in the DOM tree. Many of these other APIs also live in the<br />
same directories, though some live in content/ and some in dom/. These<br />
include APIs such as the DOM event model.<br />
<br />
The dom/ directory also includes some of the code needed to expose Web<br />
APIs to JavaScript (in other words, the glue code between JavaScript and<br />
these APIs). For an overview, see [https://ask.mozilla.org/question/390/how-is-the-web-exposed-dom-implemented/ DOM API Implementation]. See [[#Scripting|Scripting]] below for details of the JS engine.<br />
<br />
TODO: Internal APIs vs. DOM APIs.<br />
<br />
TODO: Mutation observers / document observers.<br />
<br />
TODO: Reference counting and cycle collection.<br />
<br />
TODO: specification links<br />
<br />
=== Style System ===<br />
<br />
==== Quantum CSS (Stylo) ====<br />
<br />
Starting with Firefox 57 and later, Gecko makes use of the parallel style system written in Rust that comes from Servo. There's an [https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/ overview] of this with graphics to help explain what's going on. The [https://github.com/servo/servo/wiki/Layout-Overview Servo wiki] has some more details.<br />
<br />
==== Gecko ====<br />
<br />
The rest of the style section section describes the Gecko style system used in Firefox 56 and earlier. Some bits may still apply, but it likely needs revising.<br />
<br />
In order to display the content, Gecko needs to compute the styles<br />
relevant to each DOM node. It does this based on the model described in<br />
the CSS specifications: this model applies to style specified in CSS<br />
(e.g. by a 'style' element, an 'xml-stylesheet' processing instruction<br />
or a 'style' attribute),<br />
style specified by presentation attributes, and the default style<br />
specified by our own user agent style sheets. There are two major<br />
sets of data structures within the style system:<br />
* first, data structures that represent sources of style data, such as CSS style sheets or data from stylistic HTML attributes<br />
* second, data structures that represent computed style for a given DOM node.<br />
These sets of data structures are mostly distinct (for example, they<br />
store values in different ways).<br />
<br />
The loading of CSS style sheets from the network is managed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/Loader.h CSS loader]; <br />
they are then tokenized by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSScanner.h CSS scanner] <br />
and parsed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSParser.h CSS parser]. <br />
Those that are attached to the document also expose APIs to<br />
script that are known as the CSS Object Model, or CSSOM.<br />
<br />
The style sheets that apply to a document are managed by a class called<br />
the [https://dxr.mozilla.org/mozilla-central/source/layout/style/nsStyleSet.h style set].<br />
The style set interacts with the different types of<br />
style sheets (representing CSS style sheets, presentational<br />
attributes, and 'style' attributes) through two interfaces:<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleSheet.h nsIStyleSheet] for basic management of style sheets and<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRuleProcessor.h nsIStyleRuleProcessor] for getting the style data out of them. Usually<br />
the same object implements both interfaces, except in the most important<br />
case, CSS style sheets, where there is a single rule processor for all<br />
of the CSS style sheets in each origin (user/UA/author) of the CSS cascade.<br />
<br />
The computed style data for an element/frame are exposed to the rest of<br />
Gecko through the class mozilla::ComputedStyle (previously called<br />
nsStyleContext). Rather than having a member variable for each<br />
CSS property, it breaks up the properties into groups of related<br />
properties called style structs. These style structs obey the rule that<br />
all of the properties in a single struct either inherit by default (what<br />
the CSS specifications call "Inherited: yes" in the definition of<br />
properties; we call these inherited structs) or all are not inherited by<br />
default (we call these reset structs). Separating the properties in<br />
this way improves the ability to share the structs between similar<br />
ComputedStyle objects and reduce the amount of memory needed to store<br />
the style data. The ComputedStyle API exposes a method for getting each<br />
struct, so you'll see code like<br />
<code>sc->GetStyleText()->mTextAlign</code> for getting the value of the<br />
text-align CSS property. (Frames (see the Layout section below) also<br />
have the same<br />
GetStyle* methods, which just forward the call to the frame's<br />
ComputedStyle.)<br />
<br />
The ComputedStyles form a tree structure, in a shape somewhat like the<br />
content tree (except that we coalesce identical sibling ComputedStyles<br />
rather than keeping two of them around; if the parents have been<br />
coalesced then this can apply recursively and coalasce cousins, etc.;<br />
we do not coalesce parent/child ComputedStyles).<br />
The parent of a ComputedStyle has the style data that the ComputedStyle<br />
inherits from when CSS inheritance occurs. This means that the parent<br />
of the ComputedStyle for a DOM element is generally the ComputedStyle<br />
for that DOM element's parent, since that's how CSS says inheritance<br />
works.<br />
<br />
The process of turning the style sheets into computed style data goes<br />
through three main steps, the first two of which closely relate to the<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRule.h nsIStyleRule] interface, which represents an immutable source of style<br />
data, conceptually representing (and for CSS style rules, directly<br />
storing) a set of property:value pairs. (It is similar to the idea of a<br />
CSS style rule, except that it is immutable; this immutability allows<br />
for significant optimization. When a CSS style rule is changed through<br />
script, we create a new style rule.)<br />
<br />
The first step of going from style sheets to computed style data is<br />
finding the ordered sequence of style rules that apply to an element.<br />
The order represents which rules override which other rules: if two<br />
rules have a value for the same property, the higher ranking one wins.<br />
(Note that there's another difference from CSS style rules: declarations<br />
with !important are represented using a separate style rule.) This is<br />
done by calling one of the nsIStyleRuleProcessor::RulesMatching methods.<br />
The ordered sequence is stored in a<br />
[http://en.wikipedia.org/wiki/Trie trie] called the rule tree: the path<br />
from the root of the rule tree to any (leaf or non-leaf) node in the<br />
rule tree represents a sequence of rules, with the highest ranking<br />
farthest from the root. Each rule node (except for the root) has a<br />
pointer to a rule, but since a rule may appear in many sequences, there<br />
are sometimes many rule nodes pointing to the same rule. Once we have<br />
this list we create a ComputedStyle (or find an appropriate existing<br />
sibling) with the correct parent pointer (for inheritance) and rule node<br />
pointer (for the list of rules), and a few other pieces of information<br />
(like the pseudo-element).<br />
<br />
The second step of going from style sheets to computed style data is<br />
getting the winning property:value pairs from the rules. (This only<br />
provides property:value pairs for some of the properties; the remaining<br />
properties will fall back to inheritance or to their initial values<br />
depending on whether the property is inherited by default.) We do this<br />
step (and the third) for each style struct, the first time it is needed.<br />
This is done in nsRuleNode::WalkRuleTree, where we ask each style rule<br />
to fill in its property:value pairs by calling its MapRuleInfoInto<br />
function. When called, the rule fills in only those pairs that haven't<br />
been filled in already, since we're calling from the highest priority<br />
rule to the lowest (since in many cases this allows us to stop before<br />
going through the whole list, or to do partial computation that just<br />
adds to data cached higher in the rule tree).<br />
<br />
The third step of going from style sheets to computed style data (which<br />
various caching optimizations allow us to skip in many cases) is<br />
actually doing the computation; this generally means we transform the<br />
style data into the data type described in the "Computed Value" line in<br />
the property's definition in the CSS specifications. This<br />
transformation happens in functions called nsRuleNode::Compute*Data,<br />
where the * in the middle represents the name of the style struct. This<br />
is where the transformation from the style sheet value storage format to<br />
the computed value storage format happens.<br />
<br />
Once we have the computed style data, we then store it: if a style struct<br />
in the computed style data doesn't<br />
depend on inherited values or on data from other style structs, then we<br />
can cache it in the rule tree (and then reuse it, without recomputing<br />
it, for any ComputedStyles pointing to that rule node). Otherwise, we<br />
store it on the ComputedStyle (in which case it may be shared<br />
with the ComputedStyle's descendant ComputedStyles).<br />
This is where keeping inherited and<br />
non-inherited properties separate is useful: in the common case of<br />
relatively few properties being specified, we can generally cache the<br />
non-inherited structs in the rule tree, and we can generally share the<br />
inherited structs up and down the ComputedStyle tree.<br />
<br />
The ownership models in style sheet structures are a mix of reference<br />
counted structures (for things accessible from script) and directly<br />
owned structures. ComputedStyles are reference counted, and own their<br />
parents (from which they inherit), and rule nodes are garbage collected<br />
with a simple mark and sweep collector (which often never needs to run).<br />
<br />
* code: [http://dxr.mozilla.org/mozilla-central/source/layout/style/ layout/style/], where most files have useful one line descriptions at the top that show up in DXR<br />
* Bugzilla: Style System (CSS)<br />
* specifications<br />
** [http://www.w3.org/TR/CSS21/ CSS 2.1]<br />
** [http://www.w3.org/TR/css-2010/ CSS 2010, listing stable css3 modules]<br />
** [http://dev.w3.org/csswg/ CSS WG editors drafts] (often more current, but sometimes more unstable than the drafts on the technical reports page)<br />
** [http://dbaron.org/mozilla/visited-privacy Preventing attacks on a user's history through CSS :visited selectors]<br />
* documentation<br />
** [http://www-archive.mozilla.org/newlayout/doc/style-system.html style system documentation] (somewhat out of date)<br />
<br />
=== Layout ===<br />
<br />
Much of the layout code deals with operations on the frame tree (or<br />
rendering tree). In the frame tree, each node represents a rectangle<br />
(or, for SVG, other shapes). The frame tree has a shape similar to the<br />
content tree, since many content nodes have one corresponding frame,<br />
though it differs in a few ways, since some content nodes have more than<br />
one frame or don't have any frames at all. When elements are<br />
display:none in CSS or undisplayed for certain other reasons, they won't<br />
have any frames. When elements are broken across lines or pages, they<br />
have multiple frames; elements may also have multiple frames when<br />
multiple frames nested inside each other are needed to display a single<br />
element (for example, a table, a table cell, or many types of form<br />
controls).<br />
<br />
Each node in the frame tree is an instance of a class derived from<br />
<code>nsIFrame</code>. As with the content tree, there is a substantial<br />
type hierarchy, but the type hierarchy is very different: it includes<br />
types like text frames, blocks and inlines, the various parts of tables,<br />
flex and grid containers, and the various types of HTML form controls.<br />
<br />
Frames are allocated within an arena owned by the PresShell. Each<br />
frame is owned by its parent; frames are not reference counted, and code<br />
must not hold on to pointers to frames. To mitigate potential security<br />
bugs when pointers to destroyed frames, we use<br />
[http://robert.ocallahan.org/2010/10/mitigating-dangling-pointer-bugs-using_15.html frame poisoning], which takes two parts. When a frame is destroyed<br />
other than at the end of life of the presentation, we fill its memory<br />
with a pattern consisting of a repeated pointer to inaccessible memory,<br />
and then put the memory on a per-frame-class freelist. This means that<br />
if code accesses the memory through a dangling pointer, it will either<br />
crash quickly by dereferencing the poison pattern or it will find a<br />
valid frame.<br />
<br />
Like the content tree, frames must be accessed only from the UI thread.<br />
<br />
The frame tree should not store any important data, i.e. any data that cannot<br />
be recomputed on-the-fly. While the frame tree does<br />
usually persist while a page is being displayed, frames are often<br />
destroyed and recreated in response to certain style changes, and in the<br />
future we may do the same to reduce memory use for pages that are<br />
currently inactive. There were a number of cases where this rule was<br />
violated in the past and we stored important data in the frame tree;<br />
however, most (though not quite all) such cases are now fixed.<br />
<br />
The rectangle represented by the frame is what CSS calls the element's<br />
border box. This is the outside edge of the border (or the inside edge<br />
of the margin). The margin lives outside the border; and the padding<br />
lives inside the border. In addition to nsIFrame::GetRect, we also have<br />
the APIs nsIFrame::GetPaddingRect to get the padding box (the outside<br />
edge of the padding, or inside edge of the border) and<br />
nsIFrame::GetContentRect to get the content box (the outside edge of the<br />
content, or inside edge of the padding). These APIs may produce out of<br />
date results when reflow is needed (or has not yet occurred).<br />
<br />
In addition to tracking a rectangle, frames also track two overflow<br />
areas: ink overflow and scrollable overflow. These overflow areas<br />
represent the union of the area needed by the frame and by all its<br />
descendants. The ink overflow is used for painting-related<br />
optimizations: it is a rectangle covering all of the area that might be<br />
painted when the frame and all of its descendants paint. The scrollable<br />
overflow represents the area that the user should be able to scroll to<br />
to see the frame and all of its descendants. In some cases differences<br />
between the frame's rect and its overflow happen because of descendants<br />
that stick out of the frame; in other cases they occur because of some<br />
characteristic of the frame itself. The two overflow areas are<br />
similar, but there are differences: for example, margins are part of<br />
scrollable overflow but not ink overflow, whereas text-shadows are<br />
part of ink overflow but not scrollable overflow.<br />
<br />
When frames are broken across lines, columns, or pages, we create<br />
multiple frames representing the multiple rectangles of the element.<br />
The first one is the primary frame, and the rest are its continuations<br />
(which are more likely to be destroyed and recreated during reflow).<br />
These frames are linked together as continuations: they have a<br />
doubly-linked list that can be used to traverse the continuations using<br />
nsIFrame::GetPrevContinuation and nsIFrame::GetNextContinuation.<br />
(Currently continuations always have the same style data, though we may<br />
at some point want to break that invariant.)<br />
<br />
Continuations are sometimes siblings of each other (i.e.<br />
nsIFrame::GetNextContinuation and nsIFrame::GetNextSibling might return<br />
the same frame), and sometimes not.<br />
For example, if a paragraph contains a span which contains a link, and<br />
the link is split across lines, then the continuations of the span are<br />
siblings (since they are both children of the paragraph), but the<br />
continuations of the link are not siblings (since each continuation of<br />
the link is descended from a different continuation of the span).<br />
Traversing the entire frame tree does '''not''' require explicit traversal<br />
of any frames' continuations-list, since all of the continuations are<br />
descendants of the element containing the break.<br />
<br />
We also use continuations for cases (most importantly, bidi reordering,<br />
where left-to-right text and right-to-left text need to be separated<br />
into different continuations since they may not form a contiguous<br />
rectangle) where the continuations should not be rewrapped during<br />
reflow: we call these continuations fixed rather than fluid.<br />
nsIFrame::GetNextInFlow and nsIFrame::GetPrevInFlow traverse only the<br />
fluid continuations and do not cross fixed continuation boundaries.<br />
<br />
If an inline frame has non-inline children, then we split the original <br />
inline frame into parts. The original inline's children are <br />
distributed into these parts like so: The children of the original <br />
inline are grouped into runs of inline and non-inline, and runs of <br />
inline get an inline parent, while runs of non-inline get an anonymous <br />
block parent. We call this 'ib-splitting' or 'block-inside-inline splitting'. <br />
This splitting proceeds recursively up the frame tree until all <br />
non-inlines inside inlines are ancestors of a block frame with anonymous <br />
block wrappers in between. This splitting maintains the relative order<br />
between these child frames, and the relationship between the parts of a <br />
split inline is maintained using an ib-sibling chain. It is important <br />
to note that any wrappers created during frame construction (such as <br />
for tables) might not be included in the ib-sibling chain depending on <br />
when this wrapper creation takes place. <br />
<br />
TODO: nsBox craziness from https://bugzilla.mozilla.org/show_bug.cgi?id=524925#c64<br />
<br />
TODO: link to documentation of block and inline layout<br />
<br />
TODO: link to documentation of scrollframes<br />
<br />
TODO: link to documentation of XUL frame classes<br />
<br />
Code (note that most files in base and generic have useful one line descriptions at the top that show up in DXR):<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/base/ layout/base/] contains objects that coordinate everything and a bunch of other miscellaneous things<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/generic/ layout/generic/] contains the basic frame classes as well as support code for their reflow methods (ReflowInput, ReflowOutput)<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/forms/ layout/forms/] contains frame classes for HTML form controls<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/tables/ layout/tables/] contains frame classes for CSS/HTML tables<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/mathml/ layout/mathml/] contains frame classes for MathML<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/svg/ layout/svg/] contains frame classes for SVG<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/xul/ layout/xul/] contains frame classes for the XUL box model and for various XUL widgets<br />
<br />
Bugzilla:<br />
* All of the components whose names begin with "Layout" in the "Core" product<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bz-layout-and-styles/ Layout and Styles] (Boris Zbarsky, 2014-10-14)<br />
<br />
<br />
==== Frame Construction ====<br />
<br />
Frame construction is the process of creating frames. This is done when styles change in ways that require frames to be created or recreated or when nodes are inserted into the document. The content tree and the frame tree don't have quite the same shape, and the frame construction process does some of the work of creating the right shape for the frame tree. It handles the aspects of creating the right shape that don't depend on layout information. So for example, frame construction handles the work needed to implement [http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes table anonymous objects] but does not handle frames that need to be created when an element is broken across lines or pages.<br />
<br />
The basic unit of frame construction is a run of contiguous children of a single parent element. When asked to construct frames for such a run of children, the frame constructor first determines, based on the siblings and parent of the nodes involved, where in the frame tree the new frames should be inserted. Then the frame constructor walks through the list of content nodes involved and for each one creates a temporary data structure called a '''frame construction item'''. The frame construction item encapsulates various information needed to create the frames for the content node: its style data, some metadata about how one would create a frame for this node based on its namespace, tag name, and styles, and some data about what sort of frame will be created. This list of frame construction items is then analyzed to see whether constructing frames based on it and inserting them at the chosen insertion point will produce a valid frame tree. If it will not, the frame constructor either fixes up the list of frame construction items so that the resulting frame tree would be valid or throws away the list of frame construction items and requests the destruction and re-creation of the frame for the parent element so that it has a chance to create a list of frame construction items that it <em>can</em> fix up.<br />
<br />
Once the frame constructor has a list of frame construction items and an insertion point that would lead to a valid frame tree, it goes ahead and creates frames based on those items. Creation of a non-leaf frame recursively attempts to create frames for the children of that frame's element, so in effect frames are created in a depth-first traversal of the content tree.<br />
<br />
The vast majority of the code in the frame constructor, therefore, falls into one of these categories:<br />
* Code to determine the correct insertion point in the frame tree for new frames.<br />
* Code to create, for a given content node, frame construction items. This involves some searches through static data tables for metadata about the frame to be created.<br />
* Code to analyze the list of frame construction items.<br />
* Code to fix up the list of frame construction items.<br />
* Code to create frames from frame construction items.<br />
<br />
Code: [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.h layout/base/nsCSSFrameConstructor.h] and [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp layout/base/nsCSSFrameConstructor.cpp]<br />
<br />
==== Reflow ====<br />
<br />
Reflow is the process of computing the positions and sizes of frames. (After all,<br />
frames represent rectangles, and at some point we need to figure out<br />
exactly *what* rectangle.) Reflow is done recursively, with each<br />
frame's Reflow method calling the Reflow methods on that frame's<br />
descendants.<br />
<br />
In many cases, the correct results are defined by CSS specifications<br />
(particularly [http://www.w3.org/TR/CSS21/visudet.html CSS 2.1]). In some cases, the details are not defined by<br />
CSS, though in some (but not all) of those cases we are constrained by<br />
Web compatibility. When the details are defined by CSS, however, the<br />
code to compute the layout is generally structured somewhat differently<br />
from the way it is described in the CSS specifications, since the CSS<br />
specifications are generally written in terms of constraints, whereas<br />
our layout code consists of algorithms optimized for incremental<br />
recomputation.<br />
<br />
The reflow generally starts from the root of the frame tree, though some other<br />
types of frame can act as "reflow roots" and start a reflow from them<br />
(nsTextControlFrame is one example; see the<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_REFLOW_ROOT&redirect=true NS_FRAME_REFLOW_ROOT] frame state bit).<br />
Reflow roots must obey the invariant that a change inside one of their<br />
descendants never changes their rect or overflow areas (though currently<br />
scrollbars are reflow roots but don't quite obey this invariant).<br />
<br />
In many cases, we want to reflow a part of the frame tree, and we want<br />
this reflow to be efficient. For example, when content is added or<br />
removed from the document tree or when styles change, we want the amount<br />
of work we need to redo to be proportional to the amount of content. We<br />
also want to efficiently handle a series of changes to the same content.<br />
<br />
To do this, we maintain two bits on frames:<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_IS_DIRTY&redirect=true NS_FRAME_IS_DIRTY]<br />
indicates that a frame and all of its descendants require reflow.<br />
[https://searchfox.org/mozilla-central/search?q=symbol:E_%3CT_nsFrameState%3E_NS_FRAME_HAS_DIRTY_CHILDREN&redirect=true NS_FRAME_HAS_DIRTY_CHILDREN]<br />
indicates that a frame has a descendant that<br />
is dirty or has had a descendant removed (i.e., that it has a child that<br />
has NS_FRAME_IS_DIRTY or NS_FRAME_HAS_DIRTY_CHILDREN or it had a child<br />
removed). These bits allow coalescing of multiple updates; this<br />
coalescing is done in PresShell, which tracks the set of reflow roots<br />
that require reflow. The bits are set during calls to<br />
[https://searchfox.org/mozilla-central/search?q=PresShell%3A%3AFrameNeedsReflow&path= PresShell::FrameNeedsReflow]<br />
and are cleared during reflow.<br />
<br />
The layout algorithms used by many of the frame classes are those<br />
specified in CSS, which are based on the traditional document formatting<br />
model, where widths are input and heights are output.<br />
<br />
In some cases, however, widths need to be determined based on the<br />
content. This depends on two ''intrinsic widths'': the minimum<br />
intrinsic width (see [http://dxr.mozilla.org/search?q=type%3AnsIFrame%20function%3AGetMinWidth&tree=mozilla-central nsIFrame::GetMinWidth]) and the preferred intrinsic<br />
width (see [http://dxr.mozilla.org/search?q=type%3AnsIFrame%20function%3AGetPrefWidth&tree=mozilla-central nsIFrame::GetPrefWidth]). The concept of what these widths<br />
represent is best explained by describing what they are on a paragraph<br />
containing only text: in such a paragraph the minimum intrinsic width<br />
is the width of the longest word, and the preferred intrinsic width is<br />
the width of the entire paragraph laid out on one line.<br />
<br />
Intrinsic widths are invalidated separately from the dirty bits<br />
described above. When a caller informs the pres shell that a frame<br />
needs reflow (nsIPresShell::FrameNeedsReflow), it passes one of three<br />
options:<br />
* eResize indicates that no intrinsic widths are dirty<br />
* eTreeChange indicates that intrinsic widths on it and its ancestors are dirty (which happens, for example, if new children are added to it)<br />
* eStyleChange indicates that intrinsic widths on it, its ancestors, and its descendants are dirty (for example, if the font-size changes)<br />
<br />
Reflow is the area where the XUL frame classes (those that inherit from<br />
nsBoxFrame or nsLeafBoxFrame) are most different from the rest. Instead<br />
of using nsIFrame::Reflow, they do their layout computations using<br />
intrinsic size methods called GetMinSize, GetPrefSize, and GetMaxSize<br />
(which report intrinsic sizes in two dimensions) and a final layout<br />
method called Layout. In many cases these methods defer some of the<br />
computation to a separate object called a layout manager.<br />
<br />
When an individual frame's Reflow method is called, most of the input is<br />
provided on an object called ReflowInput and the output is filled<br />
in to an object called ReflowOutput. After reflow, the caller<br />
(usually the parent) is responsible for setting the frame's size based<br />
on the metrics reported. (This can make some computations during reflow<br />
difficult, since the new size is found in either the reflow state or the<br />
metrics, but the frame's size is still the old size. However, it's<br />
useful for invalidating the correct areas that need to be repainted.)<br />
<br />
One major difference worth noting is that in XUL layout, the size of the<br />
child is set prior to its parent calling its Layout method. (Once<br />
invalidation uses display lists and is no longer tangled up in Reflow,<br />
it may be worth switching non-XUL layout to work this way as well.)<br />
<br />
==== Painting ====<br />
<br />
TODO: display lists (and event handling)<br />
<br />
TODO: layers<br />
<br />
==== Pagination ====<br />
<br />
The concepts behind pagination (also known as fragmentation) are a bit complicated, so for now we've split them off into a separate document: [[Gecko:Continuation_Model]]. This code is used for printing, print-preview, and multicolumn frames.<br />
<br />
=== Dynamic change handling along the rendering pipeline ===<br />
<br />
The ability to make changes to the DOM from script is a major feature of the Web platform. Web authors rely on the concept (though there are a few exceptions, such as animations) that changing the DOM from script leads to the same rendering that would have resulted from starting from that DOM tree. They also rely on the performance characteristics of these changes: small changes to the DOM that have small effects should have proportionally small processing time. This means that Gecko needs to efficiently propagate changes from the content tree to style, the frame tree, the geometry of the frame tree, and the screen.<br />
<br />
For many types of changes, however, there is substantial overhead to processing a change, no matter how small. For example, reflow must propagate from the top of the frame tree down to the frames that are dirty, no matter how small the change. One very common way around this is to batch up changes. We batch up changes in lots of ways, for example:<br />
* The content sink adds multiple nodes to the DOM tree before notifying listeners that they've been added. This allows notifying once about an ancestor rather than for each of its descendants, or notifying about a group of descendants all at once, which speeds up the processing of those notifications.<br />
* We batch up nodes that require style reresolution (recomputation of selector matching and processing the resulting style changes). This batching is tree based, so it not only merges multiple notifications on the same element, but also merges a notification on an ancestor with a notification on its descendant (since ''some'' of these notifications imply that style reresolution is required on all descendants).<br />
* We wait to reconstruct frames that require reconstruction (after destroying frames eagerly). This, like the tree-based style reresolution batching, avoids duplication both for same-element notifications and ancestor-descendant notifications, even though it doesn't actually do any tree-based caching.<br />
* We postpone doing reflows until needed. As for style reresolution, this maintains tree-based dirty bits (see the description of NS_FRAME_IS_DIRTY and NS_FRAME_HAS_DIRTY_CHILDREN under Reflow).<br />
* We allow the OS to queue up multiple invalidates before repainting (though we will likely switch to controlling that ourselves). This leads to a single repaint of some set of pixels where there might otherwise have been multiple (though it may also lead to more pixels being repainted if multiple rectangles are merged to a single one).<br />
<br />
Having changes buffered up means, however, that various pieces of information (layout, style, etc.) may not be up-to-date. Some things require up-to-date information: for example, we don't want to expose the details of our buffering to Web page script since the programming model of Web page script assumes that DOM changes take effect "immediately", i.e., that the script shouldn't be able to detect any buffering. Many Web pages depend on this.<br />
<br />
We therefore have ways to flush these different sorts of buffers. There are methods called FlushPendingNotifications on nsIDocument and nsIPresShell, that take an argument of what things to flush:<br />
* Flush_Content: create all the content nodes from data buffered in the parser<br />
* Flush_ContentAndNotify: the above, plus notify document observers about the creation of all nodes created so far<br />
* Flush_Style: the above, plus make sure style data are up-to-date<br />
* Flush_Frames: the above, plus make sure all frame construction has happened (currently the same as Flush_Style)<br />
* Flush_InterruptibleLayout: the above, plus perform layout (Reflow), but allow interrupting layout if it takes too long<br />
* Flush_Layout: the above, plus ensure layout (Reflow) runs to completion<br />
* Flush_Display (should never be used): the above, plus ensure repainting happens<br />
<br />
The major way that notifications of changes propagate from the content code to layout and other areas of code is through the nsIDocumentObserver and nsIMutationObserver interfaces. Classes can implement this interface to listen to notifications of changes for an entire document or for a subtree of the content tree.<br />
<br />
WRITE ME: ... layout document observer implementations<br />
<br />
TODO: how style system optimizes away rerunning selector matching<br />
<br />
TODO: style changes and nsChangeHint<br />
<br />
=== Refresh driver ===<br />
<br />
== Graphics ==<br />
[https://wiki.mozilla.org/Platform/GFX Wiki page] | [https://wiki.mozilla.org/index.php?title=Platform/GFX/Contribute contribute]<br />
<br />
Further documentation:<br />
* Jargon: [https://wiki.mozilla.org/Platform/GFX/Jargon Helpful list] of terms used in Graphics<br />
* Talk: [https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E271782 2018 SF All-Hands Graphics Overview] (nical/mattwoodrow/gw) <br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bjacob-gfx-overview/ An overview of Gecko's graphics stack] (Benoit Jacob, 2014-08-12)<br />
* Talk: [https://air.mozilla.org/jeff-muizelaar-2d-graphics/ 2D Graphics] (Jeff Muizelaar, 2014-10-14)<br />
* Blog: Mozilla gfx blog's [https://mozillagfx.wordpress.com/category/technical/ "technical" tag].<br />
* Blog: WebRender/gfx [https://mozillagfx.wordpress.com/category/wr-newsletter/ newsletter].<br />
<br />
==== WebRender vs Layers ====<br />
Currently there are two different rendering paths in Gecko. The new one is WebRender.<br />
"Layers" is the name of the previous / non-webrender architecture. <br />
<br />
Here's a very high level summary of how it works: [https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/]<br />
<br />
From a high level architectural point of view, the main differences are:<br />
* Layers separate rendering into a painting phase and a compositing phase which usually happen in separate processes. For WebRender, on the other hand, all of the rendering happens in a single operation.<br />
* Layers internally expresses rendering rendering commands through a traditional canvas-like immediate mode abstraction (Moz2D) which has several backends (some of which use the GPU). WebRender works directly at a lower and GPU-centric level, dealing in terms of batches, draw calls and shaders.<br />
* Layers code is entirely C++, while WebRender is mostly Rust with some integration glue in C++.<br />
<br />
==== WebRender ====<br />
<br />
* WebRender's main entry point is a display list. It is a description of a visible subset of the page produced by the layout module.<br />
* WebRender and Gecko's display list representations are currently different so there is a translation between the two.<br />
* The WebRender display list is serialized on the content process and sent to the process that will do the rendering (either the main process or the GPU process).<br />
* The rendering process deserializes the display list and builds a "Scene".<br />
* From this scene, frames can be built. Frames represent the actual drawing operations that need to be performed for content to appear on screen. A single scene can produce several frames, for example if an element of the scene is scrolled.<br />
* The Renderer consumes the frame and produces actual OpenGL drawing commands. Currently WebRender is based on OpenGL and on Windows the OpenGL commands are transparently turned into D3D ones using ANGLE. In the long run we plan to work with a vulkan-like abstraction called gfx-rs.<br />
<br />
The main phases in WebRender are therefore:<br />
* Display list building<br />
* Scene building<br />
* frame building<br />
* GPU commands execution<br />
<br />
All of these phases are performed on different threads. The first two happen whenever the layout of the page changes or the user scrolls past the part of the page covered by the current scene. They don't necessarily happen at a high frequency. Frame building and GPU command execution, on the other hand, happen at a high frequency (the monitor's refresh rate during scrolling and animations), which means that they must fit in the frame budget (typically 16ms). In order to avoid going over the frame budget, frame building and GPU command execution can overlap. scene building and frame building can also overlap and it is possible to continue generating frames while a new scene is being built asynchronously.<br />
<br />
WebRender has a fallback mechanism called "Blob images" for content that it does not handle (for example some SVG drawing primitives). It consists in recording and serializing a list of drawing commands (the "blob") on the content process and sending it to WebRender along with the regular display list. Blobs are then turned into images on the CPU during the scene building phase. The most of WebRender treats blob images as regular images.<br />
<br />
Some important internal operations and data structures:<br />
* The clip-scroll tree (TODO)<br />
* The render task graph (TODO)<br />
* Culling: https://mozillagfx.wordpress.com/2018/11/08/webrender-culling/<br />
* Batching: https://mozillagfx.wordpress.com/2018/11/21/webrender-batching/<br />
* Picture-caching: https://mozillagfx.wordpress.com/2018/11/02/webrender-picture-caching/<br />
<br />
The WebRender code path reuses the layers IPC infrastructure for sharing textures between the content process and the renderer. For example The ImageBridge protocol described in the Compositing section is also used to transfer video frames when WebRender is enabled.<br />
Asynchronous Panning and Zooming (APZ) described in a later sections is also relevant to WebRender.<br />
<br />
==== Painting/Rasterizing (Layers aka Non-WebRender) ====<br />
<br />
[[File:Layers pipeline overview.png|650px|thumb|Layers pipeline overview]]<br />
<br />
Painting/rendering/rasterizing is the step where graphical primitives (such as a command to fill an [https://developer.mozilla.org/en-US/docs/Web/SVG SVG] circle, or the internally produced command to draw a rounded rectangle) are used to color in the pixels of a surface so that the surface "displays" those rasterized primitives.<br />
<br />
The platform independent library that gecko uses to render is [http://dxr.mozilla.org/mozilla-central/source/gfx/2d/2D.h Moz2D]. Gecko code paints into Moz2D DrawTarget objects (the DrawTarget base class having multiple platform dependent subclasses).<br />
<br />
==== Compositing ====<br />
<br />
The compositing stage of the rendering pipeline is operated by the [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ gfx/layers] module.<br />
<br />
Different parts of a web page can sometimes be painted into intermediate surfaces retained by layers. It can be convenient to think of layers as the layers in image manipulation programs like The Gimp or Photoshop. Layers are organized as a tree. Layers are primarily used to minimize invalidating and repainting when elements are being animated independently of one another in a way that can be optimized using layers (e.g. opacity or transform animations), and to enable some effects (such as transparency and 3D transforms).<br />
<br />
Compositing is the action of flattening the layers into the final image that is shown on the screen.<br />
<br />
We paint and composite on separate threads (it is called Off-main-thread compositing, or OMTC, and a long time ago Firefox did not have this separation).<br />
<br />
The Layers architecture is built on the following notions:<br />
* Compositor: an object that can draw quads on the screen (or on an off-screen render target).<br />
* Texture: an object that contains image data.<br />
* Compositable: an object that can manipulate one or several textures, and knows how to present them to the compositor<br />
* Layer: an element of the layer tree. A layer usually doesn't know much about compositing: it uses a compositable to do the work. Layers are mostly nodes of the layer tree.<br />
<br />
[[File:LayersRefactoring.png|thumb|650px|New layers architecture, with OGL backend]]<br />
<br />
Since painting and compositing are performed on different threads/processes, we need a mechanism to synchronize a client layer tree that is constructed on the content thread, and a host layer tree that is used for compositing on the compositor thread.<br />
This synchronization process must ensure that the host layer tree reflects the state of the current layer tree while remaining in a consistent state, and must transfer texture data from a thread to the other. Moreover, on some platforms the content and compositor threads may live in separate processes.<br />
<br />
To perform this synchronization, we use the IPDL IPC framework. IPDL lets us describe communications protocols and actors in a domain specific language. for more information about IPDL, read https://wiki.mozilla.org/IPDL<br />
<br />
When the client layer tree is modified, we record modifications into messages that are sent together to the host side within a transaction. A transaction is basically a list of modifications to the layer tree that have to be applied all at once to preserve consistency in the state of the host layer tree.<br />
<br />
Texture transfer is done by synchronizing texture objects across processes/threads using a couple TextureClient/TextureHost that wrap shared data and provide access to it on both sides. TextureHosts provide access to one or several TextureSource, which has the necessary API to actually composite the texture (TextureClient/Host being more about IPC synchronization than actual compositing.<br />
The logic behind texture transfer (as in single/double/triple buffering, texture tiling, etc) is operated by the CompositableClient and CompositableHost.<br />
<br />
It is important to understand the separation between layers and compositables. Compositables handle all the logic around texture transfer, while layers define the shape of the layer tree. a Compositable is created independently from a layer and attached to it on both sides. While layers transactions can only originate from the content thread, this separation makes it possible for us to have separate compositable transactions between any thread and the compositor thread. We use the ImageBridge IPDL protocol to that end. The Idea of ImageBridge is to create a Compositable that is manipulated on the ImageBridgeThread, and that can transfer/synchronize textures without using the content thread at all. This is very useful for smooth Video compositing: video frames are decoded and passed into the ImageBridge without ever touching the content thread, which could be busy processing reflows or heavy javascript workloads.<br />
<br />
It is worth reading the inline code documentation in the following files:<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Compositor.h gfx/layers/Compositor.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ShadowLayers.h gfx/layers/ShadowLayers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Layers.h gfx/layers/Layers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/host/TextureHost.h gfx/layers/host/TextureHost.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/CompositableClient.h gfx/layers/client/CompositableClient.h]<br />
<br />
To visualize how a web page is layered, turn on the pref "layers.draw-borders" in about:config. When this pref is on, the borders of layers and tiles are displayed on top of the content. This only works when using the Compositor API, that is when WebRender is disabled, since WebRender does not have the same concept of layers.<br />
<br />
Blog posts with information on Layers that should be integrated here:<br />
<br />
* [http://www.basschouten.com/blog1.php/layers-cross-platform-acceleration Layers: Cross-Platform Acceleration]<br />
* [http://robert.ocallahan.org/2010/04/layers_01.html Layers]<br />
* [http://robert.ocallahan.org/2010/07/retained-layers_16.html Retained Layers]<br />
* [http://chrislord.net/index.php/2011/07/25/shadow-layers-and-learning-by-failing/ Shadow Layers, and learning by failing]<br />
* [http://chrislord.net/index.php/2011/08/16/accelerated-layer-rendering-and-learning-by-some-success/ Accelerated layer-rendering, and learning by (some) success]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/mask-layers_26.html Mask Layers]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/building-mask-layer.html Building a mask layer]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/06/mask-layers-on-direct3d-backends.html Mask Layers on the Direct3D backends]<br />
* [http://robert.ocallahan.org/2011/09/graphics-api-design.html Graphics API Design]<br />
<br />
==== Async Panning and Zooming ====<br />
<br />
On some of our mobile platforms we have some code that allows the user to do asynchronous (i.e. off-main-thread) panning and zooming of content. This code is the Async Pan/Zoom module (APZ) code and is further documented at [[Platform/GFX/APZ]].<br />
<br />
== Scripting ==<br />
<br />
=== JavaScript Engine ===<br />
<br />
Gecko embeds the SpiderMonkey JavaScript engine (located in js/src). The JS engine includes a number of Just-In-Time compilers (or JITs). SpiderMonkey provides a powerful and extensive embedding API (called the JSAPI). Because of its complexity, using the JSAPI directly is frowned upon, and a number of abstractions have been built in Gecko to allow interacting with the JS engine without using JSAPI directly. Some JSAPI concepts are important for Gecko developers to understand, and they are listed below:<br />
<br />
* Global object: The '''global object''' is the object on which all global variables/properties/methods live. In a web page this is the 'window' object. In other things such as XPCOM components or sandboxes XPConnect creates a global object with a small number of builtin APIs.<br />
* Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment.<br />
* When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information).<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/kannan-vijayan-baseline-jit/ Baseline JIT] (Kannan Vijayan, 2014-10-14)<br />
<br />
=== XPConnect ===<br />
<br />
'''XPConnect''' is a bridge between C++ and JS used by XPCOM components exposed to or implemented in JavaScript. XPConnect allows two XPCOM components to talk to each other without knowing or caring which language they are implemented in. XPConnect allows JS code to call XPCOM components by exposing XPCOM interfaces as JS objects, and mapping function calls and attributes from JS into virtual method calls on the underlying C++ object. It also allows JS code to implement an XPCOM component that can be called from C++ by faking the vtable of an interface and translating calls on the interface into JS calls. XPConnect accomplishes this using the vtable data stored in XPCOM TypeLibs (or XPT files) by the XPIDL compiler and a small layer of platform specific code called [https://developer.mozilla.org/en-US/docs/xptcall_FAQ xptcall] that knows how to interact with and impersonate vtables of XPCOM interfaces.<br />
<br />
XPConnect is also used for a small (and decreasing) number of legacy DOM objects. At one time all of the DOM used XPConnect to talk to JS, but we have been replacing XPConnect with the WebIDL bindings (see the next section for more information). Arbitrary XPCOM components are not exposed to web content. XPCOM components that want to be accessible to web content must provide class info (that is, they must QI to nsIClassInfo) and must be marked with the nsIClassInfo::DOM_OBJECT flag. Most of these objects also are listed in dom/base/nsDOMClassInfo.cpp, where the interfaces that should be visible to the web are enumerated. This file also houses some "scriptable helpers" (classes ending in "SH" and implementing nsIXPCScriptable), which are a set of optional hooks that can be used by XPConnect objects to implement more exotic behaviors (such as indexed getters or setters, lazily resolved properties, etc). This is all legacy code, and any new DOM code should use the WebIDL bindings.<br />
<br />
=== WebIDL Bindings ===<br />
<br />
The '''WebIDL bindings''' are a separate bridge between C++ and JS that is specifically designed for use by DOM code. We intend to replace all uses of XPConnect to interface with content JavaScript with the WebIDL bindings. [https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings Extensive documentation] on the WebIDL bindings is available, but the basic idea is that a binding generator takes WebIDL files from web standards and some configuration data provided by us and generates at build time C++ glue code that sits between the JS engine and the DOM object. This setup allows us to produce faster, more specialized code for better performance at the cost of increased codesize.<br />
<br />
The WebIDL bindings also implement all of the behavior specified in WebIDL, making it possible for new additions to the DOM to behave correctly "out of the box". The binding layer also provides C++ abstractions for types that would otherwise require direct JSAPI calls to handle, such as typed arrays.<br />
<br />
=== Reflectors ===<br />
Whether using [https://wiki.mozilla.org/Gecko:Overview#XPConnect XPConnect] or [https://wiki.mozilla.org/Gecko:Overview#WebIDL_Bindings Web IDL], the basic idea is that there is a JSObject called a '''reflector''' that represents some C++ object. The JSObject ensures that the C++ object remains alive while the JSObject is alive. The C++ object does ''not'' necessarily keep the JSObject alive; this allows the JSObject to be garbage-collected as needed. If this happens, the next time JS needs access to that C++ object a new reflector is created. If something happens that requires that the actual object identity of the JSObject be preserved even though it's not explicitly reachable, the C++ object will start keeping the JSObject alive as well. After this point, the cycle collector would be the only way for the pair of objects to be deallocated. Examples of operations that require identity-preservation are adding a property to the object, giving the object a non-default prototype, using the object as a weakmap key or weakset member.<br />
<br />
In the XPConnect case, reflectors are created by XPCWrappedNative::GetNewOrUsed. This finds the right JSClass to use for the object, depending on information provided by the C++ object via the nsIClassInfo interface about special class hooks it might need. If the C++ object has no clasinfo, XPC_WN_NoHelper_JSClass is used. GetNewOrUsed also determines the right global to use for the reflector, again based on nsIClassInfo information, with a fallback to the JSContext's current global.<br />
<br />
In the Web IDL case, reflectors are created by the Wrap method that the binding code generator spits out for the relevant Web IDL interface. So for the Document interface, the relevant method is mozilla::dom::Document_Binding::Wrap. The JSClass that is used is also created by the code generator, as part of the DOMJSClass struct it outputs. Web IDL objects provide a GetParentObject() method that is used to determine the right global to use for the reflector.<br />
<br />
Web IDL objects typically inherit from nsWrapperCache, and use that class to store a pointer to their reflector and to keep it alive as needed. The only exception to that is if the Web IDL object only needs to find a reflector once during its lifetime, typically as a result of a Web IDL constructor being called from JS (see TextEncoder for an example). In that case, there is no need to get the JS object from the C++ one, and no way to end up in any of the situations that require preserving the JS object from the C++ side, so the Web IDL object is allowed to not inherit from nsWrapperCache.<br />
<br />
=== Security ===<br />
<br />
Gecko's JS security model is based on the concept of compartments. Every compartment has a '''principal''' associated with it that contains security information such as the '''origin''' of the compartment, whether or not it has system privileges, etc. For the following discussion, '''wrappee''' refers to the underlying object being wrapped, '''scope''' refers to the compartment the object is being wrapped for use in, and '''wrapper''' refers to the object created in '''scope''' that allows it to interact with '''wrappee'''. "Chrome" refers to JS that is built in to the browser or part of an extension, which runs with full privileges, and is contrasted with "content", which is web provided script that is subject to security restrictions and the same origin policy.<br />
<br />
* Xray wrappers: Xray wrappers are used when the scope has chrome privileges and the wrappee is the JS reflection of an underlying DOM object. Beyond the usual CCW duties of making sure that content code does not run with chrome privileges, Xray wrappers also ensure that calling methods or accessing attributes on the wrappee has the "expected" effect. For example, a web page could replace the <code>close</code> method on its window with a JS function that does something completely different. (e.g. <code>window.close = function() { alert("This isn't what you wanted!") };</code>). Overwriting methods in this way (or creating entirely new ones) is referred to as '''expando''' properties. Xrays see through expando properties, invoking the original method/getter/setter if the expando overwrites a builtin or seeing undefined in the expando creates a new property. This allows chrome code to call methods on content DOM objects without worrying about how the page has changed the object.<br />
* Waived xray wrappers: The xray behavior is not always desirable. It is possible for chrome to "waive" the xray behavior and see the actual JS object. The wrapper still guarantees that code runs with the correct privileges, but methods/getters/setters may not behave as expected. This is equivalent to the behavior chrome sees when it looks at non-DOM content JS objects.<br />
* For more information, see the [https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Script_security MDN page]<br />
* bholley's [https://air.mozilla.org/enter-the-compartment/ Enter the Compartment] talk also provides an overview of our compartment architecture.<br />
<br />
== Images ==<br />
<br />
== Plugins ==<br />
<br />
== Platform-specific layers ==<br />
<br />
* widget<br />
* native theme<br />
* files, networking, other low-level things<br />
* Accessibility APIs<br />
* Input. Touch-input stuff is somewhat described at [[Platform/Input/Touch]].<br />
<br />
== Editor ==<br />
<br />
== Base layers ==<br />
<br />
=== NSPR ===<br />
<br />
NSPR is a library for providing cross-platform APIs for various<br />
platform-specific functions. We tend to be trying to use it as little<br />
as possible, although there are a number of areas (particularly some<br />
network-related APIs and threading/locking primitives) where we use it<br />
quite a bit.<br />
<br />
=== XPCOM ===<br />
<br />
XPCOM is a cross-platform modularity library, modeled on Microsoft COM. It<br />
is an object system in which all objects inherit from the <code>nsISupports</code> interface.<br />
<br />
components and services, contract IDs and CIDs<br />
<br />
prior overuse of XPCOM; littering with XPCOM does not produce modularity<br />
<br />
Base headers (part of xpcom/base/) and data structures. See also mfbt.<br />
<br />
Threading<br />
<br />
xptcall, proxies<br />
<br />
reference counting, cycle collection<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]<br />
<br />
=== String ===<br />
<br />
XPCOM has string classes for representing sequences of characters. Typical C++ string classes have the goals of encapsulating the memory management of buffers and the issues needed to avoid buffer overruns common in traditional C string handling. Mozilla's string classes have these goals, and also the goal of reducing copying of strings.<br />
<br />
(There is a second set of string classes in xpcom/glue for callers outside of libxul; these classes are partially source-compatible but have different (worse) performance characteristics. This discussion does not cover those classes.)<br />
<br />
We have two parallel sets of classes, one for strings with 1-byte units (<code>char</code>, which may be signed or unsigned), and one for strings with 2-byte units (<code>char16_t</code>, always unsigned). The classes are named such that the class for 2-byte characters ends with <code>String</code> and the corresponding class for 1-byte characters ends with <code>CString</code>. 2-byte strings are almost always used to encode [http://en.wikipedia.org/wiki/UTF-16 UTF-16]. 1-byte strings are usually used to encode either [http://en.wikipedia.org/wiki/ASCII ASCII] or [http://en.wikipedia.org/wiki/UTF-8 UTF-8], but are sometimes also used to hold data in some other encoding or just byte sequences.<br />
<br />
The string classes distinguish, as part of the type hierarchy, between strings that must have a null-terminator at the end of their buffer (<code>ns[C]String</code>) and strings that are not required to have a null-terminator (<code>ns[C]Substring</code>). <code>ns[C]Substring</code> is the base of the string classes (since it imposes fewer requirements) and <code>ns[C]String</code> is a class derived from it. Functions taking strings as parameters should generally take one of these four types.<br />
<br />
In order to avoid unnecessary copying of string data (which can have significant performance cost), the string classes support different ownership models. All string classes support the following three ownership models dynamically:<br />
* reference counted, copy-on-write, buffers (the default)<br />
* adopted buffers (a buffer that the string class owns, but is not reference counted, because it came from somewhere else)<br />
* dependent buffers, that is, an underlying buffer that the string class does not own, but that the caller that constructed the string guarantees will outlive the string instance<br />
In addition, there is a special string class, <code>nsAuto[C]String</code>, that ''additionally'' contains an internal 64-unit buffer (intended primarily for use on the stack), leading to a fourth ownership model:<br />
* storage within an auto string's stack buffer<br />
Auto strings will prefer reference counting an existing reference-counted buffer over their stack buffer, but will otherwise use their stack buffer for anything that will fit in it.<br />
<br />
There are a number of additional string classes, particularly <code>nsDependent[C]String</code>, <code>nsDependent[C]Substring</code>, and the <code>NS_LITERAL_[C]STRING</code> macros which construct an <code>nsLiteral[C]String</code> which exist primarily as constructors for the other types. These types are really just convenient notation for constructing an <code>ns[C]S[ubs]tring</code> with a non-default ownership mode; they should not be thought of as different types. (The <code>Substring</code>, <code>StringHead</code>, and <code>StringTail</code> functions are also constructors for dependent [sub]strings.) Non-default ownership modes can also be set up using the <code>Rebind</code> and <code>Adopt</code> methods, although the <code>Rebind</code> methods actually live on the derived types, which is probably a mistake (although moving them up would require some care to avoid making an API that easily allows assigning a non-null-terminated buffer to a string whose static type indicates that it is null-terminated).<br />
<br />
Note that the presence of all of these classes imposes some awkwardness in terms of distinctions being available as both static type distinctions and dynamic type distinctions. In general, the only distinctions that should be made statically are 1-byte vs. 2-byte sequences (<code>CString</code> vs <code>String</code>) and whether the buffer is null-terminated or not (<code>Substring</code> vs <code>String</code>). (Does the code actually do a good job of dynamically enforcing the <code>Substring</code> vs. <code>String</code> restriction?)<br />
<br />
TODO: buffer growth, concatenation optimizations<br />
<br />
TODO: encoding conversion, what's validated and what isn't<br />
<br />
TODO: "string API", nsAString (historical)<br />
<br />
* Code: xpcom/string/<br />
* Bugzilla: Core::String<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]</div>Dholberthttps://wiki.mozilla.org/index.php?title=Gecko:Overview&diff=1240903Gecko:Overview2022-03-01T18:29:40Z<p>Dholbert: /* Layout */ various terminology updates and clarifications.</p>
<hr />
<div>This document attempts to give an overview of the different parts of<br />
Gecko, what they do, and why they do it, say where the code for them is<br />
within the repository, and link to more specific documentation (when<br />
available) covering the details of that code. '''It is not yet complete.''' Maintainers of these<br />
areas of code should correct errors, add information, and add links to<br />
more detailed documentation (since this document is intended to remain<br />
an overview, not complete documentation).<br />
<br />
__TOC__<br />
<br />
== Browsers, Frames, and Document Navigation ==<br />
<br />
=== Docshell ===<br />
<br />
The user of a Web browser can change the page shown in that browser in<br />
many ways: by clicking a link, loading a new URL, using the forward and<br />
back buttons, or other ways. This can happen inside a space we'll call<br />
a '''browsing context'''; this space can be a browser window, a tab, or a frame<br />
or iframe within a document. The toplevel data structures within Gecko<br />
represent this browsing context; they contain other data structures<br />
representing the individual pages displayed inside of it (most<br />
importantly, the current one). In terms of implementation, these two<br />
types of navigation, the top level of a browser and the frames within<br />
it, largely use the same data structures.<br />
<br />
In Gecko, the '''docshell''' is the toplevel object responsible for<br />
managing a single browsing context. It, and the associated '''session history''' code, <br />
manage the navigation between pages inside of a<br />
docshell. (Note the difference between session history, which is a<br />
sequence of pages in a single browser session, used for recording information<br />
for back and forward navigation, and global history, which is the<br />
history of pages visited and associated times, regardless of browser<br />
session, used for things like link coloring and address autocompletion.)<br />
<br />
There are relatively few objects in Gecko that are associated with a<br />
docshell rather than being associated with a particular one of the pages<br />
inside of it. Most such objects are attached to the docshell. An important object associated with the docshell is the nsGlobalWindowOuter which is what the HTML5 spec refers to as a WindowProxy (into which Window objects, as implemented by nsGlobalWindowInner, are loaded). See the DOM section below for more information on<br />
this.<br />
<br />
The most toplevel object for managing the contents of a particular page<br />
being displayed within a docshell is a document viewer (see layout).<br />
Other important objects associated with this presentation are the<br />
document (see DOM) and the pres(entation) shell and pres(entation)<br />
context (see layout).<br />
<br />
[[File:WebNavigation.png|thumb|400px|<xul:browser>, frameloader and docshell in single process configuration]]<br />
<br />
Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In Gecko, a browsing context container would implement <code>[https://dxr.mozilla.org/mozilla-central/rev/f9a5e9ed62103c84e4cde915f4d08f1ce71be83e/dom/base/nsIFrameLoader.idl#271 nsIFrameLoaderOwner]</code> to hold a '''frameloader''', which holds and manages the docshell. <br />
<br />
One of the most interfaces docshell implemented is <code>[https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl nsIWebNavigation]</code>. It defines major functions of a browsing context, such as <code>loadURI</code> / <code>goBack</code> / <code>goForward</code> and <code>reload</code>. In single process configuration of desktop Firefox, <code><xul:browser></code> (which represents a tab) operates on docshell through <code>nsIWebNavigation</code>, as shown in the right figure.<br />
<br />
* code: mozilla/docshell/<br />
* bugzilla: Core::Document Navigation<br />
* documentation: [[DocShell:Home Page]]<br />
<br />
=== Session History ===<br />
<br />
In order to keep the session history of subframes after the root document is unloaded and docshells of subframes are destroyed, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change).<br />
<br />
As an example to explain the structure of session history implementation in Gecko, consider there's a tab A, which loads document 1; in document 1, there are iframe B & C, which loads document 2 & 3, respectively. Later, an user navigates iframe B to document 4. The following figures show the conceptual model of the example, and the corresponding session history structure.<br />
<br />
{| <br />
| [[File:BrowsingContextExample1.png|thumb|190px|Conceptual model representation; color denotes current visible active documents]]<br />
| [[File:SHistoryExample1.png|thumb|180px|Session history structure; color denotes current transaction / entries]]<br />
|}<br />
<br />
In Gecko, a [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHistory.h session history] object holds a list of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHTransaction.h transactions] (denoted as T1 & T2 in the figure); each transaction points to a tree of [https://dxr.mozilla.org/mozilla-central/source/docshell/shistory/nsSHEntry.h entries]; each entry records the docshell it associated to, and a URL. Now that if we navigate the tab to a different root document 5, which includes an iframe D with document 6, then it becomes:<br />
<br />
{| <br />
| [[File:BrowsingContextExample2.png|thumb|275px|Conceptual model representation]]<br />
| [[File:SHistoryExample2.png|thumb|250px|Session history structure]]<br />
|}<br />
<br />
=== Embedding ===<br />
<br />
To be written (and maybe rewritten if we get an IPC embedding API).<br />
<br />
[[File:WebNavigationE10S.png|thumb|500px|<xul:remote-browser>, frameloader and docshell in multiprocess configuration. The horizontal dash-lines represent inter-process communication]]<br />
<br />
=== Multi-process and IPC ===<br />
<br />
In a multi-process desktop Firefox, a tab is managed by <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/remote-browser.xml <xul:remote-browser>]</code>. It still operates on nsIWebNavigation, but in this case the docshell is in a remote process and can not be accessed directly. The encapsulation of remote nsIWebNavigation is done by the javascript-implemented <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/components/remotebrowserutils/RemoteWebNavigation.js RemoteWebNavigation]</code>.<br />
<br />
In this configuration, the frameloader of a root docshell lives in parent process, so it can not access docshell directly either. Instead, it holds a <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]</code> instance to interact with <code>[https://dxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]</code> in child-process. At C/C++ level, the communication across processes for a single tab is through the '''PBrowser''' IPC protocol implemented by TabParent and TabChild, while at the javascript level it's done by '''message manager''' (which is ontop of PBrowser). RemoteWebNavigation, for example, sends messages to <code>[https://dxr.mozilla.org/mozilla-central/source/toolkit/content/browser-child.js browser-child.js]</code> in content process through message manager.<br />
<br />
== Networking ==<br />
<br />
The network library Gecko uses is called Necko. Necko APIs are largely organized around three concepts: '''URI objects''', '''protocol handlers''', and '''channels'''.<br />
<br />
=== Protocol handlers ===<br />
A '''protocol handler''' is an XPCOM service associated with a particular URI scheme or network protocol. Necko includes protocol handlers for HTTP, FTP, the data: URI scheme, and various others. Extensions can implement protocol handlers of their own.<br />
<br />
A protocol handler implements the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl nsIProtocolHandler]</code> API, which serves three primary purposes:<br />
# Providing metadata about the protocol (its security characteristics, whether it requires actual network access, what the corresponding URI scheme is, what TCP port the protocol uses by default).<br />
# Creating URI objects for the protocol's scheme.<br />
# Creating channel objects for the protocol's URI objects<br />
<br />
Typically, the built-in I/O service (<code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService2.idl nsIIOService]</code>) is responsible for finding the right protocol handler for URI object creation and channel creation, while a variety of consumers queries protocol metadata. Querying protocol metadata is the recommended way to handle any sort of code that needs to have different behavior for different URI schemes. In particular, unlike whitelists or blacklists, it correctly handles the addition of new protocols.<br />
<br />
A service can register itself as a protocol handler by registering for the contract ID <code>"@mozilla.org/network/protocol;1?name=SSSSS"</code> where <code>SSSS</code> is the URI scheme for the protocol (e.g. "http", "ftp", and so forth).<br />
<br />
=== URI objects ===<br />
URI objects, which implement the <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURI.idl nsIURI]</code> API, are a way of representing URIs and IRIs. Their main advantage over strings is that they do basic syntax checking and canonicalization on the URI string that they're provided with. They also provide various accessors to extract particular parts of the URI and provide URI equality comparisons. URIs that correspond to hierarchical schemes implement the additional <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIURL.idl nsIURL]</code> interface, which exposes even more accessors for breaking out parts of the URI.<br />
<br />
URI objects are typically created by calling the <code>newURI</code> method on the I/O service, or in C++ by calling the <code>NS_NewURI</code> utility function. This makes sure to create the URI object using the right protocol handler, which ensures that the right kind of object is created. Direct creation of URIs via <code>createInstance</code> is reserved for protocol handler implementations.<br />
<br />
=== Channels ===<br />
[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIChannel.idl Channels] are the Necko representation of a single request/response interaction with a server. A channel is created by calling the <code>newChannel</code> method on the [https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIIOService.idl I/O service], or in C++ by calling the <code>[https://dxr.mozilla.org/mozilla-central/search?q=function%3ANS_NewChannel&case=true NS_NewChannel]</code> utility function. The channel can then be configured as needed, and finally its <code>asyncOpen</code> method can be called. This method takes an <code>[https://dxr.mozilla.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl nsIStreamListener]</code> as an argument.<br />
<br />
If <code>asyncOpen</code> has returned successfully, the channel guarantees that it will asynchronously call the <code>onStartRequest</code> and <code>onStopRequest</code> methods on its stream listener. This will happen even if there are network errors that prevent Necko from actually performing the requests. Such errors will be reported in the channel's status and in the <code>status</code> argument to <code>onStopRequest</code>.<br />
<br />
If the channel ends up being able to provide data, it will make one or more <code>onDataAvailable</code> on its listener after calling <code>onStartRequest</code> and before calling <code>onStopRequest</code>. For each call, the listener is responsible for either returning an error or reading the entire data stream passed in to the call.<br />
<br />
If an error is returned from either <code>onStartRequest</code> or <code>onDataAvailable</code>, the channel must act as if it has been canceled with the corresponding error code.<br />
<br />
A channel has two URI objects associated with it. The <code>originalURI</code> of the channel is the URI that was originally passed to <code>newChannel</code> to create the channel that then had <code>asyncOpen</code> called on it. The <code>URI</code> is the URI from which the channel is reading data. These can be different in various cases involving protocol handlers that forward network access to other protocol handlers, as well as in situations in which a redirect occurs (e.g. following an HTTP 3xx response). In redirect situations, a new channel object will be created, but the originalURI will be propagated from the old channel to the new channel.<br />
<br />
Note that the <code>nsIRequest</code> that's passed to onStartRequest must match the one passed to onDataAvailable and onStopRequest, but need not be the original channel that asyncOpen was called on. In particular, when an HTTP redirect happens the request argument to the callbacks will be the post-redirect channel.<br />
<br />
TODO: crypto?<br />
<br />
== Document rendering pipeline ==<br />
<br />
Some of the major components of Gecko can be described as steps on the<br />
path from an HTML document coming in from the network to the graphics<br />
commands needed to render that document. An HTML document is a<br />
serialization of a tree structure. (FIXME: add diagram) The HTML<br />
parser and content sink create an in-memory representation of this tree,<br />
which we call the '''DOM tree''' or '''content tree'''.<br />
Many JavaScript APIs operate on the content tree. Then, in<br />
layout, we create a second tree, the '''frame tree''' (or<br />
'''rendering tree''') that is a similar shape to the content tree,<br />
but where each node in the tree represents a rectangle (except in SVG<br />
where they represent other shapes). We then compute the positions of<br />
the nodes in the frame tree (called '''frames''') and paint them<br />
using our cross-platform graphics APIs (which, underneath, map to<br />
platform-specific graphics APIs).<br />
<br />
Further documentation:<br />
* Talk: Fast CSS: How Browsers Lay Out Web Pages (David Baron, 2012-03-11): [https://dbaron.org/talks/2012-03-11-sxsw/slide-1.xhtml slideshow], [https://dbaron.org/talks/2012-03-11-sxsw/master.xhtml all slides], [http://audio.sxsw.com/2012/podcasts/11-ACC-Fast_CSS_How_Browser_Layout.mp3 audio (MP3)], [https://schedule.sxsw.com/2012/events/event_IAP12909 session page]<br />
* Talk: Efficient CSS Animations (an updated version of the previous talk with a slightly different focus) (David Baron, 2014-06-04): [https://dbaron.org/talks/2014-06-04-cssday/slide-1.xhtml slideshow], [https://dbaron.org/talks/2014-06-04-cssday/master.xhtml all slides], [http://vimeo.com/channels/cssday/103108124 video]<br />
* Talk: [https://air.mozilla.org/benoit-girard-gecko-rendering/ Overview of the Gecko Rendering Pipeline] (Benoit Girard, 2014-10-14)<br />
<br />
=== Parser ===<br />
<br />
The parser's job is to transform a character stream into a tree<br />
structure, with the help of the content sink classes.<br />
<br />
HTML is parsed using a parser implementing the parsing algorithm in the<br />
HTML specification (starting with HTML5). Much of this parser is<br />
translated from Java, and changes are made to the Java version. This<br />
parser in parser/html/. The parser is driven by the output of the networking layer (see nsHtml5StreamParser::OnDataAvailable). The HTML5 parser is capable of parsing off the main thread which is the normal case. It also parses on the main thread to be able to synchronously handle things such as innerHTML modifications.<br />
<br />
The codebase still has the previous generation HTML parser, which is<br />
still used for a small number of things, though we hope to be able to<br />
remove it entirely soon. This parser is in parser/htmlparser/.<br />
<br />
XML is parsed using the expat library (parser/expat/) and code that<br />
wraps it (parser/xml/). This is a non-validating parser; however, it<br />
loads certain DTDs to support XUL localization.<br />
<br />
=== DOM / Content ===<br />
<br />
The content tree or DOM tree is the central data structure for Web<br />
pages. It is a tree structure, initially created from the tree<br />
structure expressed in the HTML or XML markup. The nodes in the tree<br />
implement major parts of the DOM (Document Object Model) specifications.<br />
The nodes themselves are part of a class hierarchy rooted at<br />
<code>nsINode</code>; different derived classes are used for things such<br />
as text nodes, the document itself, HTML elements, SVG elements, etc.,<br />
with further subclasses of many of these types (e.g., for specific HTML<br />
elements). Many of the APIs available to script running in Web pages<br />
are associated with these nodes. The tree structure persists while the<br />
Web pages is displayed, since it stores much of state associated with<br />
the Web page. The code for these nodes lives in the content/ directory.<br />
<br />
The DOM APIs are not threadsafe. DOM nodes can be accessed only from<br />
the main thread (also known as the UI thread (user interface thread)) of<br />
the application.<br />
<br />
There are also many other APIs available to Web pages that are not APIs<br />
on the nodes in the DOM tree. Many of these other APIs also live in the<br />
same directories, though some live in content/ and some in dom/. These<br />
include APIs such as the DOM event model.<br />
<br />
The dom/ directory also includes some of the code needed to expose Web<br />
APIs to JavaScript (in other words, the glue code between JavaScript and<br />
these APIs). For an overview, see [https://ask.mozilla.org/question/390/how-is-the-web-exposed-dom-implemented/ DOM API Implementation]. See [[#Scripting|Scripting]] below for details of the JS engine.<br />
<br />
TODO: Internal APIs vs. DOM APIs.<br />
<br />
TODO: Mutation observers / document observers.<br />
<br />
TODO: Reference counting and cycle collection.<br />
<br />
TODO: specification links<br />
<br />
=== Style System ===<br />
<br />
==== Quantum CSS (Stylo) ====<br />
<br />
Starting with Firefox 57 and later, Gecko makes use of the parallel style system written in Rust that comes from Servo. There's an [https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/ overview] of this with graphics to help explain what's going on. The [https://github.com/servo/servo/wiki/Layout-Overview Servo wiki] has some more details.<br />
<br />
==== Gecko ====<br />
<br />
The rest of the style section section describes the Gecko style system used in Firefox 56 and earlier. Some bits may still apply, but it likely needs revising.<br />
<br />
In order to display the content, Gecko needs to compute the styles<br />
relevant to each DOM node. It does this based on the model described in<br />
the CSS specifications: this model applies to style specified in CSS<br />
(e.g. by a 'style' element, an 'xml-stylesheet' processing instruction<br />
or a 'style' attribute),<br />
style specified by presentation attributes, and the default style<br />
specified by our own user agent style sheets. There are two major<br />
sets of data structures within the style system:<br />
* first, data structures that represent sources of style data, such as CSS style sheets or data from stylistic HTML attributes<br />
* second, data structures that represent computed style for a given DOM node.<br />
These sets of data structures are mostly distinct (for example, they<br />
store values in different ways).<br />
<br />
The loading of CSS style sheets from the network is managed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/Loader.h CSS loader]; <br />
they are then tokenized by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSScanner.h CSS scanner] <br />
and parsed by the <br />
[https://dxr.mozilla.org/mozilla-central/source/layout/style/nsCSSParser.h CSS parser]. <br />
Those that are attached to the document also expose APIs to<br />
script that are known as the CSS Object Model, or CSSOM.<br />
<br />
The style sheets that apply to a document are managed by a class called<br />
the [https://dxr.mozilla.org/mozilla-central/source/layout/style/nsStyleSet.h style set].<br />
The style set interacts with the different types of<br />
style sheets (representing CSS style sheets, presentational<br />
attributes, and 'style' attributes) through two interfaces:<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleSheet.h nsIStyleSheet] for basic management of style sheets and<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRuleProcessor.h nsIStyleRuleProcessor] for getting the style data out of them. Usually<br />
the same object implements both interfaces, except in the most important<br />
case, CSS style sheets, where there is a single rule processor for all<br />
of the CSS style sheets in each origin (user/UA/author) of the CSS cascade.<br />
<br />
The computed style data for an element/frame are exposed to the rest of<br />
Gecko through the class mozilla::ComputedStyle (previously called<br />
nsStyleContext). Rather than having a member variable for each<br />
CSS property, it breaks up the properties into groups of related<br />
properties called style structs. These style structs obey the rule that<br />
all of the properties in a single struct either inherit by default (what<br />
the CSS specifications call "Inherited: yes" in the definition of<br />
properties; we call these inherited structs) or all are not inherited by<br />
default (we call these reset structs). Separating the properties in<br />
this way improves the ability to share the structs between similar<br />
ComputedStyle objects and reduce the amount of memory needed to store<br />
the style data. The ComputedStyle API exposes a method for getting each<br />
struct, so you'll see code like<br />
<code>sc->GetStyleText()->mTextAlign</code> for getting the value of the<br />
text-align CSS property. (Frames (see the Layout section below) also<br />
have the same<br />
GetStyle* methods, which just forward the call to the frame's<br />
ComputedStyle.)<br />
<br />
The ComputedStyles form a tree structure, in a shape somewhat like the<br />
content tree (except that we coalesce identical sibling ComputedStyles<br />
rather than keeping two of them around; if the parents have been<br />
coalesced then this can apply recursively and coalasce cousins, etc.;<br />
we do not coalesce parent/child ComputedStyles).<br />
The parent of a ComputedStyle has the style data that the ComputedStyle<br />
inherits from when CSS inheritance occurs. This means that the parent<br />
of the ComputedStyle for a DOM element is generally the ComputedStyle<br />
for that DOM element's parent, since that's how CSS says inheritance<br />
works.<br />
<br />
The process of turning the style sheets into computed style data goes<br />
through three main steps, the first two of which closely relate to the<br />
[http://dxr.mozilla.org/mozilla-central/source/layout/style/nsIStyleRule.h nsIStyleRule] interface, which represents an immutable source of style<br />
data, conceptually representing (and for CSS style rules, directly<br />
storing) a set of property:value pairs. (It is similar to the idea of a<br />
CSS style rule, except that it is immutable; this immutability allows<br />
for significant optimization. When a CSS style rule is changed through<br />
script, we create a new style rule.)<br />
<br />
The first step of going from style sheets to computed style data is<br />
finding the ordered sequence of style rules that apply to an element.<br />
The order represents which rules override which other rules: if two<br />
rules have a value for the same property, the higher ranking one wins.<br />
(Note that there's another difference from CSS style rules: declarations<br />
with !important are represented using a separate style rule.) This is<br />
done by calling one of the nsIStyleRuleProcessor::RulesMatching methods.<br />
The ordered sequence is stored in a<br />
[http://en.wikipedia.org/wiki/Trie trie] called the rule tree: the path<br />
from the root of the rule tree to any (leaf or non-leaf) node in the<br />
rule tree represents a sequence of rules, with the highest ranking<br />
farthest from the root. Each rule node (except for the root) has a<br />
pointer to a rule, but since a rule may appear in many sequences, there<br />
are sometimes many rule nodes pointing to the same rule. Once we have<br />
this list we create a ComputedStyle (or find an appropriate existing<br />
sibling) with the correct parent pointer (for inheritance) and rule node<br />
pointer (for the list of rules), and a few other pieces of information<br />
(like the pseudo-element).<br />
<br />
The second step of going from style sheets to computed style data is<br />
getting the winning property:value pairs from the rules. (This only<br />
provides property:value pairs for some of the properties; the remaining<br />
properties will fall back to inheritance or to their initial values<br />
depending on whether the property is inherited by default.) We do this<br />
step (and the third) for each style struct, the first time it is needed.<br />
This is done in nsRuleNode::WalkRuleTree, where we ask each style rule<br />
to fill in its property:value pairs by calling its MapRuleInfoInto<br />
function. When called, the rule fills in only those pairs that haven't<br />
been filled in already, since we're calling from the highest priority<br />
rule to the lowest (since in many cases this allows us to stop before<br />
going through the whole list, or to do partial computation that just<br />
adds to data cached higher in the rule tree).<br />
<br />
The third step of going from style sheets to computed style data (which<br />
various caching optimizations allow us to skip in many cases) is<br />
actually doing the computation; this generally means we transform the<br />
style data into the data type described in the "Computed Value" line in<br />
the property's definition in the CSS specifications. This<br />
transformation happens in functions called nsRuleNode::Compute*Data,<br />
where the * in the middle represents the name of the style struct. This<br />
is where the transformation from the style sheet value storage format to<br />
the computed value storage format happens.<br />
<br />
Once we have the computed style data, we then store it: if a style struct<br />
in the computed style data doesn't<br />
depend on inherited values or on data from other style structs, then we<br />
can cache it in the rule tree (and then reuse it, without recomputing<br />
it, for any ComputedStyles pointing to that rule node). Otherwise, we<br />
store it on the ComputedStyle (in which case it may be shared<br />
with the ComputedStyle's descendant ComputedStyles).<br />
This is where keeping inherited and<br />
non-inherited properties separate is useful: in the common case of<br />
relatively few properties being specified, we can generally cache the<br />
non-inherited structs in the rule tree, and we can generally share the<br />
inherited structs up and down the ComputedStyle tree.<br />
<br />
The ownership models in style sheet structures are a mix of reference<br />
counted structures (for things accessible from script) and directly<br />
owned structures. ComputedStyles are reference counted, and own their<br />
parents (from which they inherit), and rule nodes are garbage collected<br />
with a simple mark and sweep collector (which often never needs to run).<br />
<br />
* code: [http://dxr.mozilla.org/mozilla-central/source/layout/style/ layout/style/], where most files have useful one line descriptions at the top that show up in DXR<br />
* Bugzilla: Style System (CSS)<br />
* specifications<br />
** [http://www.w3.org/TR/CSS21/ CSS 2.1]<br />
** [http://www.w3.org/TR/css-2010/ CSS 2010, listing stable css3 modules]<br />
** [http://dev.w3.org/csswg/ CSS WG editors drafts] (often more current, but sometimes more unstable than the drafts on the technical reports page)<br />
** [http://dbaron.org/mozilla/visited-privacy Preventing attacks on a user's history through CSS :visited selectors]<br />
* documentation<br />
** [http://www-archive.mozilla.org/newlayout/doc/style-system.html style system documentation] (somewhat out of date)<br />
<br />
=== Layout ===<br />
<br />
Much of the layout code deals with operations on the frame tree (or<br />
rendering tree). In the frame tree, each node represents a rectangle<br />
(or, for SVG, other shapes). The frame tree has a shape similar to the<br />
content tree, since many content nodes have one corresponding frame,<br />
though it differs in a few ways, since some content nodes have more than<br />
one frame or don't have any frames at all. When elements are<br />
display:none in CSS or undisplayed for certain other reasons, they won't<br />
have any frames. When elements are broken across lines or pages, they<br />
have multiple frames; elements may also have multiple frames when<br />
multiple frames nested inside each other are needed to display a single<br />
element (for example, a table, a table cell, or many types of form<br />
controls).<br />
<br />
Each node in the frame tree is an instance of a class derived from<br />
<code>nsIFrame</code>. As with the content tree, there is a substantial<br />
type hierarchy, but the type hierarchy is very different: it includes<br />
types like text frames, blocks and inlines, the various parts of tables,<br />
flex and grid containers, and the various types of HTML form controls.<br />
<br />
Frames are allocated within an arena owned by the PresShell. Each<br />
frame is owned by its parent; frames are not reference counted, and code<br />
must not hold on to pointers to frames. To mitigate potential security<br />
bugs when pointers to destroyed frames, we use<br />
[http://robert.ocallahan.org/2010/10/mitigating-dangling-pointer-bugs-using_15.html frame poisoning], which takes two parts. When a frame is destroyed<br />
other than at the end of life of the presentation, we fill its memory<br />
with a pattern consisting of a repeated pointer to inaccessible memory,<br />
and then put the memory on a per-frame-class freelist. This means that<br />
if code accesses the memory through a dangling pointer, it will either<br />
crash quickly by dereferencing the poison pattern or it will find a<br />
valid frame.<br />
<br />
Like the content tree, frames must be accessed only from the UI thread.<br />
<br />
The frame tree should not store any important data, i.e. any data that cannot<br />
be recomputed on-the-fly. While the frame tree does<br />
usually persist while a page is being displayed, frames are often<br />
destroyed and recreated in response to certain style changes, and in the<br />
future we may do the same to reduce memory use for pages that are<br />
currently inactive. There were a number of cases where this rule was<br />
violated in the past and we stored important data in the frame tree;<br />
however, most (though not quite all) such cases are now fixed.<br />
<br />
The rectangle represented by the frame is what CSS calls the element's<br />
border box. This is the outside edge of the border (or the inside edge<br />
of the margin). The margin lives outside the border; and the padding<br />
lives inside the border. In addition to nsIFrame::GetRect, we also have<br />
the APIs nsIFrame::GetPaddingRect to get the padding box (the outside<br />
edge of the padding, or inside edge of the border) and<br />
nsIFrame::GetContentRect to get the content box (the outside edge of the<br />
content, or inside edge of the padding). These APIs may produce out of<br />
date results when reflow is needed (or has not yet occurred).<br />
<br />
In addition to tracking a rectangle, frames also track two overflow<br />
areas: ink overflow and scrollable overflow. These overflow areas<br />
represent the union of the area needed by the frame and by all its<br />
descendants. The ink overflow is used for painting-related<br />
optimizations: it is a rectangle covering all of the area that might be<br />
painted when the frame and all of its descendants paint. The scrollable<br />
overflow represents the area that the user should be able to scroll to<br />
to see the frame and all of its descendants. In some cases differences<br />
between the frame's rect and its overflow happen because of descendants<br />
that stick out of the frame; in other cases they occur because of some<br />
characteristic of the frame itself. The two overflow areas are<br />
similar, but there are differences: for example, margins are part of<br />
scrollable overflow but not ink overflow, whereas text-shadows are<br />
part of ink overflow but not scrollable overflow.<br />
<br />
When frames are broken across lines, columns, or pages, we create<br />
multiple frames representing the multiple rectangles of the element.<br />
The first one is the primary frame, and the rest are its continuations<br />
(which are more likely to be destroyed and recreated during reflow).<br />
These frames are linked together as continuations: they have a<br />
doubly-linked list that can be used to traverse the continuations using<br />
nsIFrame::GetPrevContinuation and nsIFrame::GetNextContinuation.<br />
(Currently continuations always have the same style data, though we may<br />
at some point want to break that invariant.)<br />
<br />
Continuations are sometimes siblings of each other (i.e.<br />
nsIFrame::GetNextContinuation and nsIFrame::GetNextSibling might return<br />
the same frame), and sometimes not.<br />
For example, if a paragraph contains a span which contains a link, and<br />
the link is split across lines, then the continuations of the span are<br />
siblings (since they are both children of the paragraph), but the<br />
continuations of the link are not siblings (since each continuation of<br />
the link is descended from a different continuation of the span).<br />
Traversing the entire frame tree does '''not''' require explicit traversal<br />
of any frames' continuations-list, since all of the continuations are<br />
descendants of the element containing the break.<br />
<br />
We also use continuations for cases (most importantly, bidi reordering,<br />
where left-to-right text and right-to-left text need to be separated<br />
into different continuations since they may not form a contiguous<br />
rectangle) where the continuations should not be rewrapped during<br />
reflow: we call these continuations fixed rather than fluid.<br />
nsIFrame::GetNextInFlow and nsIFrame::GetPrevInFlow traverse only the<br />
fluid continuations and do not cross fixed continuation boundaries.<br />
<br />
If an inline frame has non-inline children, then we split the original <br />
inline frame into parts. The original inline's children are <br />
distributed into these parts like so: The children of the original <br />
inline are grouped into runs of inline and non-inline, and runs of <br />
inline get an inline parent, while runs of non-inline get an anonymous <br />
block parent. We call this 'ib-splitting' or 'block-inside-inline splitting'. <br />
This splitting proceeds recursively up the frame tree until all <br />
non-inlines inside inlines are ancestors of a block frame with anonymous <br />
block wrappers in between. This splitting maintains the relative order<br />
between these child frames, and the relationship between the parts of a <br />
split inline is maintained using an ib-sibling chain. It is important <br />
to note that any wrappers created during frame construction (such as <br />
for tables) might not be included in the ib-sibling chain depending on <br />
when this wrapper creation takes place. <br />
<br />
TODO: nsBox craziness from https://bugzilla.mozilla.org/show_bug.cgi?id=524925#c64<br />
<br />
TODO: link to documentation of block and inline layout<br />
<br />
TODO: link to documentation of scrollframes<br />
<br />
TODO: link to documentation of XUL frame classes<br />
<br />
Code (note that most files in base and generic have useful one line descriptions at the top that show up in DXR):<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/base/ layout/base/] contains objects that coordinate everything and a bunch of other miscellaneous things<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/generic/ layout/generic/] contains the basic frame classes as well as support code for their reflow methods (ReflowInput, ReflowOutput)<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/forms/ layout/forms/] contains frame classes for HTML form controls<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/tables/ layout/tables/] contains frame classes for CSS/HTML tables<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/mathml/ layout/mathml/] contains frame classes for MathML<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/svg/ layout/svg/] contains frame classes for SVG<br />
* [http://dxr.mozilla.org/mozilla-central/source/layout/xul/ layout/xul/] contains frame classes for the XUL box model and for various XUL widgets<br />
<br />
Bugzilla:<br />
* All of the components whose names begin with "Layout" in the "Core" product<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bz-layout-and-styles/ Layout and Styles] (Boris Zbarsky, 2014-10-14)<br />
<br />
<br />
==== Frame Construction ====<br />
<br />
Frame construction is the process of creating frames. This is done when styles change in ways that require frames to be created or recreated or when nodes are inserted into the document. The content tree and the frame tree don't have quite the same shape, and the frame construction process does some of the work of creating the right shape for the frame tree. It handles the aspects of creating the right shape that don't depend on layout information. So for example, frame construction handles the work needed to implement [http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes table anonymous objects] but does not handle frames that need to be created when an element is broken across lines or pages.<br />
<br />
The basic unit of frame construction is a run of contiguous children of a single parent element. When asked to construct frames for such a run of children, the frame constructor first determines, based on the siblings and parent of the nodes involved, where in the frame tree the new frames should be inserted. Then the frame constructor walks through the list of content nodes involved and for each one creates a temporary data structure called a '''frame construction item'''. The frame construction item encapsulates various information needed to create the frames for the content node: its style data, some metadata about how one would create a frame for this node based on its namespace, tag name, and styles, and some data about what sort of frame will be created. This list of frame construction items is then analyzed to see whether constructing frames based on it and inserting them at the chosen insertion point will produce a valid frame tree. If it will not, the frame constructor either fixes up the list of frame construction items so that the resulting frame tree would be valid or throws away the list of frame construction items and requests the destruction and re-creation of the frame for the parent element so that it has a chance to create a list of frame construction items that it <em>can</em> fix up.<br />
<br />
Once the frame constructor has a list of frame construction items and an insertion point that would lead to a valid frame tree, it goes ahead and creates frames based on those items. Creation of a non-leaf frame recursively attempts to create frames for the children of that frame's element, so in effect frames are created in a depth-first traversal of the content tree.<br />
<br />
The vast majority of the code in the frame constructor, therefore, falls into one of these categories:<br />
* Code to determine the correct insertion point in the frame tree for new frames.<br />
* Code to create, for a given content node, frame construction items. This involves some searches through static data tables for metadata about the frame to be created.<br />
* Code to analyze the list of frame construction items.<br />
* Code to fix up the list of frame construction items.<br />
* Code to create frames from frame construction items.<br />
<br />
Code: [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.h layout/base/nsCSSFrameConstructor.h] and [http://dxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp layout/base/nsCSSFrameConstructor.cpp]<br />
<br />
==== Reflow ====<br />
<br />
Reflow is the process of computing the positions and sizes of frames. (After all,<br />
frames represent rectangles, and at some point we need to figure out<br />
exactly *what* rectangle.) Reflow is done recursively, with each<br />
frame's Reflow method calling the Reflow methods on that frame's<br />
descendants.<br />
<br />
In many cases, the correct results are defined by CSS specifications<br />
(particularly [http://www.w3.org/TR/CSS21/visudet.html CSS 2.1]). In some cases, the details are not defined by<br />
CSS, though in some (but not all) of those cases we are constrained by<br />
Web compatibility. When the details are defined by CSS, however, the<br />
code to compute the layout is generally structured somewhat differently<br />
from the way it is described in the CSS specifications, since the CSS<br />
specifications are generally written in terms of constraints, whereas<br />
our layout code consists of algorithms optimized for incremental<br />
recomputation.<br />
<br />
The reflow generally starts from the root of the frame tree, though some other<br />
types of frame can act as reflow roots and start a reflow from them.<br />
Reflow roots must obey the invariant that a change inside one of their<br />
descendants never changes their rect or overflow areas (though currently<br />
scrollbars are reflow roots but don't quite obey this invariant).<br />
<br />
In many cases, we want to reflow a part of the frame tree, and we want<br />
this reflow to be efficient. For example, when content is added or<br />
removed from the document tree or when styles change, we want the amount<br />
of work we need to redo to be proportional to the amount of content. We<br />
also want to efficiently handle a series of changes to the same content.<br />
<br />
To do this, we maintain two bits on frames:<br />
[http://dxr.mozilla.org/mozilla-central/search?q=var%3ANS_FRAME_IS_DIRTY&case=true&redirect=true NS_FRAME_IS_DIRTY]<br />
indicates that a frame and all of its descendants require reflow.<br />
[http://dxr.mozilla.org/mozilla-central/search?q=var%3ANS_FRAME_HAS_DIRTY_CHILDREN&case=true&redirect=true NS_FRAME_HAS_DIRTY_CHILDREN]<br />
indicates that a frame has a descendant that<br />
is dirty or has had a descendant removed (i.e., that it has a child that<br />
has NS_FRAME_IS_DIRTY or NS_FRAME_HAS_DIRTY_CHILDREN or it had a child<br />
removed). These bits allow coalescing of multiple updates; this<br />
coalescing is done in nsPresShell, which tracks the set of reflow roots<br />
that require reflow. The bits are set during calls to<br />
nsPresShell::FrameNeedsReflow and are cleared during reflow.<br />
<br />
The layout algorithms used by many of the frame classes are those<br />
specified in CSS, which are based on the traditional document formatting<br />
model, where widths are input and heights are output.<br />
<br />
In some cases, however, widths need to be determined based on the<br />
content. This depends on two ''intrinsic widths'': the minimum<br />
intrinsic width (see [http://dxr.mozilla.org/search?q=type%3AnsIFrame%20function%3AGetMinWidth&tree=mozilla-central nsIFrame::GetMinWidth]) and the preferred intrinsic<br />
width (see [http://dxr.mozilla.org/search?q=type%3AnsIFrame%20function%3AGetPrefWidth&tree=mozilla-central nsIFrame::GetPrefWidth]). The concept of what these widths<br />
represent is best explained by describing what they are on a paragraph<br />
containing only text: in such a paragraph the minimum intrinsic width<br />
is the width of the longest word, and the preferred intrinsic width is<br />
the width of the entire paragraph laid out on one line.<br />
<br />
Intrinsic widths are invalidated separately from the dirty bits<br />
described above. When a caller informs the pres shell that a frame<br />
needs reflow (nsIPresShell::FrameNeedsReflow), it passes one of three<br />
options:<br />
* eResize indicates that no intrinsic widths are dirty<br />
* eTreeChange indicates that intrinsic widths on it and its ancestors are dirty (which happens, for example, if new children are added to it)<br />
* eStyleChange indicates that intrinsic widths on it, its ancestors, and its descendants are dirty (for example, if the font-size changes)<br />
<br />
Reflow is the area where the XUL frame classes (those that inherit from<br />
nsBoxFrame or nsLeafBoxFrame) are most different from the rest. Instead<br />
of using nsIFrame::Reflow, they do their layout computations using<br />
intrinsic size methods called GetMinSize, GetPrefSize, and GetMaxSize<br />
(which report intrinsic sizes in two dimensions) and a final layout<br />
method called Layout. In many cases these methods defer some of the<br />
computation to a separate object called a layout manager.<br />
<br />
When an individual frame's Reflow method is called, most of the input is<br />
provided on an object called ReflowInput and the output is filled<br />
in to an object called ReflowOutput. After reflow, the caller<br />
(usually the parent) is responsible for setting the frame's size based<br />
on the metrics reported. (This can make some computations during reflow<br />
difficult, since the new size is found in either the reflow state or the<br />
metrics, but the frame's size is still the old size. However, it's<br />
useful for invalidating the correct areas that need to be repainted.)<br />
<br />
One major difference worth noting is that in XUL layout, the size of the<br />
child is set prior to its parent calling its Layout method. (Once<br />
invalidation uses display lists and is no longer tangled up in Reflow,<br />
it may be worth switching non-XUL layout to work this way as well.)<br />
<br />
==== Painting ====<br />
<br />
TODO: display lists (and event handling)<br />
<br />
TODO: layers<br />
<br />
==== Pagination ====<br />
<br />
The concepts behind pagination (also known as fragmentation) are a bit complicated, so for now we've split them off into a separate document: [[Gecko:Continuation_Model]]. This code is used for printing, print-preview, and multicolumn frames.<br />
<br />
=== Dynamic change handling along the rendering pipeline ===<br />
<br />
The ability to make changes to the DOM from script is a major feature of the Web platform. Web authors rely on the concept (though there are a few exceptions, such as animations) that changing the DOM from script leads to the same rendering that would have resulted from starting from that DOM tree. They also rely on the performance characteristics of these changes: small changes to the DOM that have small effects should have proportionally small processing time. This means that Gecko needs to efficiently propagate changes from the content tree to style, the frame tree, the geometry of the frame tree, and the screen.<br />
<br />
For many types of changes, however, there is substantial overhead to processing a change, no matter how small. For example, reflow must propagate from the top of the frame tree down to the frames that are dirty, no matter how small the change. One very common way around this is to batch up changes. We batch up changes in lots of ways, for example:<br />
* The content sink adds multiple nodes to the DOM tree before notifying listeners that they've been added. This allows notifying once about an ancestor rather than for each of its descendants, or notifying about a group of descendants all at once, which speeds up the processing of those notifications.<br />
* We batch up nodes that require style reresolution (recomputation of selector matching and processing the resulting style changes). This batching is tree based, so it not only merges multiple notifications on the same element, but also merges a notification on an ancestor with a notification on its descendant (since ''some'' of these notifications imply that style reresolution is required on all descendants).<br />
* We wait to reconstruct frames that require reconstruction (after destroying frames eagerly). This, like the tree-based style reresolution batching, avoids duplication both for same-element notifications and ancestor-descendant notifications, even though it doesn't actually do any tree-based caching.<br />
* We postpone doing reflows until needed. As for style reresolution, this maintains tree-based dirty bits (see the description of NS_FRAME_IS_DIRTY and NS_FRAME_HAS_DIRTY_CHILDREN under Reflow).<br />
* We allow the OS to queue up multiple invalidates before repainting (though we will likely switch to controlling that ourselves). This leads to a single repaint of some set of pixels where there might otherwise have been multiple (though it may also lead to more pixels being repainted if multiple rectangles are merged to a single one).<br />
<br />
Having changes buffered up means, however, that various pieces of information (layout, style, etc.) may not be up-to-date. Some things require up-to-date information: for example, we don't want to expose the details of our buffering to Web page script since the programming model of Web page script assumes that DOM changes take effect "immediately", i.e., that the script shouldn't be able to detect any buffering. Many Web pages depend on this.<br />
<br />
We therefore have ways to flush these different sorts of buffers. There are methods called FlushPendingNotifications on nsIDocument and nsIPresShell, that take an argument of what things to flush:<br />
* Flush_Content: create all the content nodes from data buffered in the parser<br />
* Flush_ContentAndNotify: the above, plus notify document observers about the creation of all nodes created so far<br />
* Flush_Style: the above, plus make sure style data are up-to-date<br />
* Flush_Frames: the above, plus make sure all frame construction has happened (currently the same as Flush_Style)<br />
* Flush_InterruptibleLayout: the above, plus perform layout (Reflow), but allow interrupting layout if it takes too long<br />
* Flush_Layout: the above, plus ensure layout (Reflow) runs to completion<br />
* Flush_Display (should never be used): the above, plus ensure repainting happens<br />
<br />
The major way that notifications of changes propagate from the content code to layout and other areas of code is through the nsIDocumentObserver and nsIMutationObserver interfaces. Classes can implement this interface to listen to notifications of changes for an entire document or for a subtree of the content tree.<br />
<br />
WRITE ME: ... layout document observer implementations<br />
<br />
TODO: how style system optimizes away rerunning selector matching<br />
<br />
TODO: style changes and nsChangeHint<br />
<br />
=== Refresh driver ===<br />
<br />
== Graphics ==<br />
[https://wiki.mozilla.org/Platform/GFX Wiki page] | [https://wiki.mozilla.org/index.php?title=Platform/GFX/Contribute contribute]<br />
<br />
Further documentation:<br />
* Jargon: [https://wiki.mozilla.org/Platform/GFX/Jargon Helpful list] of terms used in Graphics<br />
* Talk: [https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E271782 2018 SF All-Hands Graphics Overview] (nical/mattwoodrow/gw) <br />
* Talk: [https://air.mozilla.org/introduction-to-graphics-layout-architecture/ Introduction to graphics/layout architecture] (Robert O'Callahan, 2014-04-18)<br />
* Talk: [https://air.mozilla.org/bjacob-gfx-overview/ An overview of Gecko's graphics stack] (Benoit Jacob, 2014-08-12)<br />
* Talk: [https://air.mozilla.org/jeff-muizelaar-2d-graphics/ 2D Graphics] (Jeff Muizelaar, 2014-10-14)<br />
* Blog: Mozilla gfx blog's [https://mozillagfx.wordpress.com/category/technical/ "technical" tag].<br />
* Blog: WebRender/gfx [https://mozillagfx.wordpress.com/category/wr-newsletter/ newsletter].<br />
<br />
==== WebRender vs Layers ====<br />
Currently there are two different rendering paths in Gecko. The new one is WebRender.<br />
"Layers" is the name of the previous / non-webrender architecture. <br />
<br />
Here's a very high level summary of how it works: [https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/]<br />
<br />
From a high level architectural point of view, the main differences are:<br />
* Layers separate rendering into a painting phase and a compositing phase which usually happen in separate processes. For WebRender, on the other hand, all of the rendering happens in a single operation.<br />
* Layers internally expresses rendering rendering commands through a traditional canvas-like immediate mode abstraction (Moz2D) which has several backends (some of which use the GPU). WebRender works directly at a lower and GPU-centric level, dealing in terms of batches, draw calls and shaders.<br />
* Layers code is entirely C++, while WebRender is mostly Rust with some integration glue in C++.<br />
<br />
==== WebRender ====<br />
<br />
* WebRender's main entry point is a display list. It is a description of a visible subset of the page produced by the layout module.<br />
* WebRender and Gecko's display list representations are currently different so there is a translation between the two.<br />
* The WebRender display list is serialized on the content process and sent to the process that will do the rendering (either the main process or the GPU process).<br />
* The rendering process deserializes the display list and builds a "Scene".<br />
* From this scene, frames can be built. Frames represent the actual drawing operations that need to be performed for content to appear on screen. A single scene can produce several frames, for example if an element of the scene is scrolled.<br />
* The Renderer consumes the frame and produces actual OpenGL drawing commands. Currently WebRender is based on OpenGL and on Windows the OpenGL commands are transparently turned into D3D ones using ANGLE. In the long run we plan to work with a vulkan-like abstraction called gfx-rs.<br />
<br />
The main phases in WebRender are therefore:<br />
* Display list building<br />
* Scene building<br />
* frame building<br />
* GPU commands execution<br />
<br />
All of these phases are performed on different threads. The first two happen whenever the layout of the page changes or the user scrolls past the part of the page covered by the current scene. They don't necessarily happen at a high frequency. Frame building and GPU command execution, on the other hand, happen at a high frequency (the monitor's refresh rate during scrolling and animations), which means that they must fit in the frame budget (typically 16ms). In order to avoid going over the frame budget, frame building and GPU command execution can overlap. scene building and frame building can also overlap and it is possible to continue generating frames while a new scene is being built asynchronously.<br />
<br />
WebRender has a fallback mechanism called "Blob images" for content that it does not handle (for example some SVG drawing primitives). It consists in recording and serializing a list of drawing commands (the "blob") on the content process and sending it to WebRender along with the regular display list. Blobs are then turned into images on the CPU during the scene building phase. The most of WebRender treats blob images as regular images.<br />
<br />
Some important internal operations and data structures:<br />
* The clip-scroll tree (TODO)<br />
* The render task graph (TODO)<br />
* Culling: https://mozillagfx.wordpress.com/2018/11/08/webrender-culling/<br />
* Batching: https://mozillagfx.wordpress.com/2018/11/21/webrender-batching/<br />
* Picture-caching: https://mozillagfx.wordpress.com/2018/11/02/webrender-picture-caching/<br />
<br />
The WebRender code path reuses the layers IPC infrastructure for sharing textures between the content process and the renderer. For example The ImageBridge protocol described in the Compositing section is also used to transfer video frames when WebRender is enabled.<br />
Asynchronous Panning and Zooming (APZ) described in a later sections is also relevant to WebRender.<br />
<br />
==== Painting/Rasterizing (Layers aka Non-WebRender) ====<br />
<br />
[[File:Layers pipeline overview.png|650px|thumb|Layers pipeline overview]]<br />
<br />
Painting/rendering/rasterizing is the step where graphical primitives (such as a command to fill an [https://developer.mozilla.org/en-US/docs/Web/SVG SVG] circle, or the internally produced command to draw a rounded rectangle) are used to color in the pixels of a surface so that the surface "displays" those rasterized primitives.<br />
<br />
The platform independent library that gecko uses to render is [http://dxr.mozilla.org/mozilla-central/source/gfx/2d/2D.h Moz2D]. Gecko code paints into Moz2D DrawTarget objects (the DrawTarget base class having multiple platform dependent subclasses).<br />
<br />
==== Compositing ====<br />
<br />
The compositing stage of the rendering pipeline is operated by the [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ gfx/layers] module.<br />
<br />
Different parts of a web page can sometimes be painted into intermediate surfaces retained by layers. It can be convenient to think of layers as the layers in image manipulation programs like The Gimp or Photoshop. Layers are organized as a tree. Layers are primarily used to minimize invalidating and repainting when elements are being animated independently of one another in a way that can be optimized using layers (e.g. opacity or transform animations), and to enable some effects (such as transparency and 3D transforms).<br />
<br />
Compositing is the action of flattening the layers into the final image that is shown on the screen.<br />
<br />
We paint and composite on separate threads (it is called Off-main-thread compositing, or OMTC, and a long time ago Firefox did not have this separation).<br />
<br />
The Layers architecture is built on the following notions:<br />
* Compositor: an object that can draw quads on the screen (or on an off-screen render target).<br />
* Texture: an object that contains image data.<br />
* Compositable: an object that can manipulate one or several textures, and knows how to present them to the compositor<br />
* Layer: an element of the layer tree. A layer usually doesn't know much about compositing: it uses a compositable to do the work. Layers are mostly nodes of the layer tree.<br />
<br />
[[File:LayersRefactoring.png|thumb|650px|New layers architecture, with OGL backend]]<br />
<br />
Since painting and compositing are performed on different threads/processes, we need a mechanism to synchronize a client layer tree that is constructed on the content thread, and a host layer tree that is used for compositing on the compositor thread.<br />
This synchronization process must ensure that the host layer tree reflects the state of the current layer tree while remaining in a consistent state, and must transfer texture data from a thread to the other. Moreover, on some platforms the content and compositor threads may live in separate processes.<br />
<br />
To perform this synchronization, we use the IPDL IPC framework. IPDL lets us describe communications protocols and actors in a domain specific language. for more information about IPDL, read https://wiki.mozilla.org/IPDL<br />
<br />
When the client layer tree is modified, we record modifications into messages that are sent together to the host side within a transaction. A transaction is basically a list of modifications to the layer tree that have to be applied all at once to preserve consistency in the state of the host layer tree.<br />
<br />
Texture transfer is done by synchronizing texture objects across processes/threads using a couple TextureClient/TextureHost that wrap shared data and provide access to it on both sides. TextureHosts provide access to one or several TextureSource, which has the necessary API to actually composite the texture (TextureClient/Host being more about IPC synchronization than actual compositing.<br />
The logic behind texture transfer (as in single/double/triple buffering, texture tiling, etc) is operated by the CompositableClient and CompositableHost.<br />
<br />
It is important to understand the separation between layers and compositables. Compositables handle all the logic around texture transfer, while layers define the shape of the layer tree. a Compositable is created independently from a layer and attached to it on both sides. While layers transactions can only originate from the content thread, this separation makes it possible for us to have separate compositable transactions between any thread and the compositor thread. We use the ImageBridge IPDL protocol to that end. The Idea of ImageBridge is to create a Compositable that is manipulated on the ImageBridgeThread, and that can transfer/synchronize textures without using the content thread at all. This is very useful for smooth Video compositing: video frames are decoded and passed into the ImageBridge without ever touching the content thread, which could be busy processing reflows or heavy javascript workloads.<br />
<br />
It is worth reading the inline code documentation in the following files:<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Compositor.h gfx/layers/Compositor.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/ShadowLayers.h gfx/layers/ShadowLayers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/Layers.h gfx/layers/Layers.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/host/TextureHost.h gfx/layers/host/TextureHost.h]<br />
* [http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/CompositableClient.h gfx/layers/client/CompositableClient.h]<br />
<br />
To visualize how a web page is layered, turn on the pref "layers.draw-borders" in about:config. When this pref is on, the borders of layers and tiles are displayed on top of the content. This only works when using the Compositor API, that is when WebRender is disabled, since WebRender does not have the same concept of layers.<br />
<br />
Blog posts with information on Layers that should be integrated here:<br />
<br />
* [http://www.basschouten.com/blog1.php/layers-cross-platform-acceleration Layers: Cross-Platform Acceleration]<br />
* [http://robert.ocallahan.org/2010/04/layers_01.html Layers]<br />
* [http://robert.ocallahan.org/2010/07/retained-layers_16.html Retained Layers]<br />
* [http://chrislord.net/index.php/2011/07/25/shadow-layers-and-learning-by-failing/ Shadow Layers, and learning by failing]<br />
* [http://chrislord.net/index.php/2011/08/16/accelerated-layer-rendering-and-learning-by-some-success/ Accelerated layer-rendering, and learning by (some) success]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/mask-layers_26.html Mask Layers]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/05/building-mask-layer.html Building a mask layer]<br />
* [http://featherweightmusings.blogspot.co.uk/2012/06/mask-layers-on-direct3d-backends.html Mask Layers on the Direct3D backends]<br />
* [http://robert.ocallahan.org/2011/09/graphics-api-design.html Graphics API Design]<br />
<br />
==== Async Panning and Zooming ====<br />
<br />
On some of our mobile platforms we have some code that allows the user to do asynchronous (i.e. off-main-thread) panning and zooming of content. This code is the Async Pan/Zoom module (APZ) code and is further documented at [[Platform/GFX/APZ]].<br />
<br />
== Scripting ==<br />
<br />
=== JavaScript Engine ===<br />
<br />
Gecko embeds the SpiderMonkey JavaScript engine (located in js/src). The JS engine includes a number of Just-In-Time compilers (or JITs). SpiderMonkey provides a powerful and extensive embedding API (called the JSAPI). Because of its complexity, using the JSAPI directly is frowned upon, and a number of abstractions have been built in Gecko to allow interacting with the JS engine without using JSAPI directly. Some JSAPI concepts are important for Gecko developers to understand, and they are listed below:<br />
<br />
* Global object: The '''global object''' is the object on which all global variables/properties/methods live. In a web page this is the 'window' object. In other things such as XPCOM components or sandboxes XPConnect creates a global object with a small number of builtin APIs.<br />
* Compartments: A '''compartment''' is a subdivision of the JS heap. The mapping from global objects to compartments is one-to-one; that is, every global object has a compartment associated with it, and no compartment is associated with more than one global object. (NB: There are compartments associated with no global object, but they aren't very interesting). When JS code is running SpiderMonkey has a concept of a "current" compartment. New objects that are created will be created in the "current" compartment and associated with the global object of that compartment.<br />
* When objects in one compartment can see objects in another compartment (via e.g. iframe.contentWindow.foo) '''cross-compartment wrappers''' or '''CCWs''' mediate the interaction between the two compartments. By default CCWs ensure that the current compartment is kept up-to-date when execution crosses a compartment boundary. SpiderMonkey also allows embeddings to extend wrappers with custom behavior to implement security policies, which Gecko uses extensively (see the Security section for more information).<br />
<br />
Further documentation:<br />
* Talk: [https://air.mozilla.org/kannan-vijayan-baseline-jit/ Baseline JIT] (Kannan Vijayan, 2014-10-14)<br />
<br />
=== XPConnect ===<br />
<br />
'''XPConnect''' is a bridge between C++ and JS used by XPCOM components exposed to or implemented in JavaScript. XPConnect allows two XPCOM components to talk to each other without knowing or caring which language they are implemented in. XPConnect allows JS code to call XPCOM components by exposing XPCOM interfaces as JS objects, and mapping function calls and attributes from JS into virtual method calls on the underlying C++ object. It also allows JS code to implement an XPCOM component that can be called from C++ by faking the vtable of an interface and translating calls on the interface into JS calls. XPConnect accomplishes this using the vtable data stored in XPCOM TypeLibs (or XPT files) by the XPIDL compiler and a small layer of platform specific code called [https://developer.mozilla.org/en-US/docs/xptcall_FAQ xptcall] that knows how to interact with and impersonate vtables of XPCOM interfaces.<br />
<br />
XPConnect is also used for a small (and decreasing) number of legacy DOM objects. At one time all of the DOM used XPConnect to talk to JS, but we have been replacing XPConnect with the WebIDL bindings (see the next section for more information). Arbitrary XPCOM components are not exposed to web content. XPCOM components that want to be accessible to web content must provide class info (that is, they must QI to nsIClassInfo) and must be marked with the nsIClassInfo::DOM_OBJECT flag. Most of these objects also are listed in dom/base/nsDOMClassInfo.cpp, where the interfaces that should be visible to the web are enumerated. This file also houses some "scriptable helpers" (classes ending in "SH" and implementing nsIXPCScriptable), which are a set of optional hooks that can be used by XPConnect objects to implement more exotic behaviors (such as indexed getters or setters, lazily resolved properties, etc). This is all legacy code, and any new DOM code should use the WebIDL bindings.<br />
<br />
=== WebIDL Bindings ===<br />
<br />
The '''WebIDL bindings''' are a separate bridge between C++ and JS that is specifically designed for use by DOM code. We intend to replace all uses of XPConnect to interface with content JavaScript with the WebIDL bindings. [https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings Extensive documentation] on the WebIDL bindings is available, but the basic idea is that a binding generator takes WebIDL files from web standards and some configuration data provided by us and generates at build time C++ glue code that sits between the JS engine and the DOM object. This setup allows us to produce faster, more specialized code for better performance at the cost of increased codesize.<br />
<br />
The WebIDL bindings also implement all of the behavior specified in WebIDL, making it possible for new additions to the DOM to behave correctly "out of the box". The binding layer also provides C++ abstractions for types that would otherwise require direct JSAPI calls to handle, such as typed arrays.<br />
<br />
=== Reflectors ===<br />
Whether using [https://wiki.mozilla.org/Gecko:Overview#XPConnect XPConnect] or [https://wiki.mozilla.org/Gecko:Overview#WebIDL_Bindings Web IDL], the basic idea is that there is a JSObject called a '''reflector''' that represents some C++ object. The JSObject ensures that the C++ object remains alive while the JSObject is alive. The C++ object does ''not'' necessarily keep the JSObject alive; this allows the JSObject to be garbage-collected as needed. If this happens, the next time JS needs access to that C++ object a new reflector is created. If something happens that requires that the actual object identity of the JSObject be preserved even though it's not explicitly reachable, the C++ object will start keeping the JSObject alive as well. After this point, the cycle collector would be the only way for the pair of objects to be deallocated. Examples of operations that require identity-preservation are adding a property to the object, giving the object a non-default prototype, using the object as a weakmap key or weakset member.<br />
<br />
In the XPConnect case, reflectors are created by XPCWrappedNative::GetNewOrUsed. This finds the right JSClass to use for the object, depending on information provided by the C++ object via the nsIClassInfo interface about special class hooks it might need. If the C++ object has no clasinfo, XPC_WN_NoHelper_JSClass is used. GetNewOrUsed also determines the right global to use for the reflector, again based on nsIClassInfo information, with a fallback to the JSContext's current global.<br />
<br />
In the Web IDL case, reflectors are created by the Wrap method that the binding code generator spits out for the relevant Web IDL interface. So for the Document interface, the relevant method is mozilla::dom::Document_Binding::Wrap. The JSClass that is used is also created by the code generator, as part of the DOMJSClass struct it outputs. Web IDL objects provide a GetParentObject() method that is used to determine the right global to use for the reflector.<br />
<br />
Web IDL objects typically inherit from nsWrapperCache, and use that class to store a pointer to their reflector and to keep it alive as needed. The only exception to that is if the Web IDL object only needs to find a reflector once during its lifetime, typically as a result of a Web IDL constructor being called from JS (see TextEncoder for an example). In that case, there is no need to get the JS object from the C++ one, and no way to end up in any of the situations that require preserving the JS object from the C++ side, so the Web IDL object is allowed to not inherit from nsWrapperCache.<br />
<br />
=== Security ===<br />
<br />
Gecko's JS security model is based on the concept of compartments. Every compartment has a '''principal''' associated with it that contains security information such as the '''origin''' of the compartment, whether or not it has system privileges, etc. For the following discussion, '''wrappee''' refers to the underlying object being wrapped, '''scope''' refers to the compartment the object is being wrapped for use in, and '''wrapper''' refers to the object created in '''scope''' that allows it to interact with '''wrappee'''. "Chrome" refers to JS that is built in to the browser or part of an extension, which runs with full privileges, and is contrasted with "content", which is web provided script that is subject to security restrictions and the same origin policy.<br />
<br />
* Xray wrappers: Xray wrappers are used when the scope has chrome privileges and the wrappee is the JS reflection of an underlying DOM object. Beyond the usual CCW duties of making sure that content code does not run with chrome privileges, Xray wrappers also ensure that calling methods or accessing attributes on the wrappee has the "expected" effect. For example, a web page could replace the <code>close</code> method on its window with a JS function that does something completely different. (e.g. <code>window.close = function() { alert("This isn't what you wanted!") };</code>). Overwriting methods in this way (or creating entirely new ones) is referred to as '''expando''' properties. Xrays see through expando properties, invoking the original method/getter/setter if the expando overwrites a builtin or seeing undefined in the expando creates a new property. This allows chrome code to call methods on content DOM objects without worrying about how the page has changed the object.<br />
* Waived xray wrappers: The xray behavior is not always desirable. It is possible for chrome to "waive" the xray behavior and see the actual JS object. The wrapper still guarantees that code runs with the correct privileges, but methods/getters/setters may not behave as expected. This is equivalent to the behavior chrome sees when it looks at non-DOM content JS objects.<br />
* For more information, see the [https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Script_security MDN page]<br />
* bholley's [https://air.mozilla.org/enter-the-compartment/ Enter the Compartment] talk also provides an overview of our compartment architecture.<br />
<br />
== Images ==<br />
<br />
== Plugins ==<br />
<br />
== Platform-specific layers ==<br />
<br />
* widget<br />
* native theme<br />
* files, networking, other low-level things<br />
* Accessibility APIs<br />
* Input. Touch-input stuff is somewhat described at [[Platform/Input/Touch]].<br />
<br />
== Editor ==<br />
<br />
== Base layers ==<br />
<br />
=== NSPR ===<br />
<br />
NSPR is a library for providing cross-platform APIs for various<br />
platform-specific functions. We tend to be trying to use it as little<br />
as possible, although there are a number of areas (particularly some<br />
network-related APIs and threading/locking primitives) where we use it<br />
quite a bit.<br />
<br />
=== XPCOM ===<br />
<br />
XPCOM is a cross-platform modularity library, modeled on Microsoft COM. It<br />
is an object system in which all objects inherit from the <code>nsISupports</code> interface.<br />
<br />
components and services, contract IDs and CIDs<br />
<br />
prior overuse of XPCOM; littering with XPCOM does not produce modularity<br />
<br />
Base headers (part of xpcom/base/) and data structures. See also mfbt.<br />
<br />
Threading<br />
<br />
xptcall, proxies<br />
<br />
reference counting, cycle collection<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]<br />
<br />
=== String ===<br />
<br />
XPCOM has string classes for representing sequences of characters. Typical C++ string classes have the goals of encapsulating the memory management of buffers and the issues needed to avoid buffer overruns common in traditional C string handling. Mozilla's string classes have these goals, and also the goal of reducing copying of strings.<br />
<br />
(There is a second set of string classes in xpcom/glue for callers outside of libxul; these classes are partially source-compatible but have different (worse) performance characteristics. This discussion does not cover those classes.)<br />
<br />
We have two parallel sets of classes, one for strings with 1-byte units (<code>char</code>, which may be signed or unsigned), and one for strings with 2-byte units (<code>char16_t</code>, always unsigned). The classes are named such that the class for 2-byte characters ends with <code>String</code> and the corresponding class for 1-byte characters ends with <code>CString</code>. 2-byte strings are almost always used to encode [http://en.wikipedia.org/wiki/UTF-16 UTF-16]. 1-byte strings are usually used to encode either [http://en.wikipedia.org/wiki/ASCII ASCII] or [http://en.wikipedia.org/wiki/UTF-8 UTF-8], but are sometimes also used to hold data in some other encoding or just byte sequences.<br />
<br />
The string classes distinguish, as part of the type hierarchy, between strings that must have a null-terminator at the end of their buffer (<code>ns[C]String</code>) and strings that are not required to have a null-terminator (<code>ns[C]Substring</code>). <code>ns[C]Substring</code> is the base of the string classes (since it imposes fewer requirements) and <code>ns[C]String</code> is a class derived from it. Functions taking strings as parameters should generally take one of these four types.<br />
<br />
In order to avoid unnecessary copying of string data (which can have significant performance cost), the string classes support different ownership models. All string classes support the following three ownership models dynamically:<br />
* reference counted, copy-on-write, buffers (the default)<br />
* adopted buffers (a buffer that the string class owns, but is not reference counted, because it came from somewhere else)<br />
* dependent buffers, that is, an underlying buffer that the string class does not own, but that the caller that constructed the string guarantees will outlive the string instance<br />
In addition, there is a special string class, <code>nsAuto[C]String</code>, that ''additionally'' contains an internal 64-unit buffer (intended primarily for use on the stack), leading to a fourth ownership model:<br />
* storage within an auto string's stack buffer<br />
Auto strings will prefer reference counting an existing reference-counted buffer over their stack buffer, but will otherwise use their stack buffer for anything that will fit in it.<br />
<br />
There are a number of additional string classes, particularly <code>nsDependent[C]String</code>, <code>nsDependent[C]Substring</code>, and the <code>NS_LITERAL_[C]STRING</code> macros which construct an <code>nsLiteral[C]String</code> which exist primarily as constructors for the other types. These types are really just convenient notation for constructing an <code>ns[C]S[ubs]tring</code> with a non-default ownership mode; they should not be thought of as different types. (The <code>Substring</code>, <code>StringHead</code>, and <code>StringTail</code> functions are also constructors for dependent [sub]strings.) Non-default ownership modes can also be set up using the <code>Rebind</code> and <code>Adopt</code> methods, although the <code>Rebind</code> methods actually live on the derived types, which is probably a mistake (although moving them up would require some care to avoid making an API that easily allows assigning a non-null-terminated buffer to a string whose static type indicates that it is null-terminated).<br />
<br />
Note that the presence of all of these classes imposes some awkwardness in terms of distinctions being available as both static type distinctions and dynamic type distinctions. In general, the only distinctions that should be made statically are 1-byte vs. 2-byte sequences (<code>CString</code> vs <code>String</code>) and whether the buffer is null-terminated or not (<code>Substring</code> vs <code>String</code>). (Does the code actually do a good job of dynamically enforcing the <code>Substring</code> vs. <code>String</code> restriction?)<br />
<br />
TODO: buffer growth, concatenation optimizations<br />
<br />
TODO: encoding conversion, what's validated and what isn't<br />
<br />
TODO: "string API", nsAString (historical)<br />
<br />
* Code: xpcom/string/<br />
* Bugzilla: Core::String<br />
<br />
Further documentation:<br />
* XPCOM and Internal Strings in Gecko (talk by David Baron, 2014-03-20): [https://air.mozilla.org/xpcom-and-internal-strings-in-gecko/ video], [https://dbaron.org/talks/2014-03-20-xpcom-string-taipei/speaking-notes speaking notes]</div>Dholberthttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1234258Modules/Core2021-03-04T03:13:27Z<p>Dholbert: Add Mats Palmgren and Ting-Yu Lin as layout peers</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:jteh@mozilla.com Jamie Teh]<br />
|peers=[mailto:eitan@monotonous.org Eitan Isaacson], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:mreschenberg@mozilla.com Morgan Reschenberg]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal], [mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peersemeritus=[mailto:dbolter@mozilla.com David Bolter], [mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan, [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:brian@birchill.co.jp Brian Birtles] (:birtles)<br />
|peers=[mailto:boris@mozilla.com Boris Chiou] (:boris), [mailto:hikezoe.birchill@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-platform<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Transitions and Animations<br />
}}<br />
<br />
{{Module<br />
|name=Anti-Tracking<br />
|description=Tracking detection and content-blocking.<br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:dlee@mozilla.com Dimi Lee], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:ewright@mozilla.com Erica Wright], [mailto:xeonchen@gmail.com Gary Chen], [mailto:jhofmann@mozilla.com Johann Hofmann], [mailto:tihuang@mozilla.com Tim Huang]<br />
|group=dev-platform<br />
|source_dirs=toolkit/components/antitracking/, several files under browser/ and netwerk/url-classifier/<br />
|components=Core::Privacy: Anti-Tracking<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:Olli.Pettay@helsinki.fi Olli Pettay]<br />
|peers=[mailto:fabrice@mozilla.com Fabrice Desré]<br />
|ownersemeritus=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:bhearsum@mozilla.com Ben Hearsum]<br />
|peers=[mailto:aki@mozilla.com Aki Sasaki]<br />
|group=release-engineering<br />
|source_dirs=tools/update-packaging/ tools/update-verify<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:mh@glandium.org Mike Hommey] (:glandium)<br />
|peers=[mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:mhentges@mozilla.com Mitchell Hentges]<br />
|ownersemeritus=Chris Manchester (2019-2020), Gregory Szorc (2013-2019), Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|peersemeritus=Ted Mielczarek, Ralph Giles, Gregory Szorc, Chris Manchester, Mike Shal, Nathan Froyd, Ricky Stewart<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/jprof/, tools/leak-gauge/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Referrer Policy, Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston], [mailto:tnguyen@mozilla.com Thomas Nguyen]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking], François Marier<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies<br />
|description=<br />
|owner=[mailto:amarchesini@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:honzab.moz@firemni.cz Honza Bambas] <br />
|ownersemeritus=Monica Chew<br />
|peersemeritus=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-platform<br />
|source_dirs=netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
<br />
{{Module<br />
|name=Permissions<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:honzab.moz@firemni.cz Honza Bambas]<br />
|ownersemeritus=Monica Chew<br />
|peersemeritus=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-platform<br />
|source_dirs=extensions/permissions/<br />
|url=<br />
|components=Core :: Permission Manager<br />
}}<br />
<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay<br />
|peersemeritus=David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:sgiesecke@mozilla.com Simon Giesecke]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:peterv@propagandism.org Peter Van der Beken], [mailto:afarre@mozilla.com Andreas Farre]<br />
|ownersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:sawang@mozilla.com Samael Wang], [mailto:kyle@nonpolynomial.com Kyle Machulis]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell], [mailto:afarre@mozilla.com Andreas Farre], [mailto:emilio@crisal.io Emilio Cobos], [mailto:asuth@mozilla.com Andrew Sutherland], [mailto:echen@mozilla.com Edgar Chen]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:ben@wanderview.com Ben Kelly], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:echen@mozilla.com Edgar Chen]<br />
|peersemeritus=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::DOM: UI Events & Focus Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:asuth@mozilla.com Andrew Sutherland]<br />
|peers=[mailto:baku@mozilla.com Andrea Marchesini], [mailto:ytausky@mozilla.com Yaron Tausky]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:gsquelart@mozilla.com Gerald Squelart], [mailto:gtatum@mozilla.com Greg Tatum], [mailto:canaltinova@mozilla.com Nazim Can Altinova], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:brennie@mozilla.com Barret Rennie] (Screenshots).<br />
|ownersemeritus=[mailto:b56girard@gmail.com Benoit Girard]<br />
|peersemeritus=[mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer), Nicholas Nethercote<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/events (and platform specific directories under it)<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:jnicol@mozilla.com Jamie Nicol](Android), [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia, Canvas2D), [mailto:rhunt@mozilla.com Ryan Hunt](OMTP), [mailto:gwatson@mozilla.com Glenn Watson ](WebRender), [mailto:dmalyshau@mozilla.com Dzmitry Malyshau](WebRender)<br />
|peersemeritus=[mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:clord@mozilla.com Christopher Lord], [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:snorp@mozilla.com James Willcox](Android),<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::Graphics: WebRender, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=WebGPU (Graphics submodule)<br />
|description=WebGPU implementation<br />
|owner=[mailto:dmalyshau@mozilla.com Dzmitry Malyshau]<br />
|peers=[mailto:josh@joshgroves.com Joshua Groves], [mailto:jgilbert@mozilla.com Jeff Gilbert],<br />
|group=dev-platform<br />
|source_dirs=dom/webgpu<br />
|url=https://wiki.mozilla.org/Platform/GFX/WebGPU<br />
|components=Core::Graphics::WebGPU<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:bballo@mozilla.com Botond Ballo]<br />
|ownersemeritus=[mailto:kgupta@mozilla.staktrace.com Kartikaya Gupta]<br />
|peers=[mailto:kgupta@mozilla.staktrace.com Kartikaya Gupta], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:rhunt@mozilla.com Ryan Hunt], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source_dirs=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|ownersemeritus=Chris Jones, Bill McCloskey<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner], David Anderson, Kan-Ru Chen, Bevis Tseng, Ben Kelly<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], André Bargull, [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:jcoppeard@mozilla.com Jon Coppeard], [mailto:sphink@gmail.com Steve Fink], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:evilpies@gmail.com Tom Schuster], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ystartsev@mozilla.com Yulia Startsev], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:iireland@mozilla.com Iain Ireland], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:ccullen@mozilla.com Caroline Cullen], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:luke@mozilla.com Luke Wagner], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], Andreas Gal, [mailto:efaust@mozilla.com Eric Faust], [mailto:khyperia@mozilla.com Ashley Hauck], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], Nicholas Nethercote<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=André Bargull, [mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:ccullen@mozilla.com Caroline Cullen], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:iireland@mozilla.com Iain Ireland], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dholbert@mozilla.com Daniel Holbert]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:emilio@crisal.io Emilio Cobos Álvarez], [mailto:mats@mozilla.com Mats Palmgren], [mailto:tlin@mozilla.com Ting-Yu Lin]<br />
|ownersemeritus=[mailto:dbaron@dbaron.org David Baron]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-platform<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Layout<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Columns, Core::Layout: Flexbox, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: Generated Content, Lists, and Counters, Core::Layout: Grid, Core::Layout: Images, Video, and HTML Frames, Core::Layout: Positioned, Core::Layout: Ruby, Core::Layout: Scrolling and Overflow, Core::Layout: Tables, Core::Layout: Text and Fonts, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|ownersemeritus=Taras Glek, Michael Wu<br />
|peers=[mailto:mnovotny@mozilla.com Michal Novotny], [mailto:vgosu@mozilla.com Valentin Gosu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=<br />
|peersemeritus=Eric Rahm, Nicholas Nethercote<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership module]]<br />
|ownersemeritus=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:kershaw@mozilla.com Kershaw Chang], [mailto:juhsu@mozilla.com Junior Hsu]<br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman, Nick Hurley, [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NodeJS usage, tools, and style<br />
|description=Advises on the use of NodeJS and npm packages at build and runtime. Reviews additions/upgrades/removals of vendored npm packages. Works with appropriate teams to maintain automated license and security audits of npm packages. Works with the security team and relevant developers to respond to vulnerabilities in NodeJS and vendored npm packages.<br />
|owner=[mailto:dmosedale@mozilla.com Dan Mosedale]<br />
|peers=[mailto:mbanner@mozilla.com Mark Banner], [mailto:dcoates@mozilla.com Danny Coates], [mailto:khudson@mozilla.com Kate Hudson], [mailto:elee@mozilla.com Ed Lee], [mailto:dtownsend@mozilla.com Dave Townsend]<br />
|source_dirs=package.json, package-lock.json, node_modules and others as appropriate<br />
|components=Various components<br />
|forum=[https://wiki.mozilla.org/Firefox/firefox-dev firefox-dev], #nodejs on slack<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:mh@glandium.org Mike Hommey]<br />
|ownersemeritus=[mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:davidp99@gmail.com David Parks]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:kwright@mozilla.com Kris Wright]<br />
|peers=[mailto:glandium@mozilla.com Mike Hommey], [mailto:kwright@mozilla.com Kris Wright]<br />
|ownersemeritus=Nicholas Nethercote<br />
|peersemeritus=Felipe Gomes, Eric Rahm<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=[mailto:lina@mozilla.com Lina Cambridge]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:mt@lowentropy.net Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:mt@lowentropy.net Martin Thomson]<br />
|ownersemeritus=[mailto:wtc@google.com Wan-Teh Chang], [mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peersemeritus=[mailto:birunthan@mohanathas.com Birunthan Mohanathas]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:emilio@crisal.io Emilio Cobos Álvarez]<br />
|ownersemeritus=[mailto:dbaron@dbaron.org David Baron], [mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-platform<br />
|source_dirs=layout/style/, servo/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=UA String<br />
|description=User Agent String<br />
|owner=[mailto:tantek@mozilla.com Tantek Çelik]<br />
|peers=[mailto:kdubost@mozilla.com Karl Dubost], [mailto:cpeterson@mozilla.com Chris Peterson], [mailto:hsivonen@mozilla.com Henri Sivonen] <br />
|group=dev-platform<br />
|source_dirs=netwerk/protocol/http/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-platform<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-platform<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kearwood (Kip) Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu], [mailto:igorostizaga@mozilla.com Imanol Fernández]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=Top level Widget<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|ownersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=Android widget support<br />
|owner=[mailto:jwillcox@mozilla.com James Willcox]<br />
|peers=<br />
|ownersemeritus=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=GTK widget support<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:stransky@redhat.com Martin Stránský]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Headless<br />
|description=Headless widget support<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=<br />
|ownersemeritus=<br />
|group=dev-platform<br />
|source_dirs=widget/headless/<br />
|url=<br />
|components=Firefox::Headless<br />
}}<br />
<br />
{{Module<br />
|name=Widget - macOS<br />
|description= macOS widget support<br />
|owner=[mailto:spohl@mozilla.com Stephen A Pohl]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:mstange@themasta.com Markus Stange]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:b56girard@gmail.com Benoit Girard], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widget support<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:cmartin@mozilla.com Chris Martin], [mailto:tkikuchi@mozilla.com Toshihito Kikuchi], [mailto:mhowell@mozilla.com Molly Howell], [mailto:aklotz@mozilla.com Aaron Klotz], [mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peersemeritus=[mailto:robert.strong.bugs@gmail.com Rob Strong], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:kmaglione@mozilla.com Kris Maglione], [mailto:sgiesecke@mozilla.com Simon Giesecke]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner], [mailto:erahm@mozilla.com Eric Rahm], <br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:amccreight@mozilla.com Andrew McCreight]<br />
|ownersemeritus=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:davidp99@gmail.com David Parks] (:handyman), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:tkikuchi@mozilla.com Toshihito Kikuchi] (:toshi)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Crash reporting<br />
|description=Infrastructure and tools used to generate, submit and process crash reports. This includes the in-tree google-breakpad fork, the crash report generation machinery as well as the host tools used to dump symbols, analyse minidumps and generate stack traces.<br />
|owner=[mailto:gsvelto@mozilla.com Gabriele Svelto] (:gsvelto)<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=toolkit/crashreporter, toolkit/components/crashes, tools/crashreporter, ipc/glue/CrashReporter*, mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java<br />
|url=https://firefox-source-docs.mozilla.org/toolkit/crashreporter/crashreporter/index.html<br />
|components=Toolkit::Crash Reporting<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:mozilla@hocat.ca Tom Prince]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:dustin@mozilla.com Dustin Mitchell]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Dholberthttps://wiki.mozilla.org/index.php?title=Modules/Core&diff=1233926Modules/Core2021-02-23T18:29:53Z<p>Dholbert: s/dev-tech-layout/dev-platform/g , since the dev-tech-layout mailing list has been spun down & discussion should happen on dev-platform now. Announcement (in list archives): https://groups.google.com/g/mozilla.dev.tech.layout/c/Mv4coPW6tyw/m/Wx670JtTCgAJ</p>
<hr />
<div><noinclude><br />
'''Only module owners may edit this page.''' <br />
<br />
They may:<br />
<br />
* update any information about their module except the name of the owner<br />
* add or remove sub-modules<br />
* change the owner of a sub-module <br />
* add emeritus owners or peers<br />
<br />
Other changes, including changes of module owner or addition/removal of modules, must be agreed with the Module Ownership Module group, probably via a discussion in [https://www.mozilla.org/about/forums/#governance mozilla.governance].<br />
</noinclude><br />
{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:jteh@mozilla.com Jamie Teh]<br />
|peers=[mailto:eitan@monotonous.org Eitan Isaacson], [mailto:mzehe@mozilla.com Marco Zehe], [mailto:mreschenberg@mozilla.com Morgan Reschenberg]<br />
|ownersemeritus=[mailto:aaron@moonset.net. Aaron Leventhal], [mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peersemeritus=[mailto:dbolter@mozilla.com David Bolter], [mailto:tbsaunde+mozbugs@tbsaunde.org Trevor Saunders], [mailto:ginn.chen@oracle.com Ginn Chen], Evan Yan, [mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Animation<br />
|description=Declarative animations: CSS animations, CSS transitions, Web Animations API, and off-main thread animations.<br />
|owner=[mailto:brian@birchill.co.jp Brian Birtles] (:birtles)<br />
|peers=[mailto:boris@mozilla.com Boris Chiou] (:boris), [mailto:hikezoe.birchill@mozilla.com Hiroyuki Ikezoe] (:hiro), [mailto:mwoodrow@mozilla.com Matt Woodrow] (:mattwoodrow)<br />
|group=dev-platform<br />
|source_dirs=dom/animation; and animation-related and interpolation-related code in layout/style, gfx/layers, servo/components/style and servo/ports/gecko<br />
|components=Core::DOM::Animation, Core::CSS Transitions and Animations<br />
}}<br />
<br />
{{Module<br />
|name=Anti-Tracking<br />
|description=Tracking detection and content-blocking.<br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:dlee@mozilla.com Dimi Lee], [mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:ewright@mozilla.com Erica Wright], [mailto:xeonchen@gmail.com Gary Chen], [mailto:jhofmann@mozilla.com Johann Hofmann], [mailto:tihuang@mozilla.com Tim Huang]<br />
|group=dev-platform<br />
|source_dirs=toolkit/components/antitracking/, several files under browser/ and netwerk/url-classifier/<br />
|components=Core::Privacy: Anti-Tracking<br />
}}<br />
<br />
{{Module<br />
|name=Browser WebAPI<br />
|description=Web API for rendering apps, browser windows and widgets.<br />
|owner=[mailto:Olli.Pettay@helsinki.fi Olli Pettay]<br />
|peers=[mailto:fabrice@mozilla.com Fabrice Desré]<br />
|ownersemeritus=[mailto:kchen@mozilla.com Kan-Ru Chen]<br />
|group=dev-webapi<br />
|source_dirs=dom/browser-element/<br />
|url=<br />
|components=Core::DOM<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:bhearsum@mozilla.com Ben Hearsum]<br />
|peers=[mailto:aki@mozilla.com Aki Sasaki]<br />
|group=release-engineering<br />
|source_dirs=tools/update-packaging/ tools/update-verify<br />
|url=https://wiki.mozilla.org/ReleaseEngineering<br />
|components=Release Engineering::*<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:mh@glandium.org Mike Hommey] (:glandium)<br />
|peers=[mailto:dmajor@mozilla.com David Major] (:dmajor), [mailto:mhentges@mozilla.com Mitchell Hentges]<br />
|ownersemeritus=Chris Manchester (2019-2020), Gregory Szorc (2013-2019), Ted Mielczarek (2008-[https://blog.mozilla.org/ted/2013/03/07/gregory-szorc-is-now-the-build-config-module-owner/ 2013]), Benjamin Smedberg (???-[http://benjamin.smedbergs.us/blog/2008-04-30/more-changing-of-the-guard-ted-mielczarek/ 2008]), <br />
|peersemeritus=Ted Mielczarek, Ralph Giles, Gregory Szorc, Chris Manchester, Mike Shal, Nathan Froyd, Ricky Stewart<br />
|group=dev-builds<br />
|source_dirs=build/, config/, python/mozbuild, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/jprof/, tools/leak-gauge/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content Security<br />
|description=Native content-based security features enforced in the ContentSecurityManager, including: Content Security Policy (CSP), Mixed Content Blocker (MCB), Referrer Policy, Subresource Integrity (SRI), Cross-Origin Resource Sharing (CORS) and top-level data: URI blocking.<br />
|owner=[mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peers=[mailto:tvyas@mozilla.com Tanvi Vyas], [mailto:dveditz@mozilla.com Dan Veditz], [mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:jkt@mozilla.com Jonathan Kingston], [mailto:tnguyen@mozilla.com Thomas Nguyen]<br />
|peersemeritus=[mailto:mozilla@sidstamm.com Sid Stamm], [mailto:jonas@sicking.cc Jonas Sicking], François Marier<br />
|group=dev-security<br />
|source_dirs=dom/security<br />
|components=Core::DOM: Security<br />
}}<br />
<br />
{{Module<br />
|name=Cookies<br />
|description=<br />
|owner=[mailto:amarchesini@mozilla.com Andrea Marchesini]<br />
|peers=[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:honzab.moz@firemni.cz Honza Bambas] <br />
|ownersemeritus=Monica Chew<br />
|peersemeritus=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-platform<br />
|source_dirs=netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
<br />
{{Module<br />
|name=Permissions<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:amarchesini@mozilla.com Andrea Marchesini], [mailto:honzab.moz@firemni.cz Honza Bambas]<br />
|ownersemeritus=Monica Chew<br />
|peersemeritus=[mailto:josh@joshmatthews.com Josh Matthews], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:dwitte@gmail.com Dan Witte], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher (ping on irc)]<br />
|group=dev-platform<br />
|source_dirs=extensions/permissions/<br />
|url=<br />
|components=Core :: Permission Manager<br />
}}<br />
<br />
{{Module<br />
|name=Cycle Collector<br />
|description=Code to break and collect objects within reference cycles<br />
|owner=[https://mozillians.org/en-US/u/mccr8/ Andrew McCreight]<br />
|peers=Peter Van der Beken, Olli Pettay<br />
|peersemeritus=David Baron<br />
|source_dirs=xpcom/base/nsCycleCollector.* and some support headers<br />
|components=Core::XPCOM<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=C++/Rust usage, tools, and style<br />
|description=Aspects of C++ use such as language feature usage, standard library versions/usage, compiler/toolchain versions, formatting and naming style, and aspects of Rust use as needs arise<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:bballo@mozilla.com Botond Ballo], [mailto:glandium@mozilla.com Mike Hommey], [mailto:jwalden@mozilla.com Jeff Walden], [mailto:sgiesecke@mozilla.com Simon Giesecke]<br />
|source_dirs=non-third-party C++ and Rust code in the tree<br />
|components=Various components<br />
|group=dev-platform<br />
}}<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:peterv@propagandism.org Peter Van der Beken], [mailto:afarre@mozilla.com Andreas Farre]<br />
|ownersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:sawang@mozilla.com Samael Wang], [mailto:kyle@nonpolynomial.com Kyle Machulis]<br />
|group=dev-platform<br />
|source_dirs=docshell/, uriloader/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:hsivonen@iki.fi Henri Sivonen], [mailto:bobbyholley@gmail.com Bobby Holley], [mailto:baku@mozilla.com Andrea Marchesini],<br />
[mailto:ehsan@mozilla.com Ehsan Akhgari], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:nika@thelayzells.com Nika Layzell], [mailto:afarre@mozilla.com Andreas Farre], [mailto:emilio@crisal.io Emilio Cobos], [mailto:asuth@mozilla.com Andrew Sutherland], [mailto:echen@mozilla.com Edgar Chen]<br />
|ownersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|peersemeritus=[mailto:justin.lebar@gmail.com Justin Lebar], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:bent.mozilla@gmail.com Ben Turner], [mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:me@kylehuey.com Kyle Huey], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:ben@wanderview.com Ben Kelly], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:kyle@nonpolynomial.com Kyle Machulis], [mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/*, except directories covered by other modules<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML<br />
}}<br />
<br />
{{Module<br />
|name=DOM File<br />
|description=DOM Blob, File and FileSystem APIs <br />
|owner=[mailto:amarchesini@Mozilla.com Andrea Marchesini]<br />
|peers=[mailto:olli@pettay.fi Olli Pettay]<br />
|group=dev-platform<br />
|source_dirs=dom/file, dom/filesystem<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: File<br />
}}<br />
<br />
{{Module<br />
|name=Event Handling<br />
|description=DOM Events and Event Handling <br />
|owner=[mailto:olli@pettay.fi Olli Pettay], [mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:echen@mozilla.com Edgar Chen]<br />
|peersemeritus=[mailto:sshih@mozilla.com Stone Shih]<br />
|group=dev-platform<br />
|source_dirs=dom/events and event handling related code elsewhere <br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM: Events, Core::DOM: UI Events & Focus Handling<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:asuth@mozilla.com Andrew Sutherland]<br />
|peers=[mailto:baku@mozilla.com Andrea Marchesini], [mailto:ytausky@mozilla.com Yaron Tausky]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey], [mailto:bkelly@mozilla.com Ben Kelly]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jvarga@mozilla.com Jan Varga]<br />
|peers=[mailto:btseng@mozilla.com Bevis Tseng], [mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:baku@mozilla.com Andrea Marchesini]<br />
|ownersemeritus=[mailto:bent.mozilla@gmail.com Ben Turner]<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:me@kylehuey.com Kyle Huey]<br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Gecko Profiler<br />
|description=Gecko's built-in profiler<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|peers=[mailto:gsquelart@mozilla.com Gerald Squelart], [mailto:gtatum@mozilla.com Greg Tatum], [mailto:canaltinova@mozilla.com Nazim Can Altinova], [mailto:jseward@mozilla.com Julian Seward] (LUL), [mailto:kvijayan@mozilla.com Kannan Vijayan] (JS integration), [mailto:brennie@mozilla.com Barret Rennie] (Screenshots).<br />
|ownersemeritus=[mailto:b56girard@gmail.com Benoit Girard]<br />
|peersemeritus=[mailto:shu@mozilla.com Shu-yu Guo] (JS integration), [mailto:tlee@mozilla.com Thinker Lee] (TaskTracer), [mailto:cyu@mozilla.com Cervantes Yu] (TaskTracer), Nicholas Nethercote<br />
|group=dev-platform<br />
|source_dirs=tools/profiler/<br />
|url=https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler<br />
|components=Core::Gecko Profiler<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:masayuki@d-toybox.com Masayuki Nakano]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=dom/events (and platform specific directories under it)<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jrmuizel@mozilla.com Jeff Muizelaar](Thebes, QCMS, YCbCr, Cairo/Pixman, Regions, OS X, Other)<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bas.schouten@live.nl Bas Schouten](Layers, Windows), [mailto:jgilbert@mozilla.com Jeff Gilbert](WebGL, ANGLE), [mailto:mwoodrow@mozilla.com Matt Woodrow](Layers API), [mailto:jfkthame@googlemail.com Jonathan Kew](text/fonts), [mailto:nsilva@mozilla.com Nicolas Silva](MozSurface), [mailto:ncameron@mozilla.com Nick Cameron], [mailto:sikeda@mozilla.com Sotaro Ikeda](B2G), [mailto:jnicol@mozilla.com Jamie Nicol](Android), [mailto:mstange@themasta.com Markus Stange](OS X), [mailto:lsalzman@mozilla.com Lee Salzman](Skia, Canvas2D), [mailto:rhunt@mozilla.com Ryan Hunt](OMTP), [mailto:gwatson@mozilla.com Glenn Watson ](WebRender), [mailto:dmalyshau@mozilla.com Dzmitry Malyshau](WebRender)<br />
|peersemeritus=[mailto:bgirard@mozilla.com Benoit Girard](Compositor, Performance), [mailto:ajuma.bugzilla@alijuma.com Ali Juma], [mailto:george@mozilla.com George Wright](Canvas2D), [mailto:mchang@mozilla.com Mason Chang], [mailto:dvander@mozilla.com David Anderson], [mailto:clord@mozilla.com Christopher Lord], [mailto:jdaggett@mozilla.com John Daggett](text/fonts), [mailto:bjacob@mozilla.com Benoit Jacob](gfx/gl), [mailto:jdrew@mozilla.com Joe Drew], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:snorp@mozilla.com James Willcox](Android),<br />
|group=dev-platform<br />
|source_dirs=gfx/, dom/canvas/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::Graphics: Layers, Core::Graphics: Text, Core::Graphics: WebRender, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=WebGPU (Graphics submodule)<br />
|description=WebGPU implementation<br />
|owner=[mailto:dmalyshau@mozilla.com Dzmitry Malyshau]<br />
|peers=[mailto:josh@joshgroves.com Joshua Groves], [mailto:jgilbert@mozilla.com Jeff Gilbert],<br />
|group=dev-platform<br />
|source_dirs=dom/webgpu<br />
|url=https://wiki.mozilla.org/Platform/GFX/WebGPU<br />
|components=Core::Graphics::WebGPU<br />
}}<br />
<br />
{{Module<br />
|name=APZ (Graphics submodule)<br />
|description=Asynchronous panning and zooming<br />
|owner=[mailto:bballo@mozilla.com Botond Ballo]<br />
|ownersemeritus=[mailto:kgupta@mozilla.staktrace.com Kartikaya Gupta]<br />
|peers=[mailto:kgupta@mozilla.staktrace.com Kartikaya Gupta], [mailto:tnikkel@mozilla.com Timothy Nikkel], [mailto:rhunt@mozilla.com Ryan Hunt], [mailto:mstange@mozilla.com Markus Stange]<br />
|group=dev-platform<br />
|source_dirs=gfx/layers/apz<br />
|url=https://wiki.mozilla.org/Platform/GFX/APZ<br />
|components=Core::Panning and Zooming<br />
}}<br />
<br />
{{Module<br />
|name=Moz2D (Graphics submodule)<br />
|description=Platform independent 2D graphics API<br />
|owner=[mailto:bschouten@mozilla.com Bas Schouten]<br />
|peers=[mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jwatt@jwatt.org Jonathan Watt]<br />
|group=dev-platform<br />
|source=gfx/2d<br />
|url=https://wiki.mozilla.org/Platform/GFX/Moz2D<br />
|components=Core::Graphics<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|peersemeritus=[mailto:jstenback@gmail.com Johnny Stenback]<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:gsvelto@mozilla.com Gabriele Svelto]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=[mailto:wchen@mozilla.com William Chen]<br />
|group=dev-platform<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:hsivonen@hsivonen.fi Henri Sivonen (encoding)], [mailto:jfkthame@gmail.com Jonathan Kew (except to encoding)]<br />
|peers=[mailto:VYV03354@nifty.ne.jp Masatoshi Kimura], [mailto:gandalf@aviary.pl Zibi Braniecki], [mailto:m_kato@ga2.so-net.ne.jp Makoto Kato]<br />
|ownersemeritus=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:tnikkel@gmail.com Timothy Nikkel]<br />
|peers=[mailto:aosmond@mozilla.com Andrew Osmond], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar]<br />
|peersemeritus=[mailto:seth.bugzilla@blackhail.net Seth Fowler], [mailto:netzen@gmail.com Brian Bondy], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Native message-passing between threads and processes<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|ownersemeritus=Chris Jones, Bill McCloskey<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:amccreight@mozilla.com Andrew McCreight]<br />
|peersemeritus=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner], David Anderson, Kan-Ru Chen, Bevis Tseng, Ben Kelly<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript engine (SpiderMonkey)<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:jdemooij@mozilla.com Jan de Mooij], André Bargull, [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:jcoppeard@mozilla.com Jon Coppeard], [mailto:sphink@gmail.com Steve Fink], [mailto:arai.unmht@gmail.com Tooru Fujisawa], [mailto:evilpies@gmail.com Tom Schuster], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:jwalden@mit.edu Jeff Walden], [mailto:ystartsev@mozilla.com Yulia Startsev], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:iireland@mozilla.com Iain Ireland], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:ccullen@mozilla.com Caroline Cullen], [mailto:nfitzgerald@mozilla.com Nick Fitzgerald], [mailto:luke@mozilla.com Luke Wagner], [mailto:sunfish@mozilla.com Dan Gohman], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:hv1989@gmail.com Hannes Verschore], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:nmatsakis@mozilla.com Niko Matsakis], [mailto:ejpbruel@mozilla.com Eddy Bruel], [mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], Andreas Gal, [mailto:efaust@mozilla.com Eric Faust], [mailto:khyperia@mozilla.com Ashley Hauck], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:till@tillschneidereit.net Till Schneidereit], Nicholas Nethercote<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript JIT<br />
|description=JavaScript engine's JIT compilers (IonMonkey, Baseline)<br />
|owner=[mailto:jdemooij@mozilla.com Jan de Mooij]<br />
|peers=André Bargull, [mailto:bbouvier@mozilla.com Benjamin Bouvier], [mailto:tcampbell@mozilla.com Ted Campbell], [mailto:ccullen@mozilla.com Caroline Cullen], [mailto:mgaudet@mozilla.com Matthew Gaudet], [mailto:bhackett1024@gmail.com Brian Hackett], [mailto:iireland@mozilla.com Iain Ireland], [mailto:nicolas.b.pierron@mozilla.com Nicolas Pierron], [mailto:evilpies@gmail.com Tom Schuster], [mailto:sstangl@mozilla.com Sean Stangl], [mailto:kvijayan@mozilla.com Kannan Vijayan], [mailto:luke@mozilla.com Luke Wagner]<br />
|peersemeritus=[mailto:danderson@mozilla.com David Anderson], [mailto:shu@mozilla.com Shu-yu Guo], [mailto:hv1989@gmail.com Hannes Verschore]<br />
|group=dev-tech-js-engine-internals<br />
|source_dirs=js/src/jit<br />
|url=http://www.mozilla.org/js/spidermonkey<br />
|components=Core::JavaScript Engine: JIT<br />
}}<br />
<br />
{{Module<br />
|name=jsat<br />
|description=Javascript screen reader that is used in Android and B2G<br />
|owner=[mailto:eitan@monotonous.org Eitan Isaacson]<br />
|peers=[mailto:yzenevich@mozilla.com Yura Zenevich]<br />
|group=dev-accessibility<br />
|source_dirs=accessible/jsat/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:jorendorff@mozilla.com Jason Orendorff]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), etc.<br />
|owner=[mailto:dholbert@mozilla.com Daniel Holbert]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jfkthame@gmail.com Jonathan Kew], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:matt.woodrow@gmail.com Matt Woodrow], [mailto:xidorn+moz@upsuper.org Xidorn Quan], [mailto:emilio@crisal.io Emilio Cobos Álvarez]<br />
|ownersemeritus=[mailto:dbaron@dbaron.org David Baron]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-platform<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/printing/, layout/tables/, layout/tools/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Layout<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Columns, Core::Layout: Flexbox, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: Generated Content, Lists, and Counters, Core::Layout: Grid, Core::Layout: Images, Video, and HTML Frames, Core::Layout: Positioned, Core::Layout: Ruby, Core::Layout: Scrolling and Overflow, Core::Layout: Tables, Core::Layout: Text and Fonts, Core::Print Preview, Core::Printing: Output<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|ownersemeritus=Taras Glek, Michael Wu<br />
|peers=[mailto:mnovotny@mozilla.com Michal Novotny], [mailto:vgosu@mozilla.com Valentin Gosu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=Media Playback<br />
|description=HTML Media APIs, including Media Source Extensions and non-MSE video/audio element playback, and Encrypted Media Extensions. (WebRTC and WebAudio not included).<br />
|owner=[mailto:jyavenard@mozilla.com Jean-Yves Avenard]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:cpearce@mozilla.com Chris Pearce]<br />
|peers=[mailto:kinetik@flim.org Matthew Gregan], [mailto:bvandyk@mozilla.com Bryce Van Dyk], [mailto:jolin@mozilla.com John Lin], [mailto:alwu@mozilla.com Alastor Wu], [mailto:jwwang@mozilla.com JW Wang]<br />
|group=dev-media<br />
|source_dirs=dom/media, media/gmp-clearkey/, media/libcubeb/, media/libnestegg/, media/libogg/, media/libopus/, media/libstagefright/, media/libtheora/, media/libtremor/, media/libvorbis/, media/libvpx/, media/omx-plugin/, media/rlz/<br />
|url=<br />
|components=Core::Audio/Video<br />
}}<br />
<br />
{{Module<br />
|name=Media Transport<br />
|description=Pluggable transport for real-time media<br />
|owner=[mailto:ekr@rtfm.com Eric Rescorla]<br />
|peers=[mailto:bcampen@mozilla.com Byron Campen], [mailto:abr@mozilla.com Adam Roach], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|group=dev-media<br />
|source_dirs=media/mtransport<br />
|url=<br />
|components=Core::WebRTC::Networking<br />
}}<br />
<br />
{{Module<br />
|name=Memory Allocator<br />
|description=Most things related to memory allocation in Gecko, including jemalloc, replace-malloc, DMD (dark matter detector), logalloc, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=<br />
|peersemeritus=Eric Rahm, Nicholas Nethercote<br />
|group=dev-platform<br />
|source_dirs=memory/<br />
|components=Core::DMD, Core::jemalloc<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=[mailto:jwalden@mit.edu Jeff Walden]<br />
|peers=[mailto:Ms2ger@gmail.com Ms2ger], [mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=Mozglue<br />
|description=Glue library containing various low-level functionality, including a dynamic linker for Android, a DLL block list for Windows, etc.<br />
|owner=[mailto:mh+mozilla@glandium.org Mike Hommey]<br />
|peers=[mailto:kgupta@mozilla.com Kartikaya Gupta] (mozglue/android), [mailto:nchen@mozilla.com Jim Chen] (mozglue/android), [mailto:aklotz@mozilla.com Aaron Klotz] (Windows Dll Blocklist/Interceptor)<br />
|group=dev-platform<br />
|source_dirs=mozglue/<br />
|components=Core::mozglue<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[[Modules/Firefox_Technical_Leadership|Firefox Technical Leadership module]]<br />
|ownersemeritus=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MSCOM<br />
|description=Integration with Microsoft Distributed COM<br />
|owner=[mailto:aklotz@mozilla.com Aaron Klotz]<br />
|peers=[mailto:jteh@mozilla.com James Teh], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=dev-platform<br />
|source_dirs=ipc/mscom/%<br />
|url=<br />
|components=Core::IPC: MSCOM}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:dd.mozilla@gmail.com Dragana Damjanovic]<br />
|peers= [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:mnovotny@mozilla.com Michal Novotny], [mailto:valentin.gosu@gmail.com Valentin Gosu], [mailto:kershaw@mozilla.com Kershaw Chang], [mailto:juhsu@mozilla.com Junior Hsu]<br />
|ownersemeritus=[mailto:mcmanus@ducksong.com Patrick McManus], [mailto:cbiesinger@gmail.com Christian Biesinger] |peersemeritus= Shih-Chiang Chien, [mailto:bzbarsky@mit.edu Boris Zbarsky], Steve Workman, Nick Hurley, [mailto:daniel@haxx.se Daniel Stenberg ], [mailto:jduell.mcbugs@gmail.com Jason Duell]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NodeJS usage, tools, and style<br />
|description=Advises on the use of NodeJS and npm packages at build and runtime. Reviews additions/upgrades/removals of vendored npm packages. Works with appropriate teams to maintain automated license and security audits of npm packages. Works with the security team and relevant developers to respond to vulnerabilities in NodeJS and vendored npm packages.<br />
|owner=[mailto:dmosedale@mozilla.com Dan Mosedale]<br />
|peers=[mailto:mbanner@mozilla.com Mark Banner], [mailto:dcoates@mozilla.com Danny Coates], [mailto:khudson@mozilla.com Kate Hudson], [mailto:elee@mozilla.com Ed Lee], [mailto:dtownsend@mozilla.com Dave Townsend]<br />
|source_dirs=package.json, package-lock.json, node_modules and others as appropriate<br />
|components=Various components<br />
|forum=[https://wiki.mozilla.org/Firefox/firefox-dev firefox-dev], #nodejs on slack<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:mh@glandium.org Mike Hommey]<br />
|ownersemeritus=[mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:davidp99@gmail.com David Parks]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:john@pointysoftware.net John Schoenick], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:jstenback@gmail.com Johnny Stenback], Benjamin Smedberg<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:kwright@mozilla.com Kris Wright]<br />
|peers=[mailto:glandium@mozilla.com Mike Hommey], [mailto:kwright@mozilla.com Kris Wright]<br />
|ownersemeritus=Nicholas Nethercote<br />
|peersemeritus=Felipe Gomes, Eric Rahm<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Private Browsing<br />
|description=Implementation of the Private Browsing mode, and the integration of other modules with Private Browsing APIs.<br />
|owner=[mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews]<br />
|group=dev-platform<br />
|source_dirs=Implementation and consumers of Private Browsing APIs in nsILoadContext, nsIPrivateBrowsingChannel, PrivateBrowsingUtils.jsm and the related glue code. <br />
|url=https://wiki.mozilla.org/Private_Browsing<br />
|components=Firefox::Private Browsing<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:ckerschbaumer@mozilla.com Christoph Kerschbaumer]<br />
|peersemeritus=[mailto:brendan@mozilla.org Brendan Eich], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:dveditz@mozilla.com Dan Veditz]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=Push Notifications<br />
|description=Push is a way for application developers to send messages to their web applications.<br />
|owners=[mailto:lina@mozilla.com Lina Cambridge]<br />
|ownersemeritus=[mailto:doug.turner@gmail.com Doug Turner]<br />
|peers=[mailto:mt@lowentropy.net Martin Thomson], [mailto:ddamjanovic@mozilla.com Dragana Damjanovic]<br />
|peersemeritus=[mailto:nsm.nikhil@gmail.com Nikhil Marathe]<br />
|group=<br />
|source_dirs=dom/push<br />
|url=<br />
|components=Core::DOM: Push Notifications<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:rrelyea@redhat.com Bob Relyea], [mailto:mt@lowentropy.net Martin Thomson]<br />
|ownersemeritus=[mailto:wtc@google.com Wan-Teh Chang], [mailto:ttaubert@mozilla.com Tim Taubert]<br />
|peers=[mailto:kaie@kuix.de Kai Engert], [mailto:ryan.sleevi@gmail.com Ryan Sleevi], [mailto:ekr@rtfm.com Eric Rescorla], [mailto:franziskuskiefer@gmail.com Franziskus Kiefer], [mailto:dueno@redhat.com Daiki Ueno]<br />
|peersemeritus=[mailto:emaldona@redhat.com Elio Maldonado]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:dkeeler@mozilla.com Dana Keeler]<br />
|ownersemeritus=[mailto:kaie@kuix.de Kai Engert (2001-2012)]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:cykesiopka.bmo@gmail.com Cykesiopka], [mailto:jc@mozilla.com J.C. Jones], [mailto:fkiefer@mozilla.com Franziskus Kiefer]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM<br />
}}<br />
<br />
{{Module<br />
|name=Static analysis & rewriting for C++<br />
|description=Tools for checking C++ code looking for problems at compile time, plus tools for automated rewriting of C++ code.<br />
|owner=[mailto:andi@mozilla.com Andi-Bogdan Postelnicu]<br />
|peers=[mailto:nika@thelayzells.com Nika Layzell], [mailto:sfink@mozilla.com Steve Fink], [mailto:jrmuizel@mozilla.com Jeff Muizelaar], [mailto:eakhgari@mozilla.com Ehsan Akhgari]<br />
|peersemeritus=[mailto:birunthan@mohanathas.com Birunthan Mohanathas]<br />
|group=dev-platform<br />
|source_dirs=build/clang-plugin, tools/rewriting among other out of tree tools<br />
|url=<br />
|components=Core::Rewriting & Analysis<br />
}}<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:mak77@bonardo.net Marco Bonardo]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland], [mailto:jvarga@mozilla.com Jan Varga]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:emilio@crisal.io Emilio Cobos Álvarez]<br />
|ownersemeritus=[mailto:dbaron@dbaron.org David Baron], [mailto:cam@mcc.id.au Cameron McCormack]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley], [mailto:xidorn+moz@upsuper.org Xidorn Quan]<br />
|peersemeritus=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-platform<br />
|source_dirs=layout/style/, servo/<br />
|url=https://wiki.mozilla.org/Gecko:Overview#Style_System<br />
|components=Core::CSS Parsing and Computation<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert], [mailto:birtles@gmail.com Brian Birtles]<br />
|group=dev-tech-svg<br />
|source_dirs=dom/svg/, layout/svg/, dom/smil/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/SVG<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=UA String<br />
|description=User Agent String<br />
|owner=[mailto:tantek@mozilla.com Tantek Çelik]<br />
|peers=[mailto:kdubost@mozilla.com Karl Dubost], [mailto:cpeterson@mozilla.com Chris Peterson], [mailto:hsivonen@mozilla.com Henri Sivonen] <br />
|group=dev-platform<br />
|source_dirs=netwerk/protocol/http/<br />
|url=https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:mstange@themasta.com Markus Stange]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-platform<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=Web Audio<br />
|description=Support for the W3C Web Audio API specification.<br />
|owner=[mailto:padenot@mozilla.com Paul Adenot]<br />
|ownersemeritus=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-platform<br />
|source_dirs=dom/media/webaudio<br />
|url=https://wiki.mozilla.org/Web_Audio_API<br />
|components=Core::Web Audio<br />
}}<br />
<br />
{{Module<br />
|name=Web Painting<br />
|description=painting, display lists, and layer construction<br />
|owner=[mailto:matt.woodrow@gmail.com Matt Woodrow]<br />
|peers=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:dbaron@dbaron.org David Baron], [mailto:tnikkel@gmail.com Timothy Nikkel], [mailto:mstange@themasta.com Markus Stange], [mailto:mmynttinen@mozilla.com Miko Mynttinen], [mailto:jnicol@mozilla.com Jamie Nicol]<br />
|group=dev-platform<br />
|source_dirs= layout/painting, the display list and layer related methods on nsIFrame and its subclasses<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout: Web Painting<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:bcampen@mozilla.com Byron Campen] [mailto:abr@mozilla.com Adam Roach]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=netwerk/sctp (also see submodules "WebRTC Media" and "WebRTC Signaling")<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC Networking<br />
}}<br />
<br />
{{Module<br />
|name=WebVR<br />
|description=Gecko's implementation of WebVR (Virtual Reality) functionality, including API, devices, graphics and integration<br />
|owner=[mailto:kgilbert@mozilla.com Kearwood (Kip) Gilbert]<br />
|peers=[mailto:dmu@mozilla.com Daosheng Mu], [mailto:igorostizaga@mozilla.com Imanol Fernández]<br />
|peersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=dom/vr, gfx/vr<br />
|url=https://mozvr.com/<br />
|components=Core::WebVR<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=Top level Widget<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|ownersemeritus=[mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:robert@ocallahan.org Robert O'Callahan]<br />
|peersemeritus=[mailto:pavlov@pavlov.net Stuart Parmenter], <br />
|group=dev-platform<br />
|source_dirs=widget/, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget, Core::Printing: Setup<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=Android widget support<br />
|owner=[mailto:jwillcox@mozilla.com James Willcox]<br />
|peers=<br />
|ownersemeritus=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|group=dev-platforms-mobile<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=GTK widget support<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:stransky@redhat.com Martin Stránský]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan]<br />
|group=dev-platform<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Headless<br />
|description=Headless widget support<br />
|owner=[mailto:bdahl@mozilla.com Brendan Dahl]<br />
|peers=<br />
|ownersemeritus=<br />
|group=dev-platform<br />
|source_dirs=widget/headless/<br />
|url=<br />
|components=Firefox::Headless<br />
}}<br />
<br />
{{Module<br />
|name=Widget - macOS<br />
|description= macOS widget support<br />
|owner=[mailto:spohl@mozilla.com Stephen A Pohl]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|ownersemeritus=[mailto:robert@ocallahan.org Robert O'Callahan], [mailto:mstange@themasta.com Markus Stange]<br />
|peersemeritus=[mailto:joshmoz@gmail.com Josh Aas], [mailto:b56girard@gmail.com Benoit Girard], [mailto:smichaud@pobox.com Steven Michaud]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widget support<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:cmartin@mozilla.com Chris Martin], [mailto:tkikuchi@mozilla.com Toshihito Kikuchi], [mailto:mhowell@mozilla.com Molly Howell], [mailto:aklotz@mozilla.com Aaron Klotz], [mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peersemeritus=[mailto:robert.strong.bugs@gmail.com Rob Strong], [mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:doug.turner@gmail.com Doug Turner], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:robarnold@cmu.edu Rob Arnold]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xml<br />
|source_dirs=dom/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:kmaglione@mozilla.com Kris Maglione], [mailto:sgiesecke@mozilla.com Simon Giesecke]<br />
|ownersemeritus=Benjamin Smedberg<br />
|peersemeritus=[https://mozillians.org/en-US/u/dougt/ Doug Turner], [mailto:erahm@mozilla.com Eric Rahm], <br />
|group=dev-platform<br />
|source_dirs=startupcache/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=Deep Magic<br />
|owner=[mailto:bobbyholley@gmail.com Bobby Holley]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:amccreight@mozilla.com Andrew McCreight], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:nika@thelayzells.com Nika Layzell]<br />
|peersemeritus=[mailto:gal@uci.edu Andreas Gal], [mailto:jstenback@gmail.com Johnny Stenback], [mailto:gkrizsanits@mozilla.com Gabor Krizsanits]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files.<br />
|owner=[mailto:nika@thelayzells.com Nika Layzell]<br />
|peers=[mailto:amccreight@mozilla.com Andrew McCreight]<br />
|ownersemeritus=[mailto:me@kylehuey.com Kyle Huey]<br />
|peersemeritus=[mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=<br />
|peersemeritus=[mailto:jonas@sicking.cc Jonas Sicking], [mailto:axel@pike.org Axel Hecht], [mailto:erahm@mozilla.com Eric Rahm]<br />
|group=dev-tech-xslt<br />
|source_dirs=dom/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Windows <br />
|description=Sandboxing for the Windows platform <br />
|owner=[mailto:bobowencode@gmail.com Bob Owen] (:bobowen)<br />
|peers=[mailto:aklotz@mozilla.com Aaron Klotz] (:aklotz), [mailto:davidp99@gmail.com David Parks] (:handyman), [mailto:jimm@mozilla.com Jim Mathies] (:jimm), [mailto:tkikuchi@mozilla.com Toshihito Kikuchi] (:toshi)<br />
|ownersemeritus=[https://mozillians.org/en-US/u/TimAbraldes Tim Abraldes]<br />
|peersemeritus=[mailto:netzen@gmail.com Brian Bondy]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/win <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - OSX <br />
|description=Sandboxing for the OSX platform <br />
|owner=[mailto:haftandilian@mozilla.com Haik Aftandilian]<br />
|peers=<br />
|group=dev-platform <br />
|source_dirs=security/sandbox/mac <br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Sandboxing - Linux<br />
|description=Sandboxing for the Linux platform<br />
|owner=[mailto:jld@mozilla.com Jed Davis]<br />
|peers=[mailto:gcp@mozilla.com Gian-Carlo Pascutto]<br />
|group=dev-platform<br />
|source_dirs=security/sandbox/linux<br />
|url=https://wiki.mozilla.org/Security/Sandbox <br />
|components=Core::Security: Process Sandboxing<br />
}}<br />
<br />
{{Module<br />
|name=Crash reporting<br />
|description=Infrastructure and tools used to generate, submit and process crash reports. This includes the in-tree google-breakpad fork, the crash report generation machinery as well as the host tools used to dump symbols, analyse minidumps and generate stack traces.<br />
|owner=[mailto:gsvelto@mozilla.com Gabriele Svelto] (:gsvelto)<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=toolkit/crashreporter, toolkit/components/crashes, tools/crashreporter, ipc/glue/CrashReporter*, mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java<br />
|url=https://firefox-source-docs.mozilla.org/toolkit/crashreporter/crashreporter/index.html<br />
|components=Toolkit::Crash Reporting<br />
}}<br />
<br />
===Submodules===<br />
{{Module<br />
|name=Build Config - Fennec<br />
|description=Submodule of the build config covering Fennec's build system in mobile/android.<br />
|owner=[mailto:nalexander@mozilla.com Nicholas Alexander]<br />
|peers=Same as Build Config<br />
|group=dev-builds<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Build Config - Taskgraph<br />
|description=Support for task-graph generation in decision, action, and cron tasks, including configuration of all tasks including those for CI, nightlies, and releases; as well as Docker and VM images used to execute those tasks.<br />
|owner=[mailto:mozilla@hocat.ca Tom Prince]<br />
|peers=[mailto:ahal@mozilla.com Andrew Halberstadt], [mailto:aki@mozilla.com Aki Sasaki], [mailto:bstack@mozilla.com Brian Stack], [mailto:mh@glandium.org Mike Hommey], [mailto:gps@mozilla.com Gregory Szorc], [mailto:jmaher@mozilla.com Joel Maher], [mailto:callek@mozilla.com Justin Wood], [mailto:dustin@mozilla.com Dustin Mitchell]<br />
|components=Firefox Build System::Task Configuration<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Media<br />
|description=Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:jib@mozilla.com Jan-Ivar Bruaroey], [mailto:dminor@mozilla.com Dan Minor], [mailto:apehrson@mozilla.com Andreas Pehrson], <br />
|peersemeritus=[mailto:pkerr@mozilla.com Paul Kerr], [mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc, /dom/media/webrtc, /dom/media/systemservices<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Audio/Video)<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC Signaling<br />
|description=Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling<br />
|owner=[mailto:bcampen@mozilla.com Byron Campen]<br />
|peers=[mailto:ekr@mozilla.com Eric Rescorla], [mailto:abr@mozilla.com Adam Roach], [mailto:rjesup@mozilla.com Randell Jesup], [mailto:nohlmeier@mozilla.com Nils Ohlmeier]<br />
|peersemeritus=[mailto:ehugg@cisco.com Ethan Hugg]<br />
|group=dev-media<br />
|source_dirs=/media/webrtc/signaling/<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC (Signaling)<br />
}}<br />
<br />
<noinclude><br />
<br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Find Backend<br />
Core::General<br />
Core::History: Global<br />
Core::Image Blocking<br />
Core::Localization<br />
Core::Networking: Domain Lists<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::X-remote<br />
Core::XUL<br />
</pre><br />
</noinclude></div>Dholberthttps://wiki.mozilla.org/index.php?title=BugBot&diff=1227160BugBot2020-05-14T16:20:44Z<p>Dholbert: /* With autofix */ Fix typo (s/y/by/)</p>
<hr />
<div>{{ DISPLAYTITLE:Autonag: Bugzilla triaging bot and alerting system }}<br />
<br />
<p style="font-size: larger; font-weight:bold;"><br />
This page lists all the actions done by the [https://github.com/mozilla/relman-auto-nag/ Autonag bot].</p><br />
<br />
= Introduction =<br />
Every day hundreds of tickets are opened in [https://bugzilla.mozilla.org Bugzilla] which track the tasks, defects and enhancements needed for the development of Firefox and other Mozilla projects. <br />
Triaging and priotirizing these bugs are an essential part of our development process and we automate part of this process so as to increase our development turn around and improve the quality of our bugs metadata. The set of scripts we use to improve the quality of our bugs, decrease our triaging time and help Release Management ship better quality software is called '''Autonag'''.<br />
<br />
Initially created as an alerting system (by email) to our triagers, Autonag rules now also make changes to our bugs metadata on Bugzilla so as to fix inconsistencies. <br />
<br />
Rules that change automatically some data in Bugzilla (change a priority, needinfo somebody, close a bug…) are called "Rules with Autofix" and those rules are applied once per hour. ''For now, security bugs aren't touched.''<br />
<br />
Rules that do not change data but have other results such as generate a report or send an email are called "Rules without Autofix". Rules without autofix are processed once a day (at 2PM CET).<br />
<br />
= Rules =<br />
== With autofix ==<br />
<br />
{{AutonagRule<br />
| Rule name = Bug assigned but marked as <code>UNCONFIRMED</code><br />
| Purpose = Mitigate an issue in Bugzilla (bugs reported by new users are not tagged as <code>NEW</code><br />
| Action = Change the status from <code>UNCONFIRMED</code> to <code>ASSIGNED</code> if there is an assignee<br />
| Example = 1495908<br />
| Source = assignee_but_unconfirmed.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Regression keyword is missing<br />
| Purpose = Regression keyword is important to differentiate an actual defect<br />
| Action = Sets the <code>regression</code> keyword on bugs with the <code>regression-range-wanted</code> keyword is set<br />
| Example = 1461034<br />
| Source = has_regression_range_no_keyword.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Remove <code>leave-open</code> keyword on closed bug<br />
| Purpose = Clean up a mismatch in metadata<br />
| Action = If a bug is closed but the <code>leave-open</code> keyword is still set, remove it<br />
| Example = 1382185<br />
| Source = leave_open.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = [meta] in title but not in keywords<br />
| Purpose = Improve metedata quality<br />
| Action = Adds the <code>meta</code> keyword if the bug title starts by [META]<br />
| Example = 1435799 <br />
| Source = meta_summary_missing.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Update Firefox Status flags for bugs reopened during Nightly cycle<br />
| Purpose = Avoids potential issues for sheriffs and release managers<br />
| Action = Set <code>firefox-status</code> flag back from ''fixed'' to ''affected''<br />
| Example = 1495962<br />
| Source = nightly_reopened.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Bug with no assignee but a patch landed<br />
| Purpose = Attribute unassigned bug to the developer that fixed it<br />
| Action = The ASSIGNEE field on the bug is changed from nobody@mozilla.org to the author of the patch that landed in mozilla-central<br />
| Example = 1514338<br />
| Source = no_assignee.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Close crash bugs with no crashes over 12 weeks<br />
| Purpose = Reduce the backlog of bugs to check for Release Managers <br />
| Action = Crash bugs without any crash reports for more than 12 weeks<br />
| Example = 1470864<br />
| Source = no_crashes.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Remove <code>stalled</code> keyword on closed bugs<br />
| Purpose = Fix inconsistency between metadata and bug status<br />
| Action = If a bug is marked as <code>FIXED</code> and also has a <code>stalled</code> keyword set, the keyword is removed<br />
| Example = 1491624<br />
| Source = stalled.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Has meta keyword but not [meta] in the bug title<br />
| Purpose = Having [meta] in the bug title helps with quick search results<br />
| Action = If a bug has the meta keyword set, [meta] is added to the bug title<br />
| Example = 1257692<br />
| Source = summary_meta_missing.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Set a Firefox status flag for beta if there is one for nightly and release<br />
| Purpose = Fix inconsistency in Firefox status flags that can lead to a bug going undetected by Release Managers during the beta cycle<br />
| Action = If a status exists for Firefox N-1 and for Firefox N+1, guess a value for Firefox N <br />
| Example = 1500273<br />
| Source = missing_beta_status.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Increase priority of bugs tracked by Release Managers<br />
| Purpose = Priotitizes bugs needing an action for shipping quality software<br />
| Action = If a bug is tracked by a Release Manager, update the priority (P2 for nightly, P1 for the rest)<br />
| Example = 1515946,1508277,1512493<br />
| Source = mismatch_priority_tracking_release.py<br />
| Note = There are multiple files mismatch-priority-tracking-*.py, one per channel<br />
}}<br />
{{AutonagRule<br />
| Rule name = Add <code>regression</code> keywords to bugs (uses Machine Learning)<br />
| Purpose = Surface regressions not filed as such<br />
| Action = If a bug is tracked by a Release Manager, update the priority (P2 for nightly, P1 for the rest)<br />
| Example = 1529139<br />
| Source = regression.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Move untriaged bug into the correct component (uses machine learning) <br />
| Purpose = Decrease manual triage time<br />
| Action = Uses machine learning to mass move bugs in Firefox::Untriaged into a better component<br />
| Example = 1530316 <br />
| Source = component.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Copy crash signature from duplicate bugs to main bugs<br />
| Purpose = Crash bugs marked as duplicate of another one may have a different crash signature. We need to consolidate all signatures in the bug where a patch to fix them is being worked on, other wise we may not fix them all<br />
| Action = If a crash bug is marked as a duplicate, the signatures it referenced are added to the new bug<br />
| Example = 1517205<br />
| Source = copy_duplicate_info.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Increase severity of bugs tracked by Release Managers<br />
| Purpose = Fix inconsistency in metadata<br />
| Action = If a bug is tracked for an upcoming release but it's severity field is low, the severity is increased<br />
| Example = 1538966<br />
| Source = tracked_bad_severity.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Nag triage owner to set priority on bugs<br />
| Purpose = Every defect should have a severity set. Also bugs with no severity set are harder to prioritize for Release Managers with regards to the release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage])<br />
| Action = The triage owner is needinfoed in Bugzilla or nagged via email to set a priority on bugs<br />
| Example = 1527818<br />
| Source = workflow/no_severity.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Nag triage owner on P1 bugs with no activity<br />
| Purpose = Since P1 means that the bug should be fixed for the next release (see [https://mozilla.github.io/bug-handling/triage-bugzilla#what-do-you-triage what-do-you-triage]), the bug needs to show any progress in its resolution (or maybe the priority should be decreased)<br />
| Action = The triage owner is nagged via email to have a reminder<br />
| Example = 1507251<br />
| Source = workflow/p1_no_activity.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Nag triage owner to find an assignee for P1 bugs with no assignee and no activity<br />
| Purpose = Since P1 means that the bug should be fixed for the next release (see [https://mozilla.github.io/bug-handling/triage-bugzilla#what-do-you-triage what-do-you-triage]), the bug urgently needs to have an assignee (or the priority should be decreased)<br />
| Action = The triage owner is needinfoed in Bugzilla or nagged via email to find an assignee on bugs<br />
| Example = 1541291<br />
| Source = workflow/p1_no_assignee.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Change the priority from P2 to P1 on assigned bug the merge day<br />
| Purpose = Since P2 means that the bug should be fixed for the next next release (see [https://mozilla.github.io/bug-handling/triage-bugzilla#what-do-you-triage what-do-you-triage]), when we are the merge day then this bug automatically becomes a P1.<br />
| Action = Update the priority to P1 and add a comment to explain.<br />
| Example = <br />
| Source = workflow/p2_merge_day.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Patch not landed <br />
| Purpose = Identify bugs with an unlanded r+ patch. Maybe the patch is now obsolete or the bug needs to have a sheriff land the code with the <code>checkin-needed</code> keyword set.<br />
| Action = The bug assignee is needinfoed in Bugzilla to ask her/him to have look<br />
| Example = 1496844<br />
| Source = not_landed.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Regression without regressed_by and some bug dependencies <br />
| Purpose = Identify regressions which have dependencies (blocks or depends_on) and an empty regressed_by, probably people forgot to use the new field.<br />
| Action = The bug assignee or the person who added some dependencies or the reporter is needinfoed to ask to fill regressed_by when it's possible.<br />
| Example = 1545797<br />
| Source = regression_without_regressed_by.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Product::Component changed after the priority has been set <br />
| Purpose = Identify bugs where Product::Component changed after the priority has been set. The priority is probably no more up-to-date and so triage owner needs to set it.<br />
| Action = Reset the priority to "--" with a comment explaining why the bot is doing that.<br />
| Example = 1546366<br />
| Source = prod_comp_changed_with_priority.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Close intermittent test failure bugs <br />
| Purpose = Close intermittent test failure bugs which are P5s, not marked <code>leave-open</code>, and have not had a new failure in 21 days.<br />
| Action = RESOLVE bug as INCOMPLETE with a comment explaining why the bot is doing this.<br />
| Example = 1577895<br />
| Source = close_intermittents.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Ask for a beta uplift request <br />
| Purpose = Identify bugs where a patch fixed a bug in nightly and beta is marked as affected.<br />
| Action = Needinfo the assignee to ask it's worth making an uplift request.<br />
| Example = 1620434<br />
| Source = uplift_beta.py<br />
}}<br />
<br />
== Without autofix ==<br />
<br />
<br />
{{AutonagRule<br />
| Rule name = Feature vs regression<br />
| Purpose = Fix inconsistency in bugs with both the <code>regression</code> and <code>feature</code> keywords set <br />
| Source = feature_regression.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Inactive bugs with the <code>leave-open</code> keyword set<br />
| Purpose = Help identify dead/inactive bugs<br />
| Action = Needinfo the triage owner if a bug is inactive but has the <code>leave-open</code> keyword set<br />
| Example = 1367072<br />
| Source = leave_open_no_activity.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Inactive Meta bugs<br />
| Purpose = Help identify dead/inactive bugs<br />
| Action = Needinfo the triage owner if a meta bug has no activity and no dependencies set <br />
| Source = meta_no_deps_no_activity.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Low-severity bug but tracked by a release manager <br />
| Purpose = Idenitfy mismatch in metadata, a tracked bug should not have a priotity lower than ''normal''<br />
| Source = mismatch-priority-tracking.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Alert for lack of feedback in a bug<br />
| Purpose = Increase reaction time on bugs prioritized by upper management or release managers<br />
| Action = If a bug as an unanswered NeedInfo request from a release manager or a director, send a warning email<br />
| Source = ni_from_manager.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Bugs with no priority and no activity<br />
| Purpose = Triage owners need to process the backlog<br />
| Action = Needinfo the triage owner (only :Overholt for now)<br />
| Example = 1503461<br />
| Source = ni_triage_owner.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Bugs with only one or two words in the summary<br />
| Purpose = Make sure the bug is actually useful, a two-words summary often indicates a poor quality bug report<br />
| Example = 1512823<br />
| Source = one_two_word_summary.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Remind developers about tracked bugs<br />
| Purpose = Make sure that bugs tracked for the next release are addressed<br />
| Source = query_creator.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Reporter not answering to Needinfo request<br />
| Purpose = identify bugs stalled because we need more information fron the reporter to reproduce it<br />
| Source = reporter_with_ni.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Top crashers vs ''normal'' severity<br />
| Purpose = Consistency and help getting traction on bugs<br />
| Example = 1471692<br />
| Source = topcrash_bad_severity.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Identify tracked bugs with a NeedInfo request<br />
| Purpose = Make sure that bugs tracked for a release or nominated for tracking which also have a NeedInfo request do not get stuck<br />
| Action = Send an email<br />
| Source = tracked_needinfo.py <br />
}}<br />
{{AutonagRule<br />
| Rule name = Tracked bugs untouched for a week<br />
| Purpose = Identify important bugs for a release which are not being acted upon <br />
| Action = Send an email<br />
| Source = tracking.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Regressed in upcoming release<br />
| Purpose = Identify potential regression<br />
| Action = Send an email with the list of bugs marked as non affecting a release but affecting the next one<br />
| Source = unaffected_affected_no_reg.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Identify unlanded uplifts to Beta and ESR<br />
| Purpose = Make sure that we ship with the bugs that we need<br />
| Action = Send an email wih the list of bugs with uplift requests not landed on the affected branch<br />
| Example = 1509394<br />
| Source = unlanded.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Bugs with high severity in Firefox::Untriaged<br />
| Purpose = Identify potentially important issues left untriaged<br />
| Source = untriage_important_sev.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = <code>Version</code> set but not <code>status_firefox</code><br />
| Purpose = The <code>Version</code> value is set automatically by Bugzilla on landing a patch but not the <code>status_firefoxXX</code><br />
| Action = Send an email<br />
| Source = version_affected.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Check release dates on the Wiki<br />
| Purpose = Verify the consistency of our release dates on wiki.mozilla.org as we use them in automation <br />
| Action = Send an email<br />
| Source = ../next_release.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Information about bugs landed during Soft Code Freeze<br />
| Purpose = List fixed bug with patches which landed in mozilla-central during the soft freeze week. The listing includes patch statistics.<br />
| Action = Send an email<br />
| Source = code_freeze_week.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = Hightlight Fixed bugs in nightly we may want to uplift<br />
| Purpose = Identify potentially upliftable bugs. <br />
| Action = Send an email with the recent fixes, the affected branches and metadata for prioritization<br />
| Source = missed_uplifts.py<br />
}}<br />
{{AutonagRule<br />
| Rule name = New user with a Needinfo request<br />
| Purpose = Help identify potentially unactionnable bugs per lack of information<br />
| Action = Send an email<br />
| Source = newbie_with_ni.py<br />
}}<br />
[[category:Release_Management|Autonag]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1219809WeeklyUpdates2019-11-04T17:11:21Z<p>Dholbert: /* Meeting Notes */ add link for nov 4 meeting</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (18:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join #weekly-project-call on irc.mozilla.org or Slack for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise doMwn. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2019<br />
|-<br />
| <br />
* [[WeeklyUpdates/2019-11-04|November 4th, 2019]]<br />
* [[WeeklyUpdates/2019-10-28|October 28th, 2019]]<br />
* [[WeeklyUpdates/2019-10-21|October 21st, 2019]]<br />
* [[WeeklyUpdates/2019-10-14|October 14th, 2019]]<br />
* [[WeeklyUpdates/2019-10-07|October 7th, 2019]]<br />
* [[WeeklyUpdates/2019-09-30|September 30th, 2019]]<br />
* [[WeeklyUpdates/2019-09-23|September 23th, 2019]]<br />
* [[WeeklyUpdates/2019-09-16|September 16th, 2019]]<br />
* [[WeeklyUpdates/2019-09-09|September 9th, 2019]]<br />
* September 2th, 2019 (No Meeting due to US Holiday: US Labor Day)<br />
* [[WeeklyUpdates/2019-08-26|August 26th, 2019]]<br />
* [[WeeklyUpdates/2019-08-19|August 19th, 2019]]<br />
* [[WeeklyUpdates/2019-08-12|August 12th, 2019]]<br />
* [[WeeklyUpdates/2019-08-05|August 5th, 2019]]<br />
* [[WeeklyUpdates/2019-07-29|July 29th, 2019]]<br />
* [[WeeklyUpdates/2019-07-22|July 22th, 2019]]<br />
* [[WeeklyUpdates/2019-07-15|July 15th, 2019]]<br />
* [[WeeklyUpdates/2019-07-08|July 8th, 2019]]<br />
* [[WeeklyUpdates/2019-07-01|July 1st, 2019]]<br />
* 24th June (No Meeting due to Mozilla Whistler 2019 All hands)<br />
* 17th June (No Meeting due to Mozilla Whistler 2019 All hands)<br />
* [[WeeklyUpdates/2019-06-10|June 10th, 2019]]<br />
* [[WeeklyUpdates/2019-06-03|June 3rd, 2019]]<br />
* May 27th, 2019 (No Meeting Due to Memorial Day US Holiday)<br />
* [[WeeklyUpdates/2019-05-20|May 20th, 2019]]<br />
* [[WeeklyUpdates/2019-05-13|May 13th, 2019]]<br />
* [[WeeklyUpdates/2019-05-06|May 6th, 2019]]<br />
* [[WeeklyUpdates/2019-04-29|April 29nd, 2019]]<br />
* [[WeeklyUpdates/2019-04-22|April 22nd, 2019]]<br />
* [[WeeklyUpdates/2019-04-15|April 15th, 2019]]<br />
* [[WeeklyUpdates/2019-04-08|April 8th, 2019]]<br />
* [[WeeklyUpdates/2019-04-01|April 1st, 2019]]<br />
* [[WeeklyUpdates/2019-03-25|March 25th, 2019]]<br />
* [[WeeklyUpdates/2019-03-18|March 18th, 2019]]<br />
* [[WeeklyUpdates/2019-03-11|March 11th, 2019]]<br />
* [[WeeklyUpdates/2019-03-04|March 4th, 2019]]<br />
* [[WeeklyUpdates/2019-02-25|February 25th, 2019]]<br />
* February 18th, 2019 (No meeting due to Washington's Birthday US Holiday)<br />
* [[WeeklyUpdates/2019-02-11|February 11th, 2019]]<br />
* [[WeeklyUpdates/2019-02-04|February 4th, 2019]]<br />
* [[WeeklyUpdates/2019-01-28|January 28th, 2019]]<br />
* January 21th, 2019 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2019-01-14|January 14th, 2019]]<br />
* [[WeeklyUpdates/2019-01-07|January 7th, 2019]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-12-17|December 17th, 2018]] <br />
* [[WeeklyUpdates/2018-12-10|December 10th, 2018]] (no meeting, people flying home from [[All_Hands/Orlando2018|Mozlando2018]]!)<br />
* [[WeeklyUpdates/2018-12-03|December 3rd, 2018]] (no meeting, see you at [[All_Hands/Orlando2018|Mozlando2018]]!)<br />
* [[WeeklyUpdates/2018-11-26|November 26th, 2018]]<br />
* [[WeeklyUpdates/2018-11-19|November 19th, 2018]]<br />
* [[WeeklyUpdates/2018-11-12|November 12th, 2018]]<br />
* [[WeeklyUpdates/2018-11-05|November 5th, 2018]]<br />
* [[WeeklyUpdates/2018-10-29|October 29nd, 2018]]<br />
* [[WeeklyUpdates/2018-10-22|October 22nd, 2018]]<br />
* [[WeeklyUpdates/2018-10-15|October 15th, 2018]]<br />
* [[WeeklyUpdates/2018-10-08|October 8th, 2018]]<br />
* [[WeeklyUpdates/2018-10-01|October 1st, 2018]]<br />
* [[WeeklyUpdates/2018-09-24|September 24th, 2018]]<br />
* [[WeeklyUpdates/2018-09-17|September 17th, 2018]]<br />
* [[WeeklyUpdates/2018-09-10|September 10th, 2018]]<br />
* [[WeeklyUpdates/2018-09-03|September 3rd, 2018]] (no meeting, US Holiday)<br />
* [[WeeklyUpdates/2018-08-27|August 27th, 2018]]<br />
* [[WeeklyUpdates/2018-08-20|August 20th, 2018]]<br />
* [[WeeklyUpdates/2018-08-13|August 13th, 2018]]<br />
* [[WeeklyUpdates/2018-08-06|August 6th, 2018]]<br />
* [[WeeklyUpdates/2018-07-30|July 30th, 2018]]<br />
* [[WeeklyUpdates/2018-07-23|July 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-07-16|July 16th, 2018]]<br />
* [[WeeklyUpdates/2018-07-09|July 9th, 2018]]<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28th, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|January 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates/2019-06-03&diff=1213146WeeklyUpdates/2019-06-032019-06-03T12:43:05Z<p>Dholbert: /* Welcome! */ Add welcome lines for interns Charlie & Connor</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* Watch at https://mzl.la/project-meeting-2019-06-03 or anonymously at https://air.mozilla.org. You can also watch on the Mozilla YouTube channel at https://www.youtube.com/watch?v=uMa8nehFv40<br />
* join #weekly-project-call on irc.mozilla.org or Slack for backchannel discussion<br />
* If you plan on presenting, please join the Zoom video chat 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
* '''Presenters only:''' Zoom Meeting ID: 828 817 988 [https://mozilla.zoom.us/j/828817988 https://mozilla.zoom.us/j/828817988.] Do '''not''' use this room if you're not planning to speak. <br />
* One-tap mobile<br />
** +16465588656,,828817988# US (New York)<br />
** +17207072699,,828817988# US<br />
* Dial-in by your location<br />
** +1 646 558 8656 US (New York)<br />
** +1 720 707 2699 US<br />
** 877 853 5257 US Toll-free<br />
** +61 2 8015 2088 Australia<br />
** +61 8 7150 1149 Australia<br />
** 1800 893 423 Australia Toll-free<br />
** +1 647 558 0588 Canada<br />
** +33 1 8288 0188 France<br />
** +33 7 5678 4048 France<br />
** 0 805 082 588 France Toll-free<br />
** +49 30 5679 5800 Germany<br />
** +49 69 8088 3899 Germany<br />
** +49 30 3080 6188 Germany<br />
** 800 724 3138 Germany Toll-free<br />
** +852 5808 6088 Hong Kong, China<br />
** +44 203 695 0088 United Kingdom<br />
** +44 203 966 3809 United Kingdom<br />
** +44 203 051 2874 United Kingdom<br />
** 0 800 031 5717 United Kingdom Toll-free<br />
<br />
__TOC__<br />
<br />
= Weekly Project Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
<br />
=== Later Events and Available Tickets ===<br />
<br />
'''Mozilla DevRel Complimentary Tickets'''<br />
<br />
Our DevRel Sponsorship team sometimes receives complimentary tickets to share with Mozillians interested in attending the following events. Please reach out to Sandra Persing at spersing@mozilla.com for more details. <br />
<br />
''' Mozilla Sponsored Developer Events'''<br />
<br />
Mozilla sponsored developer events around the globe: <br />
<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Kristina Gorr<br />
| Open Leadership Community Coordinator with the Mozilla Foundation<br />
| MozFest 10th Anniversary Book<br />
| Remote, Columbus, Ohio<br />
| no<br />
| n/a<br />
| https://mzl.la/mozfest10people<br />
|-<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
<!-- Insert new rows here --><br />
|-<br />
| Their Name<br />
| Your Name<br />
| Intro location<br />
| Their Location<br />
| Their Role<br />
|-<br />
|-<br />
| Jeane Carlos<br />
| Punam Dahiya<br />
| MTV<br />
| MTV<br />
| Intern - User Journey Engineering<br />
|-<br />
|-<br />
| Adriano Aviles<br />
| Hal Wine<br />
| SF<br />
| SF<br />
| Intern - Fraud detection<br />
|-<br />
|-<br />
| Alvina Waseem<br />
| David Bolter<br />
| Toronto<br />
| Toronto<br />
| Intern - GeckoView Engineering<br />
|-<br />
|-<br />
| Krystal Yang<br />
| Steve Fink<br />
| MTV<br />
| MTV<br />
| Intern - SpiderMonkey GC<br />
|-<br />
|-<br />
| Michelle Wong<br />
| Severin Rudie<br />
| SFO<br />
| UBC<br />
| Intern - Firefox for Fire TV / Echo Show <br />
|-<br />
|-<br />
| Charlie Marlow<br />
| Sean Voisen<br />
| SFO<br />
| SFO<br />
| Intern - Firefox Platform Rendering <br />
|-<br />
|-<br />
| Connor Brewster<br />
| Sean Voisen<br />
| SFO<br />
| SFO<br />
| Intern - Firefox Platform Rendering <br />
|-<br />
|}<br />
<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=Platform/Layout/ReleaseNotes/67&diff=1210424Platform/Layout/ReleaseNotes/672019-04-11T18:16:44Z<p>Dholbert: /* Webcompat */ Adjust wording to make it meaningful ("Fix scroll position is lost")</p>
<hr />
<div>= Firefox 67 Platform Layout Release Notes =<br />
<br />
== Noteworthy Changes ==<br />
<br />
=== Features ===<br />
<br />
* Implement revert keyword ({{Bug|1215878}})<br />
* Add support for prefers-color-scheme media query ({{Bug|1494034}})<br />
* Limit size of custom cursors ({{Bug|1445844}})<br />
<br />
=== Webcompat ===<br />
<br />
* Fix a case where scroll position would be lost on reflow with large enough scroller ({{Bug|1526609}})<br />
* Shrink the overflowed contents to the display size if user has never changed zoom level ({{Bug|1519013}})<br />
<br />
== All Bugs Fixed ==<br />
<br />
===CSS Parsing and Computation===<br />
<br />
{{Bug|1215878}} implement revert keyword<br />
<br />
{{Bug|1218257}} CSS Animation of stroke-dashoffset from 0 to 100% does not work<br />
<br />
{{Bug|1383451}} Intermittent /css/CSS2/lists/list-style-021.xht | Testing http://web-platform.test:8000/css/CSS2/lists/list-style-021.xht == http://web-platform.test:8000/css/CSS2/lists/list-style-021-ref.xht<br />
<br />
{{Bug|1440384}} GenerateCombinedTransform probably doesn't want to run at the time it runs.<br />
<br />
{{Bug|1494034}} Add support for CSS prefers-color-scheme media feature<br />
<br />
{{Bug|1517319}} Hit MOZ_CRASH(Invoking Servo_Element_IsDisplayNone on unstyled element) at libcore/option.rs:1008<br />
<br />
{{Bug|1521604}} Add parentFlexElement property to HTML elements<br />
<br />
{{Bug|1523140}} Derive more and shrink repr(c) representation of MaxLength / MozLength.<br />
<br />
{{Bug|1523712}} Restrict parsing of -moz-binding to chrome and UA sheets.<br />
<br />
{{Bug|1524246}} AddressSanitizer: heap-use-after-free [@ gfxUserFontEntry::FontDataDownloadComplete] with READ of size 8<br />
<br />
{{Bug|1525134}} Move image loads out of the style struct accessors.<br />
<br />
{{Bug|1525371}} Remove the pres context pointer from ComputedStyle.<br />
<br />
{{Bug|1526294}} Should not need a pres context to get a system font.<br />
<br />
{{Bug|1526736}} Rename MozLength and MaxLength.<br />
<br />
{{Bug|1527410}} Use Rust sizes for flex-basis, width, height, and their min/max properties.<br />
<br />
{{Bug|1527438}} Use Rust types for Position.<br />
<br />
{{Bug|1527542}} Use Rust types for background-size / mask-size.<br />
<br />
{{Bug|1527972}} Use Rust types for a couple miscellaneous properties.<br />
<br />
{{Bug|1528035}} Improve derive(Parse).<br />
<br />
{{Bug|1528050}} make nsStyle{List,Position}::CalcDifference old style struct argument non-nullable<br />
<br />
{{Bug|1528451}} incorrect styling on moneysmart.gov.au<br />
<br />
{{Bug|1528464}} Convert NS_STYLE_MASK_MODE_* to enum class<br />
<br />
{{Bug|1528639}} Implement scroll-margin parser and serializer<br />
<br />
{{Bug|1528640}} Implement scroll-padding parser and serializer<br />
<br />
{{Bug|1528644}} Can enter in ContentStateChanged while tearing down the frame tree from nsTextEditorState (using maxlength / minlength).<br />
<br />
{{Bug|1528712}} Remove some more dependencies from style in nsPresContext.<br />
<br />
{{Bug|1528834}} Implement scroll-snap-align parser and serializer<br />
<br />
{{Bug|1528940}} convert #define NS_STYLE_FLEX_DIRECTION values to enum class in nsStyleConsts.h<br />
<br />
{{Bug|1529058}} Use Rust types for z-index / perspective / transform-origin / -moz-window-transform-origin / perspective-origin<br />
<br />
{{Bug|1529444}} Add support for getting a string from PseudoStyleType<br />
<br />
{{Bug|1530193}} Refactor the preference stylesheet to not require a pres context.<br />
<br />
{{Bug|1530247}} Turn the Servo serialization property whitelist into a blacklist.<br />
<br />
{{Bug|1530571}} Update property_database.js and test_transitions_per_property.html for properties for the new scroll snap<br />
<br />
{{Bug|1530751}} Make the pres context optional in the style system.<br />
<br />
{{Bug|1530826}} Fix LengthPercentage computed value serialization when negative calc is involved.<br />
<br />
{{Bug|1530847}} Be consistent on how we store and serialize InsetRect's radius for computed and specified values.<br />
<br />
{{Bug|1530896}} Adjust CSS parser to un-recognize `contain:style` for now<br />
<br />
{{Bug|1531507}} windows/aarch64 - TEST-UNEXPECTED-PASS | /css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html | View relative units - computed - expected FAIL<br />
<br />
{{Bug|1531516}} windows/aarch64 - TEST-UNEXPECTED-PASS | /css/css-values/viewport-units-css2-001.html | multiple failures<br />
<br />
{{Bug|1531582}} Don't drop a change hint on the floor in ContentStateChanged when there are no rules referencing a state bit.<br />
<br />
{{Bug|1532122}} Make word-spacing, letter-spacing, and line-height use Rust lengths.<br />
<br />
{{Bug|1532134}} Remove Option<>s from TransformOperation.<br />
<br />
{{Bug|1532135}} Derive more stuff for ClipRect.<br />
<br />
{{Bug|1532358}} Add tests for interaction media features that use the widget codepath.<br />
<br />
{{Bug|1532833}} Use servo serialization code for 'contain'<br />
<br />
{{Bug|1532835}} clang-format nsStyleConsts.h<br />
<br />
{{Bug|1532856}} Serialize radii with Servo.<br />
<br />
{{Bug|1533392}} Intermittent layout/style/test/test_revert.html | font-family: Should inherit something non-initial to begin with - didn't expect "sans-serif", but got it<br />
<br />
{{Bug|1533783}} AddressSanitizer: SEGV /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Assertions.h:314:3 in MOZ_Crash(char const*, int, char const*)<br />
<br />
{{Bug|1533870}} Preemptively fix all non-unified-build bustage in layout/style<br />
<br />
{{Bug|1533891}} Assertion failure: IsResolved() (Resolve() must be called first), at /builds/worker/workspace/build/src/layout/style/nsStyleStruct.h:239<br />
<br />
{{Bug|1533963}} Use a single RestyleHint representation.<br />
<br />
{{Bug|1534471}} run clang-format on layout/style/<br />
<br />
{{Bug|1534726}} Sync servo stuff.<br />
<br />
{{Bug|1535084}} Cleanup contain property.<br />
<br />
===CSS Transitions and Animations===<br />
<br />
{{Bug|1505225}} Individual transform properties' animations don't create stacking context in delay phase<br />
<br />
===DOM: CSS Object Model===<br />
<br />
{{Bug|1490619}} GetComputedStyle for an inset property on an overconstrained abspos or fixed element returns used value, not absolutized computed value<br />
<br />
{{Bug|1519621}} Perma [tier2] /css/cssom-view/scroll-behavior-smooth.html | Smooth scrolling while doing history navigation. - assert_not_equals: Shouldn't be scrolled to top anymore. got disallowed value 0<br />
<br />
{{Bug|1524219}} Intermittent /css/cssom-view/scroll-behavior-main-frame-window.html | Main frame with auto scroll-behavior ; scroll() with smooth behavior - assert_equals: Final value of scrollLeft expected 2970 but got 2350<br />
<br />
{{Bug|1532570}} nsDOMCSSDeclaration::SetProperty should check for the "important" string in a case-insensitive way.<br />
<br />
===Layout===<br />
<br />
{{Bug|969874}} Incorrect baseline alignment for flex container with overflow other than visible<br />
<br />
{{Bug|1212398}} Intermittent test_parse_rule.html | Test timed out.<br />
<br />
{{Bug|1265104}} There Is No Dragged Text Following in Moving Cursor When Dragging a Link inside the Web Component(Shadow DOM), or inside display: contents;<br />
<br />
{{Bug|1273876}} Intermittent test_transitions_events.html | unexpected event on SPAN element with id 'five' elapsedTime=0.5 propertyName='color'<br />
<br />
{{Bug|1443320}} Intermittent layout/style/test/test_restyles_in_smil_animation.html | should restyle in most frames (got 3 restyles over five frames, expected 4~5)<br />
<br />
{{Bug|1445844}} Custom cursor goes outside the bounds of the web content in "malware" website<br />
<br />
{{Bug|1450652}} Remove the ability to override the node name using XBL.<br />
<br />
{{Bug|1470926}} crash near null in [@ nsTextControlFrame::ScrollSelectionIntoView]<br />
<br />
{{Bug|1504072}} Assertion failure: ok (FrameMaintainsOverflow() != ComputeCustomOverflow())<br />
<br />
{{Bug|1504594}} Intermittent details-summary/mouse-click-twice-float-details.html == details-summary/float-details.html | image comparison, max difference: 4, number of differing pixels: 1<br />
<br />
{{Bug|1506949}} Consider using idle queue for RefreshDriver ticks after first contentful paint but before load<br />
<br />
{{Bug|1508420}} Add tests for dynamic reflow root handling<br />
<br />
{{Bug|1516377}} Attach position:fixed elements to the minimum scale size viewport<br />
<br />
{{Bug|1520077}} Use the minimum scale size even if no overflow:hidden is specified<br />
<br />
{{Bug|1521644}} Layout changes to support zooming with containerless scrolling<br />
<br />
{{Bug|1521786}} Keep RefreshDriver ticking before first contentful paint<br />
<br />
{{Bug|1523061}} Simplify nsIFrame::ListTag() APIs<br />
<br />
{{Bug|1523062}} Devirtualize a few nsIPresShell bits.<br />
<br />
{{Bug|1523071}} Start using Servo's representation of LengthPercentage.<br />
<br />
{{Bug|1523181}} Crash in nsFontFaceLoader::Cancel<br />
<br />
{{Bug|1523282}} mark restyle-inside-first-line.html random because of inconsistency<br />
<br />
{{Bug|1523808}} Services module is not defined in layoutdebug<br />
<br />
{{Bug|1524031}} Intermittent scrolling/frame-scrolling-attr-1.html == scrolling/frame-scrolling-attr-ref.html | image comparison, max difference: 1, number of differing pixels: {1,2}<br />
<br />
{{Bug|1524220}} Perma /intersection-observer/root-margin.html | document.scrollingElement.scrollTop = document.documentElement.clientHeight + 200 - assert_equals: entries.length expected 2 but got 1<br />
<br />
{{Bug|1524266}} select tags in contentEditable can't be selected for removal<br />
<br />
{{Bug|1524328}} Don't resolve counter styles during styling.<br />
<br />
{{Bug|1524437}} Replace text with colored box in transform reftests<br />
<br />
{{Bug|1524585}} nsDocumentViewer.cpp: Value stored to 'height' is never read<br />
<br />
{{Bug|1524774}} Intermittent scrolling/frame-scrolling-attr-2.html == scrolling/frame-scrolling-attr-ref.html | image comparison, max difference: 1, number of differing pixels: 1<br />
<br />
{{Bug|1524806}} Start RefreshDriver timer very early<br />
<br />
{{Bug|1525475}} Perma Android [tier2] /css/css-masking/clip/clip-transform-order-2.html | Testing http://web-platform.test:8000/css/css-masking/clip/clip-transform-order-2.html == http://web-platform.test:8000/css/css-masking/clip/clip-filter-order-ref.html<br />
<br />
{{Bug|1526097}} Consider removing nsIFrame::eBlockFrame flag for "IsFrameOfType", in favor of QueryFrame-backed "IsBlockFrameOrSubclass()" method<br />
<br />
{{Bug|1526114}} Intermittent Linux64-qr http://localhost:37789/1549576556955/136/289480.html#top == http://localhost:37789/1549576556955/136/289480-ref.html | image comparison, max difference: 4, number of differing pixels: 1374<br />
<br />
{{Bug|1527360}} Add a profiler marker for the case when RefreshDriver is still waiting for paint<br />
<br />
{{Bug|1527519}} Unify nsLayoutUtils::GetAsBlock() and nsIFrame::IsBlockFrameOrSubclass()<br />
<br />
{{Bug|1528299}} InspectorUtils.getCSSStyleRules returns incorrect type<br />
<br />
{{Bug|1528914}} Tidy a bit the relationship between nsPresContext and nsDocShell.<br />
<br />
{{Bug|1529389}} add a test for IntersectionObserverEntry.isIntersecting<br />
<br />
{{Bug|1529422}} Take individual transforms into account for ActiveLayerTracker.<br />
<br />
{{Bug|1529616}} Coverity warns about a possible nullptr dereference in nsTextEditorState::SetSelectionRange()<br />
<br />
{{Bug|1529619}} Coverity gets confused about the null check inside nsCSSFrameConstructor::BeginBuildingScrollFrame()<br />
<br />
{{Bug|1530657}} Intermittent GECKO(10828) | Assertion failure: aCount == 0 || aStart < Length() (Invalid aStart index), at z:/build/build/src/obj-firefox/dist/include/nsTArray.h:2222<br />
<br />
{{Bug|1531019}} Ignore the return value of IsSelectable in order to make sure Coverity isn't confused by unchecked return value with IsSelectable returning a boolean<br />
<br />
{{Bug|1531025}} Possible division by zero in nsIFrame::ComputeBorderRadii()<br />
<br />
{{Bug|1531470}} Support position:sticky in OOP iframes<br />
<br />
{{Bug|1532128}} layout: Make some global functions static and remove some unused functions<br />
<br />
{{Bug|1533040}} Are the nsStyleCoord warnings about possible overflow valid?<br />
<br />
{{Bug|1533424}} AddressSanitizer: SEGV /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/RefPtr.h:267:27 in get<br />
<br />
{{Bug|1533931}} windows/aarch64 - TEST-UNEXPECTED-PASS | /css/css-backgrounds/background-attachment-local/attachment-local-clipping-color-3.html, attachment-local-clipping-color-4.html, attachment-local-clipping-color-5.html | failures in multiple files<br />
<br />
{{Bug|1534158}} Drop InspectorUtils.scrollElementIntoView.<br />
<br />
{{Bug|1534467}} layout-debugger no longer builds in non-DEBUG builds<br />
<br />
{{Bug|1534761}} Change maximum cursor size when intersecting UI to 32 pixels.<br />
<br />
{{Bug|1534914}} Improve blocked cursor behavior to fall back to next image.<br />
<br />
===Layout: Block and Inline===<br />
<br />
{{Bug|1524897}} sup/sub elements are aligned differently in Chrome and Firefox with line-height and vertical-align.<br />
<br />
{{Bug|1525133}} nsBlockFrame::GetNaturalBaselineBOffset calls kid->GetVerticalAlignBaseline() without checking whether its WM is orthogonal<br />
<br />
===Layout: Columns===<br />
<br />
{{Bug|1504053}} Appending or Inserting a block containing column-span descendants doesn't reframe multi-column container<br />
<br />
{{Bug|1516739}} crash at null in [@ nsAbsoluteContainingBlock::SetInitialChildList]<br />
<br />
{{Bug|1520722}} nsColumnSetFrame's continuation is deleted due to bidi resolution<br />
<br />
{{Bug|1524382}} use-after-poison in [@ nsFrameConstructorState::ProcessFrameInsertions]<br />
<br />
{{Bug|1527725}} ###!!! ASSERTION: NS_BLOCK_HAS_FIRST_LETTER_STYLE state out of sync: 'haveFirstLetterStyle == ((mState & NS_BLOCK_HAS_FIRST_LETTER_STYLE) != 0)'<br />
<br />
===Layout: Flexbox===<br />
<br />
{{Bug|1533088}} coverity complains about mAlignSelfFlags in "strut" flex item constructor<br />
<br />
===Layout: Floats===<br />
<br />
{{Bug|1530462}} float-retry-push-image.html makes bogus/flaky positioning assumption<br />
<br />
===Layout: Form Controls===<br />
<br />
{{Bug|1375476}} [e10s] Properly style <option> elements in the parent process UI (support CSS on Select Options)<br />
<br />
{{Bug|1425218}} <input type=time> uses AM/PM on a system with a 24h locale<br />
<br />
{{Bug|1524573}} input type="range" rendering issues on macOS<br />
<br />
{{Bug|1528098}} Remove some content-select code.<br />
<br />
{{Bug|1529036}} Buttons don't receive mouse events from overflowing in-flow descendants<br />
<br />
===Layout: Grid===<br />
<br />
{{Bug|1520584}} [css-grid] grid padding reduces available space for abspos inside grid items<br />
<br />
{{Bug|1526567}} [css-grid] min-height:auto clamped to 0 by indefinite max-height percentage<br />
<br />
===Layout: Positioned===<br />
<br />
{{Bug|1515310}} Intermittent position-sticky/nested-sticky-2.html == position-sticky/nested-sticky-2-ref.html | image comparison, max difference: 32, number of differing pixels: 123<br />
<br />
===Layout: Scrolling and Overflow===<br />
<br />
{{Bug|1515822}} scroll position sometimes is not saved inside display: contents<br />
<br />
{{Bug|1519553}} above-the-fold animations in scrollport (of e.g. 'height') can cause visible elements to jitter, with scroll anchoring<br />
<br />
{{Bug|1520363}} Rename nsIScrollableFrame::GetAnchor to nsIScrollableFrame::Anchor<br />
<br />
{{Bug|1520666}} Ebay jumps to the top once you scroll to the bottom on a mobile device<br />
<br />
{{Bug|1522026}} sluggish scrolling due to the implementation of scroll anchoring<br />
<br />
{{Bug|1522964}} Re-enable scroll anchoring on Fennec with gofaster intervention<br />
<br />
{{Bug|1523052}} Calculating scroll anchoring bounding rect on taskcluster log takes long time<br />
<br />
{{Bug|1523866}} [Reddit] Certain content shakes while scrolling<br />
<br />
{{Bug|1525628}} Make "is block frame" check more nuanced, in nsHTMLScrollFrame::GetLogicalBaseline<br />
<br />
{{Bug|1526749}} Cleanup around scroll-snap<br />
<br />
{{Bug|1528107}} Changes to scroll-anchoring tests in initial landing were backed out<br />
<br />
{{Bug|1529420}} Minor fixes for scroll snap web platform tests<br />
<br />
{{Bug|1532443}} Drop ScrollFrameHelper::ShouldClampScrollPosition<br />
<br />
===Layout: Tables===<br />
<br />
{{Bug|1520018}} Gecko and Webkit/Blink default to different box-sizing values for table tags <br />
<br />
{{Bug|1530048}} HTML spec says tables should have `border-color:gray`, but we only do that in quirks mode<br />
<br />
===Layout: Text and Fonts===<br />
<br />
{{Bug|1296042}} Implement "word-break: break-word"<br />
<br />
{{Bug|1358019}} word-break: break-all shouldn't create breaks between punctuation<br />
<br />
{{Bug|1484899}} Use Noto Serif and Noto Sans for Hebew and Thai<br />
<br />
{{Bug|1507661}} hyphens:auto renders two hyphens in words like e-commerce<br />
<br />
{{Bug|1509067}} Failing to fall back across multiple subsetted faces of an installed font [was: Unicode Character ✘ is not showing up]<br />
<br />
{{Bug|1526216}} Crash in nsFontFaceLoader::Cancel() in ASAN builds<br />
<br />
{{Bug|1532477}} LogicalRect::YMost() looks wrong<br />
<br />
{{Bug|1534099}} Add font.name-list.cursive.* for Linux to pref file for better discoverability<br />
<br />
===SVG===<br />
<br />
{{Bug|1072758}} "Assertion failure: false (should have already reflowed the anonymous block child)"<br />
<br />
{{Bug|1322770}} SVG triggers assertion: fromParams.mDistToPoint <= toParams.mDistToPoint<br />
<br />
{{Bug|1343357}} Assertion failure: startParams.mPath == endParams.mPath (unexpected path mismatch)<br />
<br />
{{Bug|1346610}} HTML doc triggers runaway CPU usage in Firefox Nightly (DoS threat)<br />
<br />
{{Bug|1413319}} Assertion failure: aActiveTime >= 0 (Expecting non-negative active time) [@ nsSMILTimedElement::ActiveTimeToSimpleTime]<br />
<br />
{{Bug|1508028}} stroke-miterlimit minimum should now be 0 instead of 1<br />
<br />
{{Bug|1521425}} Intermittent svg/text-stroke-scaling-02a.html == svg/text-stroke-scaling-02-ref.html | image comparison, max difference: 59, number of differing pixels: 1<br />
<br />
{{Bug|1523178}} Merge SVGAngle and nsSVGOrientType into SVGOrient<br />
<br />
{{Bug|1531578}} crash near null in [@ mozilla::SVGGeometryFrame::GetCanvasTM]<br />
<br />
{{Bug|1532156}} marker-start is incorrect for closed paths<br />
<br />
{{Bug|1532444}} Dynamic change to marker style causes it to continuously repaint forever</div>Dholberthttps://wiki.mozilla.org/index.php?title=Gecko:Debugging_Tools&diff=1209012Gecko:Debugging Tools2019-03-15T20:11:46Z<p>Dholbert: /* Frame Tree Dump */ add link to a page with documentation on layout debugger</p>
<hr />
<div>== .gdbinit ==<br />
<br />
[http://web.mit.edu/bzbarsky/www/gdbinit bz's gdbinit]<br />
<br />
== GDB pretty printers ==<br />
<br />
[http://hg.mozilla.org/users/jblandy_mozilla.com/archer-mozilla/ JS-specific printers]<br />
<br />
[http://hg.mozilla.org/users/josh_joshmatthews.net/archer-mozilla/ General gecko printers]<br />
<br />
== Printing arrays ==<br />
<br />
define ptarray<br />
if $argc == 0<br />
help ptarray<br />
else<br />
set $size = $arg0.mHdr->mLength<br />
set $capacity = $arg0.mHdr->mCapacity<br />
set $size_max = $size - 1<br />
set $elts = $arg0.Elements()<br />
end<br />
if $argc == 1<br />
set $i = 0<br />
while $i < $size<br />
printf "elem[%u]: ", $i<br />
p *($elts + $i)<br />
set $i++<br />
end<br />
end<br />
if $argc == 2<br />
set $idx = $arg1<br />
if $idx < 0 || $idx > $size_max<br />
printf "idx1, idx2 are not in acceptable range: [0..%u].\n", $size_max<br />
else<br />
printf "elem[%u]: ", $idx<br />
p *($elts + $idx)<br />
end<br />
end<br />
if $argc == 3<br />
set $start_idx = $arg1<br />
set $stop_idx = $arg2<br />
if $start_idx > $stop_idx<br />
set $tmp_idx = $start_idx<br />
set $start_idx = $stop_idx<br />
set $stop_idx = $tmp_idx<br />
end<br />
if $start_idx < 0 || $stop_idx < 0 || $start_idx > $size_max || $stop_idx > $size_max<br />
printf "idx1, idx2 are not in acceptable range: [0..%u].\n", $size_max<br />
else<br />
set $i = $start_idx<br />
while $i <= $stop_idx<br />
printf "elem[%u]: ", $i<br />
p *($elts + $i)<br />
set $i++<br />
end<br />
end<br />
end<br />
if $argc > 0<br />
printf "nsTArray length = %u\n", $size<br />
printf "nsTArray capacity = %u\n", $capacity<br />
printf "Element "<br />
whatis *$elts<br />
end<br />
end<br />
<br />
[http://blog.mozilla.com/cjones/2010/04/30/print-nstarrays-in-gdb/ Chris Jones' handy ptarray command]<br />
<br />
== Frame Tree Dump ==<br />
<br />
<bz> for a frame dump, you can use the [https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/Layout_Debugger layout debugger], or... if you're in a debugger and want to examine the tree, you can do<br />
<br />
def frametree<br />
call nsFrame::DumpFrameTree($arg0)<br />
end<br />
<br />
<br />
<bz> That should work when called on any nsIFrame to dump the tree it belongs to<br />
<br />
== Printing nsIAtoms ==<br />
<br />
def pa<br />
set $atom = $arg0<br />
if (sizeof(*((&*$atom)->mString)) == 2)<br />
pu (&*$atom)->mString<br />
end<br />
end<br />
<br />
== Reflow Logs ==<br />
<br />
See [[http://www.mozilla.org/newlayout/doc/frame_reflow_debug.html Debugging Frame Reflow]]<br />
<br />
== Printing strings ==<br />
<br />
# Define a "ps" command to display subclasses of nsAC?String. Note that<br />
# this assumes strings as of Gecko 1.9 (well, and probably a few<br />
# releases before that as well); going back far enough will get you<br />
# to string classes that this function doesn't work for.<br />
def ps<br />
set $str = $arg0<br />
if (sizeof(*$str.mData) == 1 && ($str.mFlags & 1) != 0)<br />
print $str.mData<br />
else<br />
pu $str.mData $str.mLength<br />
end<br />
end<br />
<br />
# Define a "pu" command to display PRUnichar * strings (100 chars max)<br />
# Also allows an optional argument for how many chars to print as long as<br />
# it's less than 100.<br />
def pu<br />
set $uni = $arg0<br />
if $argc == 2<br />
set $limit = $arg1<br />
if $limit > 100<br />
set $limit = 100<br />
end<br />
else<br />
set $limit = 100<br />
end<br />
# scratch array with space for 100 chars plus null terminator. Make<br />
# sure to not use ' ' as the char so this copy/pastes well.<br />
set $scratch = "____________________________________________________________________________________________________"<br />
set $i = 0<br />
set $scratch_idx = 0<br />
while (*$uni && $i++ < $limit)<br />
if (*$uni < 0x80)<br />
set $scratch[$scratch_idx++] = *(char*)$uni++<br />
else<br />
if ($scratch_idx > 0)<br />
set $scratch[$scratch_idx] = '\0'<br />
print $scratch<br />
set $scratch_idx = 0<br />
end<br />
print /x *(short*)$uni++<br />
end<br />
end<br />
if ($scratch_idx > 0)<br />
set $scratch[$scratch_idx] = '\0'<br />
print $scratch<br />
end<br />
end<br />
<br />
== Dumping the JS Stack ==<br />
<br />
def js<br />
call DumpJSStack()<br />
end</div>Dholberthttps://wiki.mozilla.org/index.php?title=Platform/Layout/CSS_Containment_Best_Practices&diff=1205195Platform/Layout/CSS Containment Best Practices2018-12-17T16:01:16Z<p>Dholbert: add a clarifying parenthetical</p>
<hr />
<div>We are experimenting with [https://bugzilla.mozilla.org/show_bug.cgi?id=1501492 enabling CSS Containment in Firefox frontend code]. We've got some bugs to fix before we expose it more broadly, but it's already useful enough for internal use. This wiki page exists to document the anticipated best-practices for using CSS Containment in Firefox frontend code.<br />
<br />
<br />
For now, the primary benefit of CSS Containment is to tag a frame as a "reflow root", which allows Gecko to initiate reflow directly on that frame (rather than initiating reflow at the root of the frame tree and traversing the tree from there to find dirty frames). This should allow layout flushes to be cheaper, and may cut down on jank.<br />
<br />
== Anticipated Best Practices ==<br />
* Use the CSS <code>contain: layout size</code> to indicate that you'd like a particular element to be a reflow root.<br />
* A good candidate for CSS containment should match the following conditions:<br />
** It should be HTML (not XUL). We don't intend to implement CSS Containment for XUL.<br />
** It should be fixed-size (it shouldn't depend on its contents for sizing). The <code>size</code> containment keyword makes the element size itself as if it had no children, which in most cases means it'll collapse to nothing unless you give it a specified width and/or height.<br />
** It should have descendants which are expected to change & trigger frequent reflows. (For example: the web console's text-input area, which requires a reflow for every keypress as new user-typed characters are added & trigger context-highlighting.)<br />
** It should be in a document where there may be lots of content outside of the contained element's subtree (so that there will be nontrivial amounts of reflow work that we can avoid by applying containment).<br />
* <b>Do not</b> use CSS containment on:<br />
** ...lots and lots of elements. Reflow roots are stored in a flat list, and it's possible there may be a negative performance impact if there are too many of them. (See e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=1510100 -- needs further study...)<br />
** ...inline-level elements or internal table elements (for which containment [https://drafts.csswg.org/css-contain/#containment-size simply has no effect])<br />
** ...XUL elements.<br />
** ...elements whose descendants do not change frequently.<br />
<br />
* Also, be aware that <code>contain:layout size</code> has some <b>spec-mandated side effects</b>:<br />
** It will make the element a containing block for any fixed- or absolutely-positioned descendants.<br />
** If the element doesn't have a specified size, it may collapse to zero (sizing as if it has no children).</div>Dholberthttps://wiki.mozilla.org/index.php?title=Platform/Layout/CSS_Containment_Best_Practices&diff=1205140Platform/Layout/CSS Containment Best Practices2018-12-15T08:17:10Z<p>Dholbert: Add some suggested best practices for CSS Containment in frontend code as suggested in https://phabricator.services.mozilla.com/D9963#366194</p>
<hr />
<div>We are experimenting with [https://bugzilla.mozilla.org/show_bug.cgi?id=1501492 enabling CSS Containment in Firefox frontend code]. We've got some bugs to fix before we expose it more broadly, but it's already useful enough for internal use. This wiki page exists to document the anticipated best-practices for using CSS Containment in Firefox frontend code.<br />
<br />
<br />
For now, the primary benefit of CSS Containment is to tag a frame as a "reflow root", which allows Gecko to initiate reflow directly on that frame (rather than initiating reflow at the root of the frame tree and traversing the tree from there to find dirty frames). This should allow layout flushes to be cheaper, and may cut down on jank.<br />
<br />
== Anticipated Best Practices ==<br />
* Use the CSS <code>contain: layout size</code> to indicate that you'd like a particular element to be a reflow root.<br />
* A good candidate for CSS containment should match the following conditions:<br />
** It should be HTML (not XUL). We don't intend to implement CSS Containment for XUL.<br />
** It should be fixed-size (it shouldn't depend on its contents for sizing). The <code>size</code> containment keyword makes the element size itself as if it had no children, which in most cases means it'll collapse to nothing unless you give it a specified width and/or height.<br />
** It should have descendants which are expected to change & trigger frequent reflows. (For example: the web console's text-input area, which requires a reflow for every keypress as new user-typed characters are added & trigger context-highlighting.)<br />
** It should be in a document where there may be lots of content outside of the contained element's subtree. <br />
* <b>Do not</b> use CSS containment on:<br />
** ...lots and lots of elements. Reflow roots are stored in a flat list, and it's possible there may be a negative performance impact if there are too many of them. (See e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=1510100 -- needs further study...)<br />
** ...inline-level elements or internal table elements (for which containment [https://drafts.csswg.org/css-contain/#containment-size simply has no effect])<br />
** ...XUL elements.<br />
** ...elements whose descendants do not change frequently.<br />
<br />
* Also, be aware that <code>contain:layout size</code> has some <b>spec-mandated side effects</b>:<br />
** It will make the element a containing block for any fixed- or absolutely-positioned descendants.<br />
** If the element doesn't have a specified size, it may collapse to zero (sizing as if it has no children).</div>Dholberthttps://wiki.mozilla.org/index.php?title=Nightly&diff=1201184Nightly2018-09-18T16:19:20Z<p>Dholbert: /* Is there a Nightly repository for my distro? */ Edit for correctness: s/currently/sometimes/ for the maintained-ness Ubuntu-team-maintained PPA. (It's been several weeks since the PPA was updated, so it's not "currently" maintained for nightly builds)</p>
<hr />
<div>[[File:Firefox-nightly logo-only RGB 25%.png|150px|Nightly Logo]][[File:Firefox-nightly wordmark-only RGB 25%.png||x150px|Nightly Wordmark]]<br />
[[Image:Twittershare_medium.png|link=https://twitter.com/intent/tweet?text=Are%20you%20a%20power%20user%20and%20a%20Mozilla%20supporter?%20Use%20@FirefoxNightly%20and%20help%20us%20ship%20a%20better,%20faster%20Firefox!&url=https%3A%2F%2Fwiki.mozilla.org%2FNightly |alt=Share on Twitter|Share on Twitter]]<br />
<br />
== What is Firefox Nightly? ==<br />
<br />
Every day, Mozilla developers write code that is merged into a common code repository (mozilla-central) and every day that code is compiled so as to create a pre-release version of Firefox based on this code for testing purposes, this is what we call a Nightly build. Once this code matures, it is merged into stabilization repositories (Beta and Dev Edition) where that code will be polished until we reach a level of quality that allows us to ship a new final version of Firefox to hundreds of millions of people. This development process used to ship a new version of Firefox every 5 to 8 weeks is called the Train Model.<br />
<br />
<br />
{| style="border: 1px solid darkgray; width: 50em"<br />
|+ style="font-weight: bold;" |Firefox channels until April 18, 2017<br />
|- style="color: black; background-color: white;"<br />
! | 55<br />
! | 54<br />
! | 53<br />
! | 52<br />
! | 51<br />
|- style="color:white;"<br />
| style="background-color: black;text-align: center" | Nightly<br />
| style="background-color: darkblue;text-align: center" | Aurora<br />
| style="background-color: orange;text-align: center" | Beta<br />
| style="background-color: green;text-align: center" | Release<br />
| style="background-color: transparent" | <br />
| style="background-color: transparent" | <br />
|- style="color:white;"<br />
| style="background-color: transparent;text-align: center" | <br />
| style="background-color: black;text-align: center" | Nightly<br />
| style="background-color: darkblue;text-align: center" | Aurora<br />
| style="background-color: orange;text-align: center" | Beta<br />
| style="background-color: green;text-align: center" | Release<br />
| style="background-color: transparent" | <br />
|}<br />
<br />
After April 18, 2017, [http://release.mozilla.org/firefox/release/2017/04/17/Dawn-Project-FAQ.html the Aurora channel ceases to exist] and the train model takes this form:<br />
<br />
{| style="border: 1px solid darkgray; width: 50em"<br />
|+ style="font-weight: bold;" |Firefox channels after April 18, 2017<br />
|- style="color: black; background-color: white;"<br />
! | 55<br />
! | 54<br />
! | 53<br />
! | 52<br />
|- style="color:white;"<br />
| style="background-color: black;text-align: center" | Nightly<br />
| style="background-color: orange;text-align: center" | Beta<br />
| style="background-color: green;text-align: center" | Release<br />
| style="background-color: transparent" | <br />
| style="background-color: transparent" | <br />
|- style="color:white;"<br />
| style="background-color: transparent;text-align: center" | <br />
| style="background-color: black;text-align: center" | Nightly<br />
| style="background-color: orange;text-align: center" | Beta<br />
| style="background-color: green;text-align: center" | Release<br />
| style="background-color: transparent" | <br />
|}<br />
<br />
== Should I become a Nightly user? ==<br />
<br />
Of course, Nightly does not have the polish, quality and stability of the Release channel as this is a work in progress but we are doing our best through automation, QA and community to provide you the best nightly builds possible.<br />
<br />
If you are a power-user, that you want to have access to features in developments months before they become mainstream, have tolerance for occasional functional regressions and are looking for an easy way to help Mozilla and Firefox development, you should use Nightly (ideally as your main browser but you can also use it alongside Firefox on the release channel or another browser).<br />
<br />
Unlike Firefox on the Release channel, Nightly sends by default anonymized usage statistics, called [https://www.mozilla.org/en-US/privacy/firefox/#telemetry Telemetry] which helps us improve Firefox and track regressions on a daily basis. Just using Nightly and sending telemetry data is already of great help to all Mozilla developers as it allows them to get usage statistics on the features they work on.<br />
<br />
Of course, Nightly may be more likely to crash than a final release and sending your crashes to our engineers is also of considerable help as it helps us catch instabilities and identify issues long before end-users are exposed to them.<br />
<br />
And if you want to go a step further, you can file bugs in our [https://bugzilla.mozilla.org Bug tracker] with detailed information about what is not working for you in Nightly.<br />
<br />
== Where can I download Firefox Nightly? ==<br />
<br />
'''&#x27A1; Go to [https://nightly.mozilla.org nightly.mozilla.org]'''<br />
<br />
Nightly is available for all the platforms we support officially (Windows 7 and later, MacOS, Linux) and we provide both 32 and 64 bits for Linux and Windows. We also support a large range of languages ranging from Albanian to Vietnamese.<br />
<br />
All of our available builds are listed on this page: https://www.mozilla.org/firefox/nightly/all/<br />
<br />
== How does it update? ==<br />
<br />
Nightly gets an update twice a day (or night, depending on your timezone), building starts at 10:00 and 22:00 UTC, usually builds are available one hour or two later. That means that there is an update in the morning for The Americas and another one for EMEA/Asia<br />
<br />
The update is downloaded in the background, when this is done, there is a small green badge that appears on the hamburger menu which indicates that if your restart your Nightly, an update will be applied.<br />
<br />
If you don't apply this update within 12 hours, a dialog box will pop up asking you to do so. If you want this dialog to show up later than 12h, in about:config change the ''app.update.promptWaitTime'' value from 43200 to a higher value, 86400 for 24 hours for example.<br />
<br />
Sometimes, we will issue more than two updates per day, typically this is because we found out we introduced a major regression (a spike in crashes for example) and we don't want our users to have a broken browser for 24h.<br />
<br />
== Where can I get news about Nightly? ==<br />
We maintain a few communication channels to give you news about the development of Nightly features or activities relevant to our community of Nightly users:<br />
<br />
* Twitter: https://twitter.com/FirefoxNightly<br />
* Blog: https://blog.nightly.mozilla.org<br />
* IRC channel: [irc://irc.mozilla.org/nightly #nightly on irc.mozilla.org]<br />
* Experimental platform features page on MDN: https://developer.mozilla.org/en-US/Firefox/Experimental_features<br />
* Release notes (updated every week): https://www.mozilla.org/en-US/firefox/nightly/notes/<br />
* Nightly category in our Mozilla Community Forums: https://discourse.mozilla-community.org/c/nightly<br />
<br />
== Nightly Activities ==<br />
This activity has great potential to make an impact by increasing overall involvement in Nightly, simply by introducing community to tasks that they can engage in related to Nightly. Finding and filing issues early in the cycle means by the time Firefox gets to release, the code is in good shape.<br />
* Mozilla Activate: https://activate.mozilla.community/nightly/<br />
<br />
== Filing Bugs ==<br />
=== I found a bug, how do I report it? ===<br />
<br />
First of all, thank you for doing that! Bugs reported early are also more easy to fix or back out than bugs reported weeks or months after the code was written, simply because developers just wrote it and have all of it fresh in their memory.<br />
<br />
If you think you have found a bug in Nightly, the best thing to do is indeed to report it in our Bug tracking system, called [https://bugzilla.mozilla.org Bugzilla].<br />
<br />
Bugzilla can be a bit intimidating when you use it for the first time, but we have documentation to help you make useful bug reports here that may get you started:<br />
[https://developer.mozilla.org/docs/Mozilla/QA/Bug_writing_guidelines Bugzilla: Bug writing guidelines]<br />
<br />
Don't hesitate to ask experienced Nightly users (staff or employees) to help you file the bug in the #nightly IRC channel if you are unsure about the process or if English is not your native language and want to make sure your bug description is understandable.<br />
<br />
Once you have filed the bug, you may get questions from bug triagers (people that enrich existing bug reports with useful metadata and try to get the right dev in front of the right issue) or developers that are trying to reproduce your bug using your configuration or the steps to reproduce what you experienced - watch your mailbox for such messages!<br />
<br />
One more thing, please add the ''nightly-community'' word in the ''keyword'' field of your bug report, that helps us triage better the bugs filed by our core community.<br />
<br />
=== The bug I found is a regression! ===<br />
A regression is when something that used to work is no longer working or no longer working as expected.<br />
If your bug is a regression, please add the ''regression'' keyword to your bug report.<br />
<br />
We have a specific tool helping us to find when the code that introduced a regression landed in Nightly, this is called [https://mozilla.github.io/mozregression/ mozegression].<br />
<br />
There is a GUI for Windows and a command line interface for Linux/Mac.<br />
* Article about the CLI version: [https://blog.nightly.mozilla.org/2016/10/11/found-a-regression-in-firefox-give-us-details-with-mozregression/ Found a regression in Firefox? Give us details with mozregression!]<br />
* Article with a video tutorial about the Windows version: [https://blog.nightly.mozilla.org/2017/06/07/using-mozregression-on-windows/ Using mozregression on Windows]<br />
<br />
=== I want to report a crash ===<br />
''TODO''<br />
<br />
=== I want to report a website that doesn't work in Firefox ===<br />
Some websites do not work in Firefox not because of a Firefox bug but because the site is restricting (intentionally or not) their audience to users of a specific browser. This is what we call a Web Compatibility issue. Since these issues can also affect other browsers than Firefox, web compatibility reports are filed in a separate bug tracker at https://webcompat.com/<br />
There is a special menu item in Firefox Nightly to easily report the site you are visiting as being incompatible with Firefox. Click on the "Report Site Issue" link in the Page Actions menu (... in the right side of the url bar):<br />
<br />
[[File:ReportSiteNightlyIcon.png|thumb|none|left|Report Site Icon]]<br />
<br />
=== What is the Nightly Tester Tools extension? ===<br />
This is a useful extension which adds many tools dedicated to bug filing and regression finding.<br />
<br />
You can find it on addons.mozilla.org: [https://addons.mozilla.org/firefox/addon/nightly-tester-tools/ Nightly Tester Tools]<br />
<br />
The [https://github.com/mozilla/nightlytt Github repository] has a short description of what it can do.<br />
<br />
=== I found a bug and I want to write the patch myself! ===<br />
This is a great way to get involved, our developers have full documentation on how to get started hacking on Mozilla code on MDN:<br />
<br />
[https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction Contributing to the Mozilla code base]<br />
<br />
== Platform specific instructions ==<br />
'''Firefox does not support downgrades, even though this may have worked in past versions. If you install Firefox Nightly and later downgrade to an earlier version, you may experience issues with Firefox if they share the same profile of data.'''<br />
<br />
'''Until we support dedicated profiles per channel in the installer [https://bugzilla.mozilla.org/show_bug.cgi?id=1373244 Bug 1373244], so as to use Firefox Nightly alongside another version of Firefox such as Beta, Release or ESR you need to create and use a separate profile for Nighty!'''<br />
<br />
<br />
Our end-user support site has explanations on the process: [https://support.mozilla.org/en-US/kb/using-dedicated-profile-firefox-nightly Using a dedicated profile for Firefox Nightly]<br />
<br />
You will find below additional OS specific instructions as well as a video tutorial for Windows.<br />
<br />
=== Windows ===<br />
===== How do I install Firefox Nightly alongside Firefox Release? =====<br />
Here is a video tutorial explaining how to install Firefox Nightly on Windows alongside an existing installation of Firefox:<br />
[https://www.youtube.com/watch?v=Gvh3PxD_p50 Install Firefox Nightly cleanly on Windows]<br />
=== MacOS ===<br />
===== How do I install Firefox Nightly alongside Firefox Release? =====<br />
Download [https://nightly.mozilla.org/ Firefox Nightly].<br />
As for any Mac OS app, open it either from Firefox or by double-clicking it in the folder, then drag and drop the icon into the application folder and you're done for the installation part. For detailed instructions, see [https://support.mozilla.org/en-US/kb/how-download-and-install-firefox-mac here].<br />
<br />
Now you'll need to create a dedicated profile for your Nightly, different from your Firefox stable one to avoid trouble.<br />
<br />
To do that, you need to open your terminal and run Nightly, only for the first time by running the following command:<br />
<br />
/Applications/FirefoxNightly.app/Contents/MacOS/firefox -P --no-remote<br />
<br />
This will open the profile manager. Here, create a new profile with the name you want, and uncheck the checkbox saying "Use the selected profile without asking at startup", so that at every Firefox start you can choose the profile you want and corresponding to either your Nightly or Stable Firefox.<br />
<br />
=== Linux ===<br />
<br />
===== Why is Nightly provided as a tar.bz2 archive? Do I have to compile it? =====<br />
We build and provide distribution-neutral binaries and these binaries can be installed and updated without any dependency to a package manager.<br />
<br />
You don't have to compile anything, just unarchive the tar.bz2 file into your ''/home'' or your ''/opt'' folder if you want to make it available to all the accounts on your machine and launch the ''firefox'' file from your shell. If you decide to install Firefox Nightly outside of your Home, such as in ''/opt/firefoxnightly'', don't forget to give this folder the same rights as your user otherwise it won't auto-update:<br />
sudo chown -R $USER:$USER /opt/firefoxnightly<br />
<br />
If you want to create a Launcher for your app, you will need to create a ''.desktop'' file, here is on our blog an article about it for Ubuntu and Unity: [https://blog.nightly.mozilla.org/2016/09/19/getting-firefox-nightly-to-stick-to-ubuntus-unity-dock/ Getting Firefox Nightly to stick to Ubuntu’s Unity Dock]<br />
<br />
===== Is Nightly available as a .deb/.rpm? =====<br />
Mozilla does not provide packages (.deb/.rpm) for Linux, our tar.bz2 binaries work on all distributions which meet Firefox [https://www.mozilla.org/en-US/firefox/aurora/system-requirements/ system requirements].<br />
<br />
===== Is there a Nightly repository for my distro? =====<br />
Mozilla does not maintain repositories for distributions, some volunteers maintain their own repository or ppa but usually those are not maintained over time for Nightly. <br />
<br />
The advised installation method is to use Mozilla-provided builds and its software updater.<br />
<br />
If you really can't live without updates being provided through a repository, the Ubuntu Team sometimes maintains this ppa: https://launchpad.net/~ubuntu-mozilla-daily/+archive/ubuntu/ppa<br />
<br />
===== Is there a FlatPak/Snap package =====<br />
We have plans to provide Snap binaries of Firefox and once this is ready, we will probably propose also them for Nightly. The tracking bug is [https://bugzilla.mozilla.org/show_bug.cgi?id=1297513 Automate generation of Firefox snap packages].<br />
<br />
We don't have plans for FlatPack yet but there is a bug open: [https://bugzilla.mozilla.org/show_bug.cgi?id=1278719 Use Flatpak framework to distribute Firefox for Linux users]<br />
<br />
There is an unofficial Firefox Flatpak repository created by the Fedora/RedHat maintainers for testing purposes: https://firefox-flatpak.mojefedora.cz/<br />
With this FlatPak repository, your profile is stored in <code>$HOME/.var/app/org.mozilla.FirefoxNightlyWayland/.mozilla</code><br />
<br />
If you are on Ubuntu, here is a detailed article on how to install it here: [http://www.omgubuntu.co.uk/2017/02/install-firefox-nightly-flatpak-ubuntu How to Install Firefox Nightly as a Flatpak App on Ubuntu]<br />
<br />
== Promoting Nightly in your community ==<br />
<br />
If Open Source guerrilla community marketing is something you would like to get involved with and Nightly works great for you, maybe you could promote it to other power-users in your personal or professional networks, getting more users across the globe would help us catch more regressions, get more technical feedback and would allow us to ship a better browser.<br />
<br />
There are many ways you can get help at the local level or online. <br />
<br />
Some of them are very easy, such as retweeting interesting tweets from our [https://twitter.com/FirefoxNightly @FirefoxNightly] or sharing them on other social networks, some represent more work such as participating to a local open source convention and presenting Nightly or organizing QA activities through Nightly via your local Mozilla community or Mozilla Club. <br />
<br />
If you want to present Nightly at an event, please read this blog report: [https://blog.nightly.mozilla.org/2017/02/20/fosdem-2017-nightly-slides-and-video/ Fosdem 2017 Nightly slides and video]<br />
<br />
The slides in this presentation are online and can be used as a basis for your own presentation.<br />
<br />
You can also work through the '''[https://activate.mozilla.community/nightly/ Activate Mozilla]''' program to organize events in the framework provided by the Mozilla Participation team. <br />
<br />
We are progressively setting up regional teams and '''''Firefox Nightly Champions''''' so as to have a per country or per language action which is often useful to solve issues such as language, timezones and regional specific sites. If you want to organize something online or offline related to Nightly, please contact [https://mozillians.org/fr/u/pascalc Pascal Chevrel] or [https://mozillians.org/en-US/?next=/en-US/u/marcia Marcia Knous]<br />
<br />
If you want to join an existing regional or language focused team, you can contact the following champions:<br />
=== Regional Teams and their Nightly Champions===<br />
==== Francophone team ====<br />
* Team leader: [https://mozillians.org/fr/u/pascalc Pascal Chevrel]<br />
* [https://forums.mozfr.org/viewforum.php?f=24 Forums Nightly]<br />
<br />
==== Italian team ====<br />
* [https://mozillians.org/fr/u/Mte90/ Daniele Scasciafratte]<br />
<br />
==== Spanish-speaking team ====<br />
* [https://mozillians.org/fr/u/pascalc Pascal Chevrel]<br />
<br />
==== Switzerland team ====<br />
* [https://mozillians.org/en-US/u/mkohler/ Michael Kohler]<br />
* [https://mozillians.org/en-US/u/freaktechnik/ Martin Giger]<br />
<br />
==== USA team ====<br />
* [https://mozillians.org/en-US/?next=/en-US/u/marcia Marcia Knous]<br />
<br />
==== Indian team ====<br />
* [https://mozillians.org/en-US/u/SHIHAN.VISWA/ Viswaprasath] (English)<br />
* [https://mozillians.org/en-US/u/DineshMv/ Dinesh Mv] (English/ Telugu)<br />
* [https://mozillians.org/en-US/u/prasanthp96/ Prasanth P] (English/Tamil)<br />
* [https://mozillians.org/en-US/u/Madhuri_QA/ Madhuri Mittal ] (English/ hindi)<br />
* [https://mozillians.org/en-US/u/gurumukhi/ Ram Dayal Vaishnav ] (English/ hindi)<br />
<br />
==== Brazilian team ====<br />
* [https://reps.mozilla.org/u/geraldobarros Geraldo Barros]<br />
* [https://reps.mozilla.org/u/cynthiapereira Cynthia Pereira]<br />
<br />
==== Czech team ====<br />
* [https://mozillians.org/u/mstanke/ Michal Stanke]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1201127WeeklyUpdates2018-09-17T18:05:06Z<p>Dholbert: /* Meeting Notes */ Add link for 2018-09-17</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-09-17|September 17th, 2018]]<br />
* [[WeeklyUpdates/2018-09-10|September 10th, 2018]]<br />
* [[WeeklyUpdates/2018-09-03|September 3rd, 2018]] (no meeting, US Holiday)<br />
* [[WeeklyUpdates/2018-08-27|August 27th, 2018]]<br />
* [[WeeklyUpdates/2018-08-20|August 20th, 2018]]<br />
* [[WeeklyUpdates/2018-08-13|August 13th, 2018]]<br />
* [[WeeklyUpdates/2018-08-06|August 6th, 2018]]<br />
* [[WeeklyUpdates/2018-07-30|July 30th, 2018]]<br />
* [[WeeklyUpdates/2018-07-23|July 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-07-16|July 16th, 2018]]<br />
* [[WeeklyUpdates/2018-07-09|July 9th, 2018]]<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28th, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1200795WeeklyUpdates2018-09-10T17:01:04Z<p>Dholbert: Fix typo: s/28st/28th/</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-09-10|September 10th, 2018]]<br />
* [[WeeklyUpdates/2018-09-03|September 3rd, 2018]] (no meeting, US Holiday)<br />
* [[WeeklyUpdates/2018-08-27|August 27th, 2018]]<br />
* [[WeeklyUpdates/2018-08-20|August 20th, 2018]]<br />
* [[WeeklyUpdates/2018-08-13|August 13th, 2018]]<br />
* [[WeeklyUpdates/2018-08-06|August 6th, 2018]]<br />
* [[WeeklyUpdates/2018-07-30|July 30th, 2018]]<br />
* [[WeeklyUpdates/2018-07-23|July 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-07-16|July 16th, 2018]]<br />
* [[WeeklyUpdates/2018-07-09|July 9th, 2018]]<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28th, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1200794WeeklyUpdates2018-09-10T17:00:30Z<p>Dholbert: /* Meeting Notes */ add note that Sept 3 2018 had no meeting due to US holiday. (Leaving link intact since there's a tiny bit of content on the meeting page, despite the fact that there was no meeting.)</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-09-10|September 10th, 2018]]<br />
* [[WeeklyUpdates/2018-09-03|September 3rd, 2018]] (no meeting, US Holiday)<br />
* [[WeeklyUpdates/2018-08-27|August 27th, 2018]]<br />
* [[WeeklyUpdates/2018-08-20|August 20th, 2018]]<br />
* [[WeeklyUpdates/2018-08-13|August 13th, 2018]]<br />
* [[WeeklyUpdates/2018-08-06|August 6th, 2018]]<br />
* [[WeeklyUpdates/2018-07-30|July 30th, 2018]]<br />
* [[WeeklyUpdates/2018-07-23|July 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-07-16|July 16th, 2018]]<br />
* [[WeeklyUpdates/2018-07-09|July 9th, 2018]]<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28st, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1200793WeeklyUpdates2018-09-10T16:58:03Z<p>Dholbert: Add links for 9/3 and 9/10</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-09-10|September 10th, 2018]]<br />
* [[WeeklyUpdates/2018-09-03|September 3rd, 2018]]<br />
* [[WeeklyUpdates/2018-08-27|August 27th, 2018]]<br />
* [[WeeklyUpdates/2018-08-20|August 20th, 2018]]<br />
* [[WeeklyUpdates/2018-08-13|August 13th, 2018]]<br />
* [[WeeklyUpdates/2018-08-06|August 6th, 2018]]<br />
* [[WeeklyUpdates/2018-07-30|July 30th, 2018]]<br />
* [[WeeklyUpdates/2018-07-23|July 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-07-16|July 16th, 2018]]<br />
* [[WeeklyUpdates/2018-07-09|July 9th, 2018]]<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28st, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1197329WeeklyUpdates2018-07-16T17:25:31Z<p>Dholbert: Add july 16th link</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-07-16|July 16th, 2018]]<br />
* [[WeeklyUpdates/2018-07-09|July 9th, 2018]]<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28st, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1196904WeeklyUpdates2018-07-09T19:41:06Z<p>Dholbert: /* Meeting Notes */ Add July 9 link</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-07-09|July 9th, 2018]]<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28st, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1196577WeeklyUpdates2018-07-02T23:01:05Z<p>Dholbert: add july 2nd link</p>
<hr />
<div>:''Mozilla weekly all-hands meetings. For the semi-annual meetings see [[All Hands]]. These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-07-02|July 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-06-25|June 25th, 2018]]<br />
* June 18th, 2018 - no meeting (post-All Hands San Francisco)<br />
* June 11th, 2018 - no meeting (All Hands San Francisco)<br />
* [[WeeklyUpdates/2018-06-04|June 4th, 2018]]<br />
* May 28st, 2018 - no meeting (US holiday)<br />
* [[WeeklyUpdates/2018-05-21|May 21st, 2018]]<br />
* [[WeeklyUpdates/2018-05-14|May 14th, 2018]]<br />
* [[WeeklyUpdates/2018-05-07|May 7th, 2018]]<br />
* [[WeeklyUpdates/2018-04-30|April 30th, 2018]]<br />
* [[WeeklyUpdates/2018-04-23|April 23rd, 2018]]<br />
* [[WeeklyUpdates/2018-04-16|April 16th, 2018]]<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates/2018-06-04&diff=1195029WeeklyUpdates/2018-06-042018-06-04T17:25:31Z<p>Dholbert: /* Welcome! */ Add intern Mihir to welcome list</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* https://air.mozilla.org/channels/project-meeting/ to watch and listen<br />
* join irc.mozilla.org #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
* Thanks to code contributors who landed 2+ patches to add-ons projects in May: Trishul Goel, Sean Prashad, Oriol, Shivam Singhal, & Dominic Lee. You learn more about their contributions [[Add-ons/Contribute/Recognition|here]].<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
* [[Add-ons/Community/Meetings|Add-ons Community Meeting]]<br />
** 15:30 UTC / 8:30am PDT | ACE Vidyo Room<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
Women Catalysts - A Conversation with Tiffany Yu, Diversibility <br /><br />
San Francisco Office - Foxhole, 6:30 - 8:30 PM <br />
<br />
On Thursday evening, the D&I Team is hosting an event in partnership with [http://www.womencatalysts.com/ Women Catalysts]: a fireside chat with Tiffany Yu, the founder of award-winning social enterprise [http://www.mydiversability.com/ Diversability]. Diversability is on a mission to get more people talking and thinking about disability as a core part of the diversity conversation. [https://catalystconversationstiffanyyu.splashthat.com/ Check out the event invite] or ping Lizz Noonan for more information.<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Jack Moffitt<br />
| Principal Research Engineer<br />
| Emerging Technologies weekly update<br />
| Remote<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/WeeklyUpdates/EmergingTechnology#June_4th.2C_2018 ET Weekly Update]<br />
|-<br />
| Asa Dotzler<br />
| Firefox Roadmap<br />
| Firefox Weekly Update<br />
| MTV<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/Firefox/Roadmap/Updates#2018-06-04 2018-06-04]<br />
|-<br />
| Andy Kochendorfer<br />
| AirMozilla Update<br />
| All streaming now on New AirMo - airmo.mozilla.org. Legacy AirMo being decommissioned in July.<br />
| Video play back (from MTV control room)<br />
| no<br />
| Video file (MP4)<br />
| [https://air.mozilla.org/new-airmozilla-audience-demo/#New AirMozilla Demo]<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
<!-- Insert new rows here --><br />
|-<br />
| Their Name<br />
| Your Name<br />
| Intro location<br />
| Their Location<br />
| Their Role<br />
|-<br />
| Andrew Truong<br />
| Caitlin Neiman<br />
| MTV<br />
| MTV<br />
| Add-on Content Marketing Intern<br />
|-<br />
| Beatriz Rizental<br />
| Kit Cambridge<br />
| MTV<br />
| SF<br />
| Firefox FxA Intern<br />
|-<br />
| Craig Disselkoen<br />
| Manish Goregaokar<br />
| MTV<br />
| SF<br />
| Servo Intern<br />
|-<br />
| Kai Lukoff<br />
| Jofish Kaye<br />
| MTV<br />
| MTV<br />
| HCI Intern<br />
|-<br />
| Kekoa Houston Riggin<br />
| Zibi Braniecki<br />
| MTV<br />
| SF<br />
| Internationalization Engineering Intern<br />
|-<br />
| Micah Tigley<br />
| Yura Zenevich<br />
| TOR<br />
| TOR<br />
| Accessibility Intern<br />
|-<br />
| Kashav Madan<br />
| Andrew Osmond<br />
| TOR<br />
| TOR<br />
| Platform Graphics Intern<br />
|-<br />
| Naomi Shiffman<br />
| Jochai Ben-Avie<br />
| MTV<br />
| SF<br />
| Policy Intern<br />
|-<br />
| Olga Ionel<br />
| Fabio Rios<br />
| MTV<br />
| SF<br />
| Online Marketing MBA Intern<br />
|-<br />
| Tim Nguyen<br />
| No Intro Needed<br />
| London <br />
| London<br />
| Firefox Desktop Engineering Intern<br />
|-<br />
| David Heiberg<br />
| No Intro Needed <br />
| London<br />
| London<br />
| Web Predictability Engineering Intern<br />
|-<br />
| Loren Austin<br />
| Porfirio Landeros<br />
| SF<br />
| SF<br />
| Product Marketing Manager for Mobile<br />
|-<br />
| Mihir Iyer<br />
| Daniel Holbert<br />
| MTV<br />
| MTV<br />
| Platform Rendering Intern<br />
|-<br />
|}<br />
<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates/2018-06-04&diff=1195021WeeklyUpdates/2018-06-042018-06-04T17:05:32Z<p>Dholbert: /* Welcome! */ typo fix (s/Accessability/Accessibility/</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* https://air.mozilla.org/channels/project-meeting/ to watch and listen<br />
* join irc.mozilla.org #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
* Thanks to code contributors who landed 2+ patches to add-ons projects in May: Trishul Goel, Sean Prashad, Oriol, Shivam Singhal, & Dominic Lee. You learn more about their contributions [[Add-ons/Contribute/Recognition|here]].<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
* [[Add-ons/Community/Meetings|Add-ons Community Meeting]]<br />
** 15:30 UTC / 8:30am PDT | ACE Vidyo Room<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
Women Catalysts - A Conversation with Tiffany Yu, Diversibility <br /><br />
San Francisco Office - Foxhole, 6:30 - 8:30 PM <br />
<br />
On Thursday evening, the D&I Team is hosting an event in partnership with [http://www.womencatalysts.com/ Women Catalysts]: a fireside chat with Tiffany Yu, the founder of award-winning social enterprise [http://www.mydiversability.com/ Diversability]. Diversability is on a mission to get more people talking and thinking about disability as a core part of the diversity conversation. [https://catalystconversationstiffanyyu.splashthat.com/ Check out the event invite] or ping Lizz Noonan for more information.<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Jack Moffitt<br />
| Principal Research Engineer<br />
| Emerging Technologies weekly update<br />
| Remote<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/WeeklyUpdates/EmergingTechnology#June_4th.2C_2018 ET Weekly Update]<br />
|-<br />
| Asa Dotzler<br />
| Firefox Roadmap<br />
| Firefox Weekly Update<br />
| MTV<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/Firefox/Roadmap/Updates#2018-06-04 2018-06-04]<br />
|-<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
<!-- Insert new rows here --><br />
|-<br />
| Their Name<br />
| Your Name<br />
| Intro location<br />
| Their Location<br />
| Their Role<br />
<br />
|-<br />
| Andrew Truong<br />
| Amy Tsay <br />
| MTV<br />
| MTV<br />
| Add-on Community Marketing Intern<br />
|-<br />
| Beatriz Rizental<br />
| Kit Cambridge<br />
| MTV<br />
| SF<br />
| Firefox FxA Intern<br />
|-<br />
| Craig Disselkoen<br />
| Manish Goregaokar<br />
| MTV<br />
| SF<br />
| Servo Intern<br />
|-<br />
| Kai Lukoff<br />
| Jofish Kaye<br />
| MTV<br />
| MTV<br />
| HCI Intern<br />
|-<br />
| Kekoa Houston Riggin<br />
| Zibi Braniecki<br />
| MTV<br />
| SF<br />
| Internationalization Engineering Intern<br />
|-<br />
| Micah Tigley<br />
| Yura Zenevich<br />
| TOR<br />
| TOR<br />
| Accessibility Intern<br />
|-<br />
| Kashav Madan<br />
| Andrew Osmond<br />
| TOR<br />
| TOR<br />
| Platform Graphics Intern<br />
|-<br />
| Naomi Shiffman<br />
| Jochai Ben-Avie<br />
| MTV<br />
| SF<br />
| Policy Intern<br />
|-<br />
| Olga Ionel<br />
| Fabio Rios<br />
| MTV<br />
| SF<br />
| Online Marketing MBA Intern<br />
|-<br />
| Tim Nguyen<br />
| No Intro Needed<br />
| London <br />
| London<br />
| Firefox Desktop Engineering Intern<br />
|-<br />
| David Heiberg<br />
| No Intro Needed <br />
| London<br />
| London<br />
| Web Predictability Engineering Intern<br />
|-<br />
| Loren Austin<br />
| Porfirio Landeros<br />
| SF<br />
| SF<br />
| Product Marketing Manager for Mobile<br />
|-<br />
|}<br />
<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=All_Hands/SanFrancisco2018&diff=1192399All Hands/SanFrancisco20182018-04-16T20:15:05Z<p>Dholbert: /* Travel Insurance */ Fix broken link to Travel Insurance mana page (slightly wrong URL)</p>
<hr />
<div>'''What is it?''' -- Multiple team meetings, happening in the same city, at the same time + some opportunity to get together as one big group as well as with other teams as it makes sense. Then, on the last day, we have a fun social event for all, Mozilla-style! <br />
<br />
'''''The information on this wiki primarily applies to Full time and contractor staff. If you are a volunteer contributor or intern, please inquire to your coordinator. '''''<br />
<br />
=='''Dates, Location and Weather'''==<br />
Monday, June 11 - Friday, June 15, 2018 (travel days are Monday the 11th & Saturday the 16th) in San Francisco, CA.<br />
<br />
We are staying at [http://www.marriott.com/hotels/travel/sfodt-san-francisco-marriott-marquis/ San Francisco Marriott Marquis].<br />
<br />
''*For those countries where rest time is required on weekends (vs. work travel), Mozilla will cover a return on the next available work day, if you choose. This needs to be pre-approved and pre-arranged.''<br />
<br />
Weather:<br />
* National Weather Service: [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&unit=1&mp=1 forecast in ⁰C], [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&mp=1 forecast in ⁰F]<br />
* Temperatures ''in downtown San Francisco'' in late June are likely to have nighttime lows around 10-13 ⁰C / 50-56 ⁰F and daytime highs around 16-24 ⁰C / 61-75 ⁰F. But the weather is very occasionally warmer with highs around 27⁰C / 81⁰F.<br />
* Weather in San Francisco in the summer is variable; it can become substantially cooler and foggier in the late afternoon; be prepared for temperatures to fall to 13⁰C / 56⁰F and the winds to pick up in the afternoon. Be prepared by carrying a warmer layer with you.<br />
* Weather in other parts of the Bay Area can be much warmer than in San Francisco, even if you're only traveling 15km away. Look at the weather forecasts for where you're going. It's entirely possible for it to be 19⁰C / 66⁰F in San Francisco and simultaneously be 32⁰C / 90⁰F in Orinda. But if you're right on the ocean, the air temperature is likely to match the water temperature, which is probably around 12⁰C / 54⁰F.<br />
<br />
=='''Registration'''==<br />
This is an invitation-only event.<br />
<br />
Advance registration is required. Attendees, guests and local guests will need to wear their event badge at all times, including to evening events.<br />
<br />
=====New Hires=====<br />
We have a process to identify new hires each Monday and will invite them to book travel. No action necessary from managers other than to let them know about the event. Please work closely with your recruiting manager as they are aware of all deadlines.<br />
<br />
Monday, May 7 is the deadline for hiring. Friday, May 11 is the deadline that all new hires who must travel to the all hands but be registered and have travel booked. Friday, May 18 is the deadline for Bay Area/local new hires who do not need hotel or to travel need to be registered. All new hires must start on or before May 29.<br />
<br />
==== Contributors participation ====<br />
The process for this is [[All Hands/SanFrancisco2018/Contributor_nominations|outlined on this page]]. <br />
<br />
All nominations will be done by employees, with a coordinator from each of the Firefox/Product, Emerging Technologies, Marketing, Open Innovation and People parts of the organization. There will be no open call for nominations from contributors or volunteer Mozillians.<br />
<br />
Please note: The information on this wiki primarily applies to fulltime and contractor staff. If you have questions about how specifics apply to you, please email groter@mozilla.com and bmark@mozilla.com.<br />
<br />
=='''Week at a Glance'''==<br />
=====Monday=====<br />
Monday is primarily your travel day. You'll be able to pick up your registration stuff between 12:00 pm and 9:00 pm, as well as attend the Welcome Reception at the City View at Metreon from 6:00 pm - 9:00 pm.<br />
<br />
=====Tuesday=====<br />
We'll start Tuesday with a Plenary session.<br />
<br />
=====Friday=====<br />
Our closing party with be at the Exploratorium from 7:00 pm- 11:00 pm. We'll provide transportation to/from the hotel & venue + if the weather is nice, you could walk (about 1.5 miles).<br />
<br />
=====Saturday=====<br />
Departure day only. No scheduled activities.<br />
<br />
===San Francisco All Hands Event Calendar===<br />
Link coming soon. Events will be live by early May. <br />
<br />
=====Create an account=====<br />
We don’t recommend using the same email & password as anything like bank accounts, etc. We care about your security!<br />
<br />
If you already have a Sched account from past All Hands, it still works, just log in with that.<br />
<br />
=====Add items to your calendar=====<br />
Just hit the circle on any agenda item to add it to your calendar (you do need to have an account & be logged in to do this)<br />
<br />
You can also share a link to meetings to invite others. Go into the meeting and copy the short link. You can email that out to anyone and they can quickly add it to their calendar. <br />
<br />
=====Subscribe to GCal Calendar Link=====<br />
Click on the mobile phone on the right hand side of the screen. All the calendar options are available here. <br />
You have the option to choose ALL meetings or YOUR meetings. Unless you have 400 items on your calendar, just select your calendar. It will add anything on your calendar to your GCal (also an option for Outlook and iCal). It syncs once per day.<br />
<br />
The "only syncs once per day" only applies to Google Calendar. With almost all other clients (like Apple Calendar, Outlook, or the calendar app on your phone) you can set the refresh interval, and Sched's instructions recommend 1 hour.<br />
<br />
Warning: This is a link that utilizes your username for the .ics file.<br />
<br />
=====From Mobile=====<br />
Visit from any mobile device - bookmark or add to your homescreen for quick access. There is a bonus icon you get by doing this. It caches the last time you opened the page offline and refreshes anytime you are connected.<br />
<br />
=====Cool things=====<br />
'''Filters'''<br />
<br />
We have better (much needed) filtering functionality. You can filter by:<br />
Departments (ex: Firefox)<br />
AND<br />
Functional Teams (ex: Dev Tools or EngOps)<br />
<br />
*Search by Room, Speaker/Leader<br />
<br />
'''Further Filtering'''<br />
*Audience - who should be there (ex: Team only or Invite)<br />
*Homerooms (you can quickly see what is happening in homerooms, by team) - why do you care? If you have a cross team meeting in their room, its a quick way to search<br />
*Views - Lots of view options. It defaults to the simple view, but there are quite a few options.<br />
<br />
=='''Food & Drink'''==<br />
Breakfast, lunch & snacks will be provided and paid for centrally for attendees. Breakfast is provided Tuesday - Saturday and lunch is provided Tuesday - Friday. <br />
<br />
Allergies/preferences: We will ensure that all food/environmental allergies are taken into consideration and will always have gluten-free and vegan options. If you have severe allergies that we need to know about; you can indicate in registration.<br />
<br />
===Monday Night===<br />
We will provide dinner at the Welcome Reception from 6:00 pm - 9:00 pm at City View by Meteron at the Welcome Reception. Since most of Monday is a travel day, you'll be on your own for meals except dinner. <br />
<br />
===Tuesday, Wednesday & Thursday Nights===<br />
Tuesday, Wednesday and Thursday evenings will be of your own to structure as you wish. Given how much you all seemed to like a more flexible dining experience, these three evenings will be of your own to structure as you wish.<br />
<br />
Here is how this will work:<br />
<br />
For each of these three evenings, once your meetings have concluded, you and your team, friends, new acquaintances, are free to explore San Francisco and to find somewhere great to eat that suits you. Each of you can expense a total of $180 over the three days (or $60/night).<br />
<br />
This amount includes:<br />
* Meal cost, including tax & gratuity<br />
* Any beverages<br />
* Transportation to/from the restaurant<br />
* Conversion fees (for credit cards) or cash withdrawal fees<br />
<br />
Anything over the $180 for the three evenings will be your own expense. The fine print:<br />
* If your team is hosting an evening event 1 of the 3 nights and the payment is coordinated (meaning, you don’t have to open your wallet and pay), you can expense up to $120 for the other 2 nights ($60 for each of the 2 nights you did have to open your wallet and pay).<br />
* You will be asked (later) to submit a San Francisco only expense report. You can submit ONE report for San Francisco only and must be submitted no later than August 31, 2017.<br />
* If your manager approves expenses above the $60 per night, that expense will go directly to your travel budget in your cost center.<br />
<br />
Volunteer Contributors & Interns will have a separate process that will be communicated directly.<br />
<br />
===Friday Night===<br />
We will provide dinner at the Closing Party from 7:00 pm - 11:00 pm at The Exploratorium.<br />
<br />
====What you need====<br />
Your SF All Hands name badge and Identification (you may be carded for alcohol).<br />
<br />
=='''Photos'''==<br />
==== Red Lanyards ====<br />
If you see someone with a red lanyard, please don't take photos of them. They have opted out of being in photography. We'll have these available at the registration desk.<br />
<br />
=='''Safety & Security'''==<br />
=====Meeting Security=====<br />
You'll need to have your badge on at all times in the hotel, as will your partners, vendors and family members anytime they are in the spaces.<br />
<br />
=====Device Security=====<br />
If you are traveling to the San Francisco All Hands with a device that has Mozilla data (laptop, personal cell phone/tablet with @mozilla gmail, etc) on it and your device has been retained for further inspection by border agents, or if your device has been inspected outside your immediate presence - and you believe your credentials have been compromised - you must notify the Enterprise Information Security team as soon as possible at infosec@mozilla.com or by calling Mozilla End User Services at +1 650-963-8811. (This number will be staffed 24x7)<br />
<br />
We will work with you to reset your credentials and help you get your device back to a known good state either by getting you a new one (if it’s been taken), or by resetting it back to a verifiable Mozilla-approved installation.<br />
<br />
=====Safety Tips=====<br />
SF Travel team also has some [https://sftravel.ent.box.com/s/p2ve63e1ctn74e0ai2x48mmgr9fdlvul tips about safety] in the city, including safety numbers and local hospitals.<br />
<br />
=='''Hotel'''==<br />
Hotel rooms are reserved for all employees & volunteers to stay all week, including employees based in San Francisco (just as if we were somewhere you don't live). We are hopeful Mozilla-locals will stay with the rest of us in the hotel - it's really part of what makes these events great. You will have the option to opt out of hotel in registration if you are local to the Bay Area and wish to commute. <br />
<br />
A few things to note:<br />
*Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US-resort standard and we aren't able to waive it (we tried). Please reach out to mozilla@shworldwide.com if this creates a hardship for you.<br />
*If you have any changes or questions about your reservation, email mozilla@shworldwide.com. The hotel cannot make changes to All Hands reservations (other than to add your guests - see #4) so we’d like very much if you didn’t try (it complicates things).<br />
*If you have guests joining you for all or part of the week, you will be responsible for adding them to your reservation (and covering any additional fees). To do this, you will need your confirmation number(s) and to know how old your kids are. Details on how to add them will come a few weeks after registration closes. <br />
<br />
====Payment on Check-in====<br />
Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US hotel standard and we aren't able to waive it (we tried).<br />
<br />
We recommend providing a credit card. You can provide a debit card, but they do put a hold of funds on your card and has been problematic for some international travelers in the past. If you are not able to provide a credit or debit card, email mozilla@shworldwide.com and we'll work with the hotel on accommodating. <br />
<br />
====Pre/post====<br />
Links will be provided when you are invited to register in mid-April to book hotel 3 days pre and 3 days post at our negotiated rate. The pre/post reservations will require the use of an LDAP email* so we can link them to your All Hands reservation. Rooms booked by any method except this link will not be linked to your main reservation. <br />
<br />
Rates start $179+tax/fees & for double occupancy.<br />
<br />
====Parking====<br />
Self-Parking is available at several lots nearby. The Marriott Marquis offers valet only - please do not park valet. Mozilla will not reimburse for parking, plan to commute the way you normally would in the city. If you have questions about parking, email bmark@mozilla.com.<br />
<br />
=='''Travel'''==<br />
Booking travel is now open. Please book itineraries by Friday, April 13, 2018. <br />
<br />
====Arriving Early/Departing Late Guidelines====<br />
<br />
Our standard travel guidelines apply (pre-populated in Egencia) when booking with a few additional budget constraints. Anything booked outside of them will require approval. Most people will arrive on Monday, June 11 and leave on Saturday, June 16. Here are some exceptions: <br />
* If you live in a country where work travel is prohibited on weekends, you may travel on Friday, June 8 and Monday, June 18, if you’d prefer (not required). For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
* If you plan to spend some extra personal time in San Francisco (choosing to arrive before Monday, June 11 or depart after Saturday, June 16), you'll need to create an itinerary in Egencia for standard dates/locations within the San Francisco June 2018 Portal and compare to the custom dates you'd like. Please share the difference via email to bmark@mozilla.com before submitting the flight. You can sway up to +$100 over and Mozilla will cover it. Otherwise you'll need to come with an alternate itinerary that fits within the pricing (like a round trip in and out of SFO w/ longer dates, and you personally book & cover the rest). We do not have the ability for employees to reimburse Mozilla for any overage.<br />
* If you are attending the Monday Core Influencer's event (by invite).<br />
* If you would like to arrive early to recover from jetlag, you will need manager approval for any additional costs associated with the extension. There is no unilateral "All Hands" approval based upon timezone to arrive early. For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
<br />
====Booking Family Travel====<br />
Once travel has opened to staff, you may book family, whether they will accompany you on your flight or join us later; and you have two options: Direct or through Egencia. <br />
<br />
If you choose to book family through Egencia, please first book your own flight and then call Egencia with your airline confirmation number (staff do have to go through Egencia). Otherwise, you can book family direct (either through the airline or through another third party) and call the ticketing airline(s) with both confirmation numbers and ask them to link your reservations, so they know you are traveling together. They should also be able to assign seats together. You will avoid the limited hours Egencia offers and avoid paying their ticketing fee. <br />
<br />
If you prefer to book your family through Egencia, you can pay (including the Egencia booking fees) and coordinate with your own travel (recommend to book and then call/email Egencia with your itinerary number to match for family). Note that booking through Egencia does not put you on the same reservation, nor guarantee the reservations will be linked (you would still need to call the airline to link them). <br />
* '''Call:''' +1 (877) 264-1622 or +1 (417) 521-0273; Monday - Friday 9 am - 6 pm EST. If you call outside these hours, you will get an after hours agent, who may not be as helpful. <br />
<br />
====Travel Insurance====<br />
Mozilla provides emergency medical accident and illness cover for all global MoCo employees/interns and their dependents. You can view more information on [https://mana.mozilla.org/wiki/display/PR/Travel+insurance%3A+Business Mana]. This coverage begins at the time the you leave home to start your business trip. It also has a provision for a 14 day extension for leisure travel outside of the business travel. If you have additional questions, please email benefits@mozilla.com. <br />
<br />
Mozilla does not cover travel insurance for elancers, upworkers, contractors, vendors, or volunteers/community members.<br />
<br />
=====''Air Travel Fine Print''=====<br />
Change fees will be covered by Mozilla for '''business reasons only'''. If you need a change and have manager approval, email bmark@mozilla.com prior to requesting the change with Egencia. Once you have approval, call Egencia to make the change at +1 (702) 939-2530 or +1-877-264-1622 (note this will not be possible without prior approval so be sure to get that by way of an email from your manager to Brianna Mark). If you are changing for personal reasons, the change in airfare, change fee and Egencia fee is your responsibility.<br />
<br />
Mozilla will not reimburse for Business/First class upgrades or tickets. <br />
<br />
Any submitted expenses needs to have an itinerary attached to ensure it is employee expenses only and within policy.<br />
<br />
=====Airport Shuttle=====<br />
All Mozillians and guests who have flights arriving anytime on Monday, June 11th in San Francisco International Airport (SFO) and out on Saturday, June 16th, will be transferred to the hotel. If you arrive into another airport (OAK or SJC) or on a different date, ground transportation is on your own.<br />
<br />
'''Arrivals to San Francisco International Airport (SFO)'''<br />
<br />
The airport has four terminals: Terminal 1, 2 & 3, and the International Terminal. For domestic flights In Terminals 1, 2 & 3 and the International Terminal (there are domestic flights), everyone will be greeted at the bottom of the escalator in the baggage claim for your terminal (even if you have no checked bags). Please identify yourself to the greeter and they will direct you to the shuttles for your terminal. <br />
<br />
For International Flights into the International terminal, you will collect your luggage and pass through customs. Once through customs, you will walk directly out to the main lobby, where you’ll find a greeter and they will direct your to your shuttle.<br />
<br />
Transfer time from the airport to the hotel is approximately 40-60 minutes.<br />
<br />
'''Departures from San Francisco International Airport (SFO)'''<br />
<br />
Everyone departing on Saturday, June 16th, will receive transportation to SFO. You will be met by transportation staff in the Marriott hotel lobby and assisted onto the shuttles. <br />
<br />
If you have questions about arrivals or departures, please email mozilla@shworldwide.com.<br />
<br />
====Alternate Transportation Options====<br />
For those arriving or departing on dates other than June 11 and 16. <br />
*[http://www.bart.gov/stations/powl BART] goes from SFO to the Powell Street Station for $8.95. Tickets can be purchased at the airport or in advance. <br />
*[http://www.samtrans.com/schedulesandmaps/timetables/292.html SamTrans bus Route 292] goes from SFO to Mission St. & 5th St. only for [http://www.samtrans.com/fares/farechart.html $2.25 (inbound) or $4 (outbound)].<br />
*[https://www.supershuttle.com/locations/sanfranciscosfo/ Super Shuttle]. Shared shuttle service. Book in advance. <br />
<br />
Other options can be found on the [https://www.flysfo.com/to-from/ground-transportation SFO website].<br />
<br />
====Mountain View Office Shuttle====<br />
We will provide a shuttle from the Mountain View office on Monday, June 11th (1:00 pm and 3:00 pm). They will depart from the main entrance. We will return to Mountain View on Saturday, June 16 (10:00 am and 12:30 pm). They will depart the Marriott. <br />
<br />
You can get dropped off or park at the office until 10:00 pm Sunday, June17. There will be normal security patrols however, you should remove valuables from view and secure your vehicle.<br />
<br />
====From the Bay Area but not taking the Mountain View Office Shuttle?====<br />
Our expectation is that you commute to the hotel just as you would to the office in the Bay Area. If you normally take the BART or MUNI, do that. If you normally drive and pay for parking - that's up to you but hotel parking is not a reimbursable expense for the All Hands.<br />
<br />
=='''Accessibility'''==<br />
<br />
'''Marriott Marquis'''<br />
<br />
The guestroom tower has accessible elevators, and accessible rooms (on request). The main entrance and pathway to hotel registration are accessible. All meeting space can be access via elevators. <br />
<br />
====Evenings====<br />
The Monday Night reception is at City View, which is located on the 4th floor of the METREON and is accessible from the ground floor via 2 passenger elevators and escalators. There is ADA access from all building entrances as well.. The Friday Night Party is at [https://www.exploratorium.edu/visit/accessibility Exploratorium], which has access to all levels by elevator. <br />
<br />
=='''Immigration'''==<br />
'''Any''' questions on immigration should be sent to immigration@mozilla.com.<br />
<br />
If you are from a country that requires a B-1/B-2 business visitor visa to enter the US, please plan for it early as government processing times constantly change.<br />
<br />
Please visit the following website to learn more about the visa application process and timing for your country: http://travel.state.gov/content/visas/english/visit/visitor.html#overview. Current estimated processing times at the US Embassies and Consulates abroad can be found at: https://travel.state.gov/content/visas/en/general/wait-times.html/<br />
<br />
Some travelers may be eligible to travel to the United States without first applying for a B-1/B-2 visa, if they are eligible for the Visa Waiver Program (VWP or "ESTA"). You are eligible to apply for admission under the Visa Waiver Program (VWP) if you:<br />
<br />
*Intend to enter the United States for 90 days or less for business, pleasure or transit<br />
*Have a valid passport lawfully issued to you by a Visa Waiver Program country: http://www.esta.us/visa_waiver_countries.html<br />
*Have authorization to travel via the Electronic System for Travel Authorization: https://esta.cbp.dhs.gov/<br />
*Arrive via a Visa Waiver Program signatory carrier (all commercial airlines meet this requirement)<br />
*Have a return or onward ticket<br />
*Travel may not terminate in contiguous territory or adjacent islands unless the traveler is a resident of one of those areas<br />
<br />
=====Employee Travel FAQ=====<br />
This [https://mana.mozilla.org/wiki/display/PR/Travel+FAQ FAQ] addresses questions about how to handle security concerns and electronic devices at the border and how to engage with US Customs & Border Protection (CBP). While it specifically focuses on concerns related to travel to the United States, much of this guidance is applicable to travel elsewhere. Mana access required.<br />
<br />
=====Pocket Letter=====<br />
A pocket letter is recommended to keep on hand for those who are entering the United States. It should accompany you whether or not you are required to have a visa to enter. You may request a copy of that letter when you register online. Please contact immigration@mozilla.com if you require a specific letter for your visa application or if you have any questions regarding your citizenship, visa capabilities or travel related questions.<br />
<br />
=====ESTA Point of Contact=====<br />
In the ESTA application you need to give a "U.S. Point of Contact Information". <br />
<br />
Please list Casey McGill as your US Point of Contact.<br />
Address: 331 East Evelyn Avenue, Mountain View, CA 94041 Phone: 408.505.3028<br />
<br />
=='''San Francisco All Hands Expense Policy'''==<br />
1. All "All Hands" Expenses must be submitted on 1 (and only 1) Expense report (e.g. San Francisco All Hands Expense Report)<br />
<br />
2. It must contain only those expenses relative to the All Hands Event (5-10 days of pre-post activity only)<br />
<br />
3. If your submitted expense report for All Hands is submitted outside these guidelines, it will be rejected and you will be asked to re-submit with only All Hands Expenses<br />
<br />
4. The deadline to submit the San Francisco All Hands Expense Report is '''July 31, 2018'''.<br />
<br />
5. Expenses related to team events, parking, room service, mini-bar charges, and food/drink costs above the vouched amounts, will not be approved. <br />
<br />
'''The intention of our all hands are to centrally organize a structure that includes:'''<br />
*Meals (two/day + snacks)<br />
*Transportation^<br />
*Accommodations<br />
*Some number of social events<br />
<br />
Due to the nature of the San Francisco, employees will be expensing specific meals. The amount that can be expensed will be communicated and expenses submitted can not exceed the approved amounts. Any social events that are not part of our central plan will generally be self-organized and funded by participants. <br />
<br />
^Transportation for those based in the Bay Area is limited to "commuting" as you normally would. Expenses for commuting are not reimbursable. We have provided shuttles from the MV office for those based in the south bay. For those who that doesn't make sense to use, commute using your normal means. We will not reimburse for hotel parking. <br />
<br />
=====Cell phone reimbursement policy=====<br />
Cell phone reimbursement must be approved by your manager prior to submitting the expense. Teams will decide for their staff what is appropriate to expense. <br />
<br />
=====Internet reimbursement policy=====<br />
Internet will be provided in all guestrooms and meeting space in all hotels. If you opt to upgrade/add service, those costs are not reimbursable, unless previously approved by your manager and are for business reasons. <br />
<br />
If you have questions about any of this, please reach out to bmark@mozilla.com<br />
<br />
=='''Families/Guests in San Francisco'''==<br />
<br />
Of course our focus, for the majority of the week, will be on Mozilla. Everyone is expected to be present and engaged each day, during work hours (as your schedule dictates). Please do what you can to make sure your loved ones understand the kind of commitment you’ve made. Family should not join you during your work sessions and meals. Please note that what we are able to do for families varies by each location. <br />
<br />
====Quick summary logistics====<br />
<br />
'''Air Travel''': Family travel can be booked/coordinated through Egencia by calling direct; or on your own. Employees do need to book via Egencia regardless of how families are booked.<br />
<br />
'''Hotel''': They are welcome to stay with you, however, any additional room expenses will be yours to cover. All room rates are based upon single occupancy and costs to add guests vary by hotel. Breakfast is not included in any of the guest room rates. Once hotel reservations are made, we will provide a link or contact add guests.<br />
<br />
Meals: Breakfast will be provided to All Hands registered guests, for lunch families are on their own. They are invited to join our Monday & Friday evening festivities, we just ask that you let us know they'll be there in registration.<br />
<br />
=='''Extracurricular Activities'''==<br />
Costs for these activities are self-funded and can not be expensed. Feel free to add activities and invite others.<br />
<br />
* '''[https://public.etherpad-mozilla.org/p/sf-day-hike-2018 Hiking!]'''</div>Dholberthttps://wiki.mozilla.org/index.php?title=All_Hands/SanFrancisco2018&diff=1192398All Hands/SanFrancisco20182018-04-16T20:11:31Z<p>Dholbert: /* Monday */ Fix typo in the name "Metreon"</p>
<hr />
<div>'''What is it?''' -- Multiple team meetings, happening in the same city, at the same time + some opportunity to get together as one big group as well as with other teams as it makes sense. Then, on the last day, we have a fun social event for all, Mozilla-style! <br />
<br />
'''''The information on this wiki primarily applies to Full time and contractor staff. If you are a volunteer contributor or intern, please inquire to your coordinator. '''''<br />
<br />
=='''Dates, Location and Weather'''==<br />
Monday, June 11 - Friday, June 15, 2018 (travel days are Monday the 11th & Saturday the 16th) in San Francisco, CA.<br />
<br />
We are staying at [http://www.marriott.com/hotels/travel/sfodt-san-francisco-marriott-marquis/ San Francisco Marriott Marquis].<br />
<br />
''*For those countries where rest time is required on weekends (vs. work travel), Mozilla will cover a return on the next available work day, if you choose. This needs to be pre-approved and pre-arranged.''<br />
<br />
Weather:<br />
* National Weather Service: [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&unit=1&mp=1 forecast in ⁰C], [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&mp=1 forecast in ⁰F]<br />
* Temperatures ''in downtown San Francisco'' in late June are likely to have nighttime lows around 10-13 ⁰C / 50-56 ⁰F and daytime highs around 16-24 ⁰C / 61-75 ⁰F. But the weather is very occasionally warmer with highs around 27⁰C / 81⁰F.<br />
* Weather in San Francisco in the summer is variable; it can become substantially cooler and foggier in the late afternoon; be prepared for temperatures to fall to 13⁰C / 56⁰F and the winds to pick up in the afternoon. Be prepared by carrying a warmer layer with you.<br />
* Weather in other parts of the Bay Area can be much warmer than in San Francisco, even if you're only traveling 15km away. Look at the weather forecasts for where you're going. It's entirely possible for it to be 19⁰C / 66⁰F in San Francisco and simultaneously be 32⁰C / 90⁰F in Orinda. But if you're right on the ocean, the air temperature is likely to match the water temperature, which is probably around 12⁰C / 54⁰F.<br />
<br />
=='''Registration'''==<br />
This is an invitation-only event.<br />
<br />
Advance registration is required. Attendees, guests and local guests will need to wear their event badge at all times, including to evening events.<br />
<br />
=====New Hires=====<br />
We have a process to identify new hires each Monday and will invite them to book travel. No action necessary from managers other than to let them know about the event. Please work closely with your recruiting manager as they are aware of all deadlines.<br />
<br />
Monday, May 7 is the deadline for hiring. Friday, May 11 is the deadline that all new hires who must travel to the all hands but be registered and have travel booked. Friday, May 18 is the deadline for Bay Area/local new hires who do not need hotel or to travel need to be registered. All new hires must start on or before May 29.<br />
<br />
==== Contributors participation ====<br />
The process for this is [[All Hands/SanFrancisco2018/Contributor_nominations|outlined on this page]]. <br />
<br />
All nominations will be done by employees, with a coordinator from each of the Firefox/Product, Emerging Technologies, Marketing, Open Innovation and People parts of the organization. There will be no open call for nominations from contributors or volunteer Mozillians.<br />
<br />
Please note: The information on this wiki primarily applies to fulltime and contractor staff. If you have questions about how specifics apply to you, please email groter@mozilla.com and bmark@mozilla.com.<br />
<br />
=='''Week at a Glance'''==<br />
=====Monday=====<br />
Monday is primarily your travel day. You'll be able to pick up your registration stuff between 12:00 pm and 9:00 pm, as well as attend the Welcome Reception at the City View at Metreon from 6:00 pm - 9:00 pm.<br />
<br />
=====Tuesday=====<br />
We'll start Tuesday with a Plenary session.<br />
<br />
=====Friday=====<br />
Our closing party with be at the Exploratorium from 7:00 pm- 11:00 pm. We'll provide transportation to/from the hotel & venue + if the weather is nice, you could walk (about 1.5 miles).<br />
<br />
=====Saturday=====<br />
Departure day only. No scheduled activities.<br />
<br />
===San Francisco All Hands Event Calendar===<br />
Link coming soon. Events will be live by early May. <br />
<br />
=====Create an account=====<br />
We don’t recommend using the same email & password as anything like bank accounts, etc. We care about your security!<br />
<br />
If you already have a Sched account from past All Hands, it still works, just log in with that.<br />
<br />
=====Add items to your calendar=====<br />
Just hit the circle on any agenda item to add it to your calendar (you do need to have an account & be logged in to do this)<br />
<br />
You can also share a link to meetings to invite others. Go into the meeting and copy the short link. You can email that out to anyone and they can quickly add it to their calendar. <br />
<br />
=====Subscribe to GCal Calendar Link=====<br />
Click on the mobile phone on the right hand side of the screen. All the calendar options are available here. <br />
You have the option to choose ALL meetings or YOUR meetings. Unless you have 400 items on your calendar, just select your calendar. It will add anything on your calendar to your GCal (also an option for Outlook and iCal). It syncs once per day.<br />
<br />
The "only syncs once per day" only applies to Google Calendar. With almost all other clients (like Apple Calendar, Outlook, or the calendar app on your phone) you can set the refresh interval, and Sched's instructions recommend 1 hour.<br />
<br />
Warning: This is a link that utilizes your username for the .ics file.<br />
<br />
=====From Mobile=====<br />
Visit from any mobile device - bookmark or add to your homescreen for quick access. There is a bonus icon you get by doing this. It caches the last time you opened the page offline and refreshes anytime you are connected.<br />
<br />
=====Cool things=====<br />
'''Filters'''<br />
<br />
We have better (much needed) filtering functionality. You can filter by:<br />
Departments (ex: Firefox)<br />
AND<br />
Functional Teams (ex: Dev Tools or EngOps)<br />
<br />
*Search by Room, Speaker/Leader<br />
<br />
'''Further Filtering'''<br />
*Audience - who should be there (ex: Team only or Invite)<br />
*Homerooms (you can quickly see what is happening in homerooms, by team) - why do you care? If you have a cross team meeting in their room, its a quick way to search<br />
*Views - Lots of view options. It defaults to the simple view, but there are quite a few options.<br />
<br />
=='''Food & Drink'''==<br />
Breakfast, lunch & snacks will be provided and paid for centrally for attendees. Breakfast is provided Tuesday - Saturday and lunch is provided Tuesday - Friday. <br />
<br />
Allergies/preferences: We will ensure that all food/environmental allergies are taken into consideration and will always have gluten-free and vegan options. If you have severe allergies that we need to know about; you can indicate in registration.<br />
<br />
===Monday Night===<br />
We will provide dinner at the Welcome Reception from 6:00 pm - 9:00 pm at City View by Meteron at the Welcome Reception. Since most of Monday is a travel day, you'll be on your own for meals except dinner. <br />
<br />
===Tuesday, Wednesday & Thursday Nights===<br />
Tuesday, Wednesday and Thursday evenings will be of your own to structure as you wish. Given how much you all seemed to like a more flexible dining experience, these three evenings will be of your own to structure as you wish.<br />
<br />
Here is how this will work:<br />
<br />
For each of these three evenings, once your meetings have concluded, you and your team, friends, new acquaintances, are free to explore San Francisco and to find somewhere great to eat that suits you. Each of you can expense a total of $180 over the three days (or $60/night).<br />
<br />
This amount includes:<br />
* Meal cost, including tax & gratuity<br />
* Any beverages<br />
* Transportation to/from the restaurant<br />
* Conversion fees (for credit cards) or cash withdrawal fees<br />
<br />
Anything over the $180 for the three evenings will be your own expense. The fine print:<br />
* If your team is hosting an evening event 1 of the 3 nights and the payment is coordinated (meaning, you don’t have to open your wallet and pay), you can expense up to $120 for the other 2 nights ($60 for each of the 2 nights you did have to open your wallet and pay).<br />
* You will be asked (later) to submit a San Francisco only expense report. You can submit ONE report for San Francisco only and must be submitted no later than August 31, 2017.<br />
* If your manager approves expenses above the $60 per night, that expense will go directly to your travel budget in your cost center.<br />
<br />
Volunteer Contributors & Interns will have a separate process that will be communicated directly.<br />
<br />
===Friday Night===<br />
We will provide dinner at the Closing Party from 7:00 pm - 11:00 pm at The Exploratorium.<br />
<br />
====What you need====<br />
Your SF All Hands name badge and Identification (you may be carded for alcohol).<br />
<br />
=='''Photos'''==<br />
==== Red Lanyards ====<br />
If you see someone with a red lanyard, please don't take photos of them. They have opted out of being in photography. We'll have these available at the registration desk.<br />
<br />
=='''Safety & Security'''==<br />
=====Meeting Security=====<br />
You'll need to have your badge on at all times in the hotel, as will your partners, vendors and family members anytime they are in the spaces.<br />
<br />
=====Device Security=====<br />
If you are traveling to the San Francisco All Hands with a device that has Mozilla data (laptop, personal cell phone/tablet with @mozilla gmail, etc) on it and your device has been retained for further inspection by border agents, or if your device has been inspected outside your immediate presence - and you believe your credentials have been compromised - you must notify the Enterprise Information Security team as soon as possible at infosec@mozilla.com or by calling Mozilla End User Services at +1 650-963-8811. (This number will be staffed 24x7)<br />
<br />
We will work with you to reset your credentials and help you get your device back to a known good state either by getting you a new one (if it’s been taken), or by resetting it back to a verifiable Mozilla-approved installation.<br />
<br />
=====Safety Tips=====<br />
SF Travel team also has some [https://sftravel.ent.box.com/s/p2ve63e1ctn74e0ai2x48mmgr9fdlvul tips about safety] in the city, including safety numbers and local hospitals.<br />
<br />
=='''Hotel'''==<br />
Hotel rooms are reserved for all employees & volunteers to stay all week, including employees based in San Francisco (just as if we were somewhere you don't live). We are hopeful Mozilla-locals will stay with the rest of us in the hotel - it's really part of what makes these events great. You will have the option to opt out of hotel in registration if you are local to the Bay Area and wish to commute. <br />
<br />
A few things to note:<br />
*Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US-resort standard and we aren't able to waive it (we tried). Please reach out to mozilla@shworldwide.com if this creates a hardship for you.<br />
*If you have any changes or questions about your reservation, email mozilla@shworldwide.com. The hotel cannot make changes to All Hands reservations (other than to add your guests - see #4) so we’d like very much if you didn’t try (it complicates things).<br />
*If you have guests joining you for all or part of the week, you will be responsible for adding them to your reservation (and covering any additional fees). To do this, you will need your confirmation number(s) and to know how old your kids are. Details on how to add them will come a few weeks after registration closes. <br />
<br />
====Payment on Check-in====<br />
Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US hotel standard and we aren't able to waive it (we tried).<br />
<br />
We recommend providing a credit card. You can provide a debit card, but they do put a hold of funds on your card and has been problematic for some international travelers in the past. If you are not able to provide a credit or debit card, email mozilla@shworldwide.com and we'll work with the hotel on accommodating. <br />
<br />
====Pre/post====<br />
Links will be provided when you are invited to register in mid-April to book hotel 3 days pre and 3 days post at our negotiated rate. The pre/post reservations will require the use of an LDAP email* so we can link them to your All Hands reservation. Rooms booked by any method except this link will not be linked to your main reservation. <br />
<br />
Rates start $179+tax/fees & for double occupancy.<br />
<br />
====Parking====<br />
Self-Parking is available at several lots nearby. The Marriott Marquis offers valet only - please do not park valet. Mozilla will not reimburse for parking, plan to commute the way you normally would in the city. If you have questions about parking, email bmark@mozilla.com.<br />
<br />
=='''Travel'''==<br />
Booking travel is now open. Please book itineraries by Friday, April 13, 2018. <br />
<br />
====Arriving Early/Departing Late Guidelines====<br />
<br />
Our standard travel guidelines apply (pre-populated in Egencia) when booking with a few additional budget constraints. Anything booked outside of them will require approval. Most people will arrive on Monday, June 11 and leave on Saturday, June 16. Here are some exceptions: <br />
* If you live in a country where work travel is prohibited on weekends, you may travel on Friday, June 8 and Monday, June 18, if you’d prefer (not required). For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
* If you plan to spend some extra personal time in San Francisco (choosing to arrive before Monday, June 11 or depart after Saturday, June 16), you'll need to create an itinerary in Egencia for standard dates/locations within the San Francisco June 2018 Portal and compare to the custom dates you'd like. Please share the difference via email to bmark@mozilla.com before submitting the flight. You can sway up to +$100 over and Mozilla will cover it. Otherwise you'll need to come with an alternate itinerary that fits within the pricing (like a round trip in and out of SFO w/ longer dates, and you personally book & cover the rest). We do not have the ability for employees to reimburse Mozilla for any overage.<br />
* If you are attending the Monday Core Influencer's event (by invite).<br />
* If you would like to arrive early to recover from jetlag, you will need manager approval for any additional costs associated with the extension. There is no unilateral "All Hands" approval based upon timezone to arrive early. For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
<br />
====Booking Family Travel====<br />
Once travel has opened to staff, you may book family, whether they will accompany you on your flight or join us later; and you have two options: Direct or through Egencia. <br />
<br />
If you choose to book family through Egencia, please first book your own flight and then call Egencia with your airline confirmation number (staff do have to go through Egencia). Otherwise, you can book family direct (either through the airline or through another third party) and call the ticketing airline(s) with both confirmation numbers and ask them to link your reservations, so they know you are traveling together. They should also be able to assign seats together. You will avoid the limited hours Egencia offers and avoid paying their ticketing fee. <br />
<br />
If you prefer to book your family through Egencia, you can pay (including the Egencia booking fees) and coordinate with your own travel (recommend to book and then call/email Egencia with your itinerary number to match for family). Note that booking through Egencia does not put you on the same reservation, nor guarantee the reservations will be linked (you would still need to call the airline to link them). <br />
* '''Call:''' +1 (877) 264-1622 or +1 (417) 521-0273; Monday - Friday 9 am - 6 pm EST. If you call outside these hours, you will get an after hours agent, who may not be as helpful. <br />
<br />
====Travel Insurance====<br />
Mozilla provides emergency medical accident and illness cover for all global MoCo employees/interns and their dependents. You can view more information on [https://mana.mozilla.org/wiki/display/PR/Travel+Insurance+-+Business Mana]. This coverage begins at the time the you leave home to start your business trip. It also has a provision for a 14 day extension for leisure travel outside of the business travel. If you have additional questions, please email benefits@mozilla.com. <br />
<br />
Mozilla does not cover travel insurance for elancers, upworkers, contractors, vendors, or volunteers/community members.<br />
<br />
=====''Air Travel Fine Print''=====<br />
Change fees will be covered by Mozilla for '''business reasons only'''. If you need a change and have manager approval, email bmark@mozilla.com prior to requesting the change with Egencia. Once you have approval, call Egencia to make the change at +1 (702) 939-2530 or +1-877-264-1622 (note this will not be possible without prior approval so be sure to get that by way of an email from your manager to Brianna Mark). If you are changing for personal reasons, the change in airfare, change fee and Egencia fee is your responsibility.<br />
<br />
Mozilla will not reimburse for Business/First class upgrades or tickets. <br />
<br />
Any submitted expenses needs to have an itinerary attached to ensure it is employee expenses only and within policy.<br />
<br />
=====Airport Shuttle=====<br />
All Mozillians and guests who have flights arriving anytime on Monday, June 11th in San Francisco International Airport (SFO) and out on Saturday, June 16th, will be transferred to the hotel. If you arrive into another airport (OAK or SJC) or on a different date, ground transportation is on your own.<br />
<br />
'''Arrivals to San Francisco International Airport (SFO)'''<br />
<br />
The airport has four terminals: Terminal 1, 2 & 3, and the International Terminal. For domestic flights In Terminals 1, 2 & 3 and the International Terminal (there are domestic flights), everyone will be greeted at the bottom of the escalator in the baggage claim for your terminal (even if you have no checked bags). Please identify yourself to the greeter and they will direct you to the shuttles for your terminal. <br />
<br />
For International Flights into the International terminal, you will collect your luggage and pass through customs. Once through customs, you will walk directly out to the main lobby, where you’ll find a greeter and they will direct your to your shuttle.<br />
<br />
Transfer time from the airport to the hotel is approximately 40-60 minutes.<br />
<br />
'''Departures from San Francisco International Airport (SFO)'''<br />
<br />
Everyone departing on Saturday, June 16th, will receive transportation to SFO. You will be met by transportation staff in the Marriott hotel lobby and assisted onto the shuttles. <br />
<br />
If you have questions about arrivals or departures, please email mozilla@shworldwide.com.<br />
<br />
====Alternate Transportation Options====<br />
For those arriving or departing on dates other than June 11 and 16. <br />
*[http://www.bart.gov/stations/powl BART] goes from SFO to the Powell Street Station for $8.95. Tickets can be purchased at the airport or in advance. <br />
*[http://www.samtrans.com/schedulesandmaps/timetables/292.html SamTrans bus Route 292] goes from SFO to Mission St. & 5th St. only for [http://www.samtrans.com/fares/farechart.html $2.25 (inbound) or $4 (outbound)].<br />
*[https://www.supershuttle.com/locations/sanfranciscosfo/ Super Shuttle]. Shared shuttle service. Book in advance. <br />
<br />
Other options can be found on the [https://www.flysfo.com/to-from/ground-transportation SFO website].<br />
<br />
====Mountain View Office Shuttle====<br />
We will provide a shuttle from the Mountain View office on Monday, June 11th (1:00 pm and 3:00 pm). They will depart from the main entrance. We will return to Mountain View on Saturday, June 16 (10:00 am and 12:30 pm). They will depart the Marriott. <br />
<br />
You can get dropped off or park at the office until 10:00 pm Sunday, June17. There will be normal security patrols however, you should remove valuables from view and secure your vehicle.<br />
<br />
====From the Bay Area but not taking the Mountain View Office Shuttle?====<br />
Our expectation is that you commute to the hotel just as you would to the office in the Bay Area. If you normally take the BART or MUNI, do that. If you normally drive and pay for parking - that's up to you but hotel parking is not a reimbursable expense for the All Hands.<br />
<br />
=='''Accessibility'''==<br />
<br />
'''Marriott Marquis'''<br />
<br />
The guestroom tower has accessible elevators, and accessible rooms (on request). The main entrance and pathway to hotel registration are accessible. All meeting space can be access via elevators. <br />
<br />
====Evenings====<br />
The Monday Night reception is at City View, which is located on the 4th floor of the METREON and is accessible from the ground floor via 2 passenger elevators and escalators. There is ADA access from all building entrances as well.. The Friday Night Party is at [https://www.exploratorium.edu/visit/accessibility Exploratorium], which has access to all levels by elevator. <br />
<br />
=='''Immigration'''==<br />
'''Any''' questions on immigration should be sent to immigration@mozilla.com.<br />
<br />
If you are from a country that requires a B-1/B-2 business visitor visa to enter the US, please plan for it early as government processing times constantly change.<br />
<br />
Please visit the following website to learn more about the visa application process and timing for your country: http://travel.state.gov/content/visas/english/visit/visitor.html#overview. Current estimated processing times at the US Embassies and Consulates abroad can be found at: https://travel.state.gov/content/visas/en/general/wait-times.html/<br />
<br />
Some travelers may be eligible to travel to the United States without first applying for a B-1/B-2 visa, if they are eligible for the Visa Waiver Program (VWP or "ESTA"). You are eligible to apply for admission under the Visa Waiver Program (VWP) if you:<br />
<br />
*Intend to enter the United States for 90 days or less for business, pleasure or transit<br />
*Have a valid passport lawfully issued to you by a Visa Waiver Program country: http://www.esta.us/visa_waiver_countries.html<br />
*Have authorization to travel via the Electronic System for Travel Authorization: https://esta.cbp.dhs.gov/<br />
*Arrive via a Visa Waiver Program signatory carrier (all commercial airlines meet this requirement)<br />
*Have a return or onward ticket<br />
*Travel may not terminate in contiguous territory or adjacent islands unless the traveler is a resident of one of those areas<br />
<br />
=====Employee Travel FAQ=====<br />
This [https://mana.mozilla.org/wiki/display/PR/Travel+FAQ FAQ] addresses questions about how to handle security concerns and electronic devices at the border and how to engage with US Customs & Border Protection (CBP). While it specifically focuses on concerns related to travel to the United States, much of this guidance is applicable to travel elsewhere. Mana access required.<br />
<br />
=====Pocket Letter=====<br />
A pocket letter is recommended to keep on hand for those who are entering the United States. It should accompany you whether or not you are required to have a visa to enter. You may request a copy of that letter when you register online. Please contact immigration@mozilla.com if you require a specific letter for your visa application or if you have any questions regarding your citizenship, visa capabilities or travel related questions.<br />
<br />
=====ESTA Point of Contact=====<br />
In the ESTA application you need to give a "U.S. Point of Contact Information". <br />
<br />
Please list Casey McGill as your US Point of Contact.<br />
Address: 331 East Evelyn Avenue, Mountain View, CA 94041 Phone: 408.505.3028<br />
<br />
=='''San Francisco All Hands Expense Policy'''==<br />
1. All "All Hands" Expenses must be submitted on 1 (and only 1) Expense report (e.g. San Francisco All Hands Expense Report)<br />
<br />
2. It must contain only those expenses relative to the All Hands Event (5-10 days of pre-post activity only)<br />
<br />
3. If your submitted expense report for All Hands is submitted outside these guidelines, it will be rejected and you will be asked to re-submit with only All Hands Expenses<br />
<br />
4. The deadline to submit the San Francisco All Hands Expense Report is '''July 31, 2018'''.<br />
<br />
5. Expenses related to team events, parking, room service, mini-bar charges, and food/drink costs above the vouched amounts, will not be approved. <br />
<br />
'''The intention of our all hands are to centrally organize a structure that includes:'''<br />
*Meals (two/day + snacks)<br />
*Transportation^<br />
*Accommodations<br />
*Some number of social events<br />
<br />
Due to the nature of the San Francisco, employees will be expensing specific meals. The amount that can be expensed will be communicated and expenses submitted can not exceed the approved amounts. Any social events that are not part of our central plan will generally be self-organized and funded by participants. <br />
<br />
^Transportation for those based in the Bay Area is limited to "commuting" as you normally would. Expenses for commuting are not reimbursable. We have provided shuttles from the MV office for those based in the south bay. For those who that doesn't make sense to use, commute using your normal means. We will not reimburse for hotel parking. <br />
<br />
=====Cell phone reimbursement policy=====<br />
Cell phone reimbursement must be approved by your manager prior to submitting the expense. Teams will decide for their staff what is appropriate to expense. <br />
<br />
=====Internet reimbursement policy=====<br />
Internet will be provided in all guestrooms and meeting space in all hotels. If you opt to upgrade/add service, those costs are not reimbursable, unless previously approved by your manager and are for business reasons. <br />
<br />
If you have questions about any of this, please reach out to bmark@mozilla.com<br />
<br />
=='''Families/Guests in San Francisco'''==<br />
<br />
Of course our focus, for the majority of the week, will be on Mozilla. Everyone is expected to be present and engaged each day, during work hours (as your schedule dictates). Please do what you can to make sure your loved ones understand the kind of commitment you’ve made. Family should not join you during your work sessions and meals. Please note that what we are able to do for families varies by each location. <br />
<br />
====Quick summary logistics====<br />
<br />
'''Air Travel''': Family travel can be booked/coordinated through Egencia by calling direct; or on your own. Employees do need to book via Egencia regardless of how families are booked.<br />
<br />
'''Hotel''': They are welcome to stay with you, however, any additional room expenses will be yours to cover. All room rates are based upon single occupancy and costs to add guests vary by hotel. Breakfast is not included in any of the guest room rates. Once hotel reservations are made, we will provide a link or contact add guests.<br />
<br />
Meals: Breakfast will be provided to All Hands registered guests, for lunch families are on their own. They are invited to join our Monday & Friday evening festivities, we just ask that you let us know they'll be there in registration.<br />
<br />
=='''Extracurricular Activities'''==<br />
Costs for these activities are self-funded and can not be expensed. Feel free to add activities and invite others.<br />
<br />
* '''[https://public.etherpad-mozilla.org/p/sf-day-hike-2018 Hiking!]'''</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1192200WeeklyUpdates2018-04-11T19:24:57Z<p>Dholbert: /* Meeting Notes */ Fix typo: s/9nd/9th/</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-04-09|April 9th, 2018]]<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=All_Hands/SanFrancisco2018&diff=1191640All Hands/SanFrancisco20182018-04-02T19:25:26Z<p>Dholbert: /* Families/Guests in San Francisco */ Fix typo ("what are able" -> "what we are able")</p>
<hr />
<div>'''What is it?''' -- Multiple team meetings, happening in the same city, at the same time + some opportunity to get together as one big group as well as with other teams as it makes sense. Then, on the last day, we have a fun social event for all, Mozilla-style! <br />
<br />
'''''The information on this wiki primarily applies to Full time and contractor staff. If you are a volunteer contributor or intern, please inquire to your coordinator. '''''<br />
<br />
=='''Dates, Location and Weather'''==<br />
Monday, June 11 - Friday, June 15, 2018 (travel days are Monday the 11th & Saturday the 16th) in San Francisco, CA.<br />
<br />
We are staying at [http://www.marriott.com/hotels/travel/sfodt-san-francisco-marriott-marquis/ San Francisco Marriott Marquis].<br />
<br />
''*For those countries where rest time is required on weekends (vs. work travel), Mozilla will cover a return on the next available work day, if you choose. This needs to be pre-approved and pre-arranged.''<br />
<br />
Weather:<br />
* National Weather Service: [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&unit=1&mp=1 forecast in ⁰C], [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&mp=1 forecast in ⁰F]<br />
* Temperatures ''in downtown San Francisco'' in late June are likely to have nighttime lows around 10-13 ⁰C / 50-56 ⁰F and daytime highs around 16-24 ⁰C / 61-75 ⁰F. But the weather is very occasionally warmer with highs around 27⁰C / 81⁰F.<br />
* Weather in San Francisco in the summer is variable; it can become substantially cooler and foggier in the late afternoon; be prepared for temperatures to fall to 13⁰C / 56⁰F and the winds to pick up in the afternoon. Be prepared by carrying a warmer layer with you.<br />
* Weather in other parts of the Bay Area can be much warmer than in San Francisco, even if you're only traveling 15km away. Look at the weather forecasts for where you're going. It's entirely possible for it to be 19⁰C / 66⁰F in San Francisco and simultaneously be 32⁰C / 90⁰F in Orinda. But if you're right on the ocean, the air temperature is likely to match the water temperature, which is probably around 12⁰C / 54⁰F.<br />
<br />
=='''Registration'''==<br />
This is an invitation-only event.<br />
<br />
Advance registration is required. Attendees, guests and local guests will need to wear their event badge at all times, including to evening events.<br />
<br />
=====New Hires=====<br />
We have a process to identify new hires each Monday and will invite them to book travel. No action necessary from managers other than to let them know about the event. Please work closely with your recruiting manager as they are aware of all deadlines.<br />
<br />
Monday, May 7 is the deadline for hiring. Friday, May 11 is the deadline that all new hires who must travel to the all hands but be registered and have travel booked. Friday, May 18 is the deadline for Bay Area/local new hires who do not need hotel or to travel need to be registered. All new hires must start on or before May 29.<br />
<br />
==== Contributors participation ====<br />
The process for this is [[All Hands/SanFrancisco2018/Contributor_nominations|outlined on this page]]. <br />
<br />
All nominations will be done by employees, with a coordinator from each of the Firefox/Product, Emerging Technologies, Marketing, Open Innovation and People parts of the organization. There will be no open call for nominations from contributors or volunteer Mozillians.<br />
<br />
Please note: The information on this wiki primarily applies to fulltime and contractor staff. If you have questions about how specifics apply to you, please email groter@mozilla.com and bmark@mozilla.com.<br />
<br />
=='''Week at a Glance'''==<br />
=====Monday=====<br />
Monday is primarily your travel day. You'll be able to pick up your registration stuff between 12:00 pm and 9:00 pm, as well as attend the Welcome Reception at the City View at Meteron from 6:00 pm - 9:00 pm. <br />
<br />
=====Tuesday=====<br />
We'll start Tuesday with a Plenary session.<br />
<br />
=====Friday=====<br />
Our closing party with be at the Exploratorium from 7:00 pm- 11:00 pm. We'll provide transportation to/from the hotel & venue + if the weather is nice, you could walk (about 1.7 miles).<br />
<br />
=====Saturday=====<br />
Departure day only. No scheduled activities.<br />
<br />
===San Francisco All Hands Event Calendar===<br />
Link coming soon. Events will be live by early May. <br />
<br />
=====Create an account=====<br />
We don’t recommend using the same email & password as anything like bank accounts, etc. We care about your security!<br />
<br />
If you already have a Sched account from past All Hands, it still works, just log in with that.<br />
<br />
=====Add items to your calendar=====<br />
Just hit the circle on any agenda item to add it to your calendar (you do need to have an account & be logged in to do this)<br />
<br />
You can also share a link to meetings to invite others. Go into the meeting and copy the short link. You can email that out to anyone and they can quickly add it to their calendar. <br />
<br />
=====Subscribe to GCal Calendar Link=====<br />
Click on the mobile phone on the right hand side of the screen. All the calendar options are available here. <br />
You have the option to choose ALL meetings or YOUR meetings. Unless you have 400 items on your calendar, just select your calendar. It will add anything on your calendar to your GCal (also an option for Outlook and iCal). It syncs once per day.<br />
<br />
The "only syncs once per day" only applies to Google Calendar. With almost all other clients (like Apple Calendar, Outlook, or the calendar app on your phone) you can set the refresh interval, and Sched's instructions recommend 1 hour.<br />
<br />
Warning: This is a link that utilizes your username for the .ics file.<br />
<br />
=====From Mobile=====<br />
Visit from any mobile device - bookmark or add to your homescreen for quick access. There is a bonus icon you get by doing this. It caches the last time you opened the page offline and refreshes anytime you are connected.<br />
<br />
=====Cool things=====<br />
'''Filters'''<br />
<br />
We have better (much needed) filtering functionality. You can filter by:<br />
Departments (ex: Firefox)<br />
AND<br />
Functional Teams (ex: Dev Tools or EngOps)<br />
<br />
*Search by Room, Speaker/Leader<br />
<br />
'''Further Filtering'''<br />
*Audience - who should be there (ex: Team only or Invite)<br />
*Homerooms (you can quickly see what is happening in homerooms, by team) - why do you care? If you have a cross team meeting in their room, its a quick way to search<br />
*Views - Lots of view options. It defaults to the simple view, but there are quite a few options.<br />
<br />
=='''Food & Drink'''==<br />
Breakfast, lunch & snacks will be provided and paid for centrally for attendees. Breakfast is provided Tuesday - Saturday and lunch is provided Tuesday - Friday. <br />
<br />
Allergies/preferences: We will ensure that all food/environmental allergies are taken into consideration and will always have gluten-free and vegan options. If you have severe allergies that we need to know about; you can indicate in registration.<br />
<br />
===Monday Night===<br />
We will provide dinner at the Welcome Reception from 6:00 pm - 9:00 pm at City View by Meteron at the Welcome Reception. Since most of Monday is a travel day, you'll be on your own for meals except dinner. <br />
<br />
===Tuesday, Wednesday & Thursday Nights===<br />
Tuesday, Wednesday and Thursday evenings will be of your own to structure as you wish. Given how much you all seemed to like a more flexible dining experience, these three evenings will be of your own to structure as you wish.<br />
<br />
Here is how this will work:<br />
<br />
For each of these three evenings, once your meetings have concluded, you and your team, friends, new acquaintances, are free to explore San Francisco and to find somewhere great to eat that suits you. Each of you can expense a total of $180 over the three days (or $60/night).<br />
<br />
This amount includes:<br />
* Meal cost, including tax & gratuity<br />
* Any beverages<br />
* Transportation to/from the restaurant<br />
* Conversion fees (for credit cards) or cash withdrawal fees<br />
<br />
Anything over the $180 for the three evenings will be your own expense. The fine print:<br />
* If your team is hosting an evening event 1 of the 3 nights and the payment is coordinated (meaning, you don’t have to open your wallet and pay), you can expense up to $120 for the other 2 nights ($60 for each of the 2 nights you did have to open your wallet and pay).<br />
* You will be asked (later) to submit a San Francisco only expense report. You can submit ONE report for San Francisco only and must be submitted no later than August 31, 2017.<br />
* If your manager approves expenses above the $60 per night, that expense will go directly to your travel budget in your cost center.<br />
<br />
Volunteer Contributors & Interns will have a separate process that will be communicated directly.<br />
<br />
===Friday Night===<br />
We will provide dinner at the Closing Party from 7:00 pm - 11:00 pm at The Exploratorium.<br />
<br />
====What you need====<br />
Your SF All Hands name badge and Identification (you may be carded for alcohol).<br />
<br />
=='''Photos'''==<br />
==== Red Lanyards ====<br />
If you see someone with a red lanyard, please don't take photos of them. They have opted out of being in photography. We'll have these available at the registration desk.<br />
<br />
=='''Safety & Security'''==<br />
=====Meeting Security=====<br />
You'll need to have your badge on at all times in the hotel, as will your partners, vendors and family members anytime they are in the spaces.<br />
<br />
=====Device Security=====<br />
If you are traveling to the San Francisco All Hands with a device that has Mozilla data (laptop, personal cell phone/tablet with @mozilla gmail, etc) on it and your device has been retained for further inspection by border agents, or if your device has been inspected outside your immediate presence - and you believe your credentials have been compromised - you must notify the Enterprise Information Security team as soon as possible at infosec@mozilla.com or by calling Mozilla End User Services at +1 650-963-8811. (This number will be staffed 24x7)<br />
<br />
We will work with you to reset your credentials and help you get your device back to a known good state either by getting you a new one (if it’s been taken), or by resetting it back to a verifiable Mozilla-approved installation.<br />
<br />
=====Safety Tips=====<br />
SF Travel team also has some [https://sftravel.ent.box.com/s/p2ve63e1ctn74e0ai2x48mmgr9fdlvul tips about safety] in the city, including safety numbers and local hospitals.<br />
<br />
=='''Hotel'''==<br />
Hotel rooms are reserved for all employees & volunteers to stay all week, including employees based in San Francisco (just as if we were somewhere you don't live). We are hopeful Mozilla-locals will stay with the rest of us in the hotel - it's really part of what makes these events great. You will have the option to opt out of hotel in registration if you are local to the Bay Area and wish to commute. <br />
<br />
A few things to note:<br />
*Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US-resort standard and we aren't able to waive it (we tried). Please reach out to mozilla@shworldwide.com if this creates a hardship for you.<br />
*If you have any changes or questions about your reservation, email mozilla@shworldwide.com. The hotel cannot make changes to All Hands reservations (other than to add your guests - see #4) so we’d like very much if you didn’t try (it complicates things).<br />
*If you have guests joining you for all or part of the week, you will be responsible for adding them to your reservation (and covering any additional fees). To do this, you will need your confirmation number(s) and to know how old your kids are. Details on how to add them will come a few weeks after registration closes. <br />
<br />
====Payment on Check-in====<br />
Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US hotel standard and we aren't able to waive it (we tried).<br />
<br />
We recommend providing a credit card. You can provide a debit card, but they do put a hold of funds on your card and has been problematic for some international travelers in the past. If you are not able to provide a credit or debit card, email mozilla@shworldwide.com and we'll work with the hotel on accommodating. <br />
<br />
====Pre/post====<br />
Links will be provided when you are invited to register in mid-April to book hotel 3 days pre and 3 days post at our negotiated rate. The pre/post reservations will require the use of an LDAP email* so we can link them to your All Hands reservation. Rooms booked by any method except this link will not be linked to your main reservation. <br />
<br />
Rates start $179+tax/fees & for double occupancy.<br />
<br />
====Parking====<br />
Self-Parking is available at several lots nearby. The Marriott Marquis offers valet only - please do not park valet. Mozilla will not reimburse for parking, plan to commute the way you normally would in the city. If you have questions about parking, email bmark@mozilla.com.<br />
<br />
=='''Travel'''==<br />
Booking travel is now open. Please book itineraries by Friday, April 13, 2018. <br />
<br />
====Arriving Early/Departing Late Guidelines====<br />
<br />
Our standard travel guidelines apply (pre-populated in Egencia) when booking with a few additional budget constraints. Anything booked outside of them will require approval. Most people will arrive on Monday, June 11 and leave on Saturday, June 16. Here are some exceptions: <br />
* If you live in a country where work travel is prohibited on weekends, you may travel on Friday, June 8 and Monday, June 18, if you’d prefer (not required). For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
* If you plan to spend some extra personal time in San Francisco (choosing to arrive before Monday, June 11 or depart after Saturday, June 16), you'll need to create an itinerary in Egencia for standard dates/locations within the San Francisco June 2018 Portal and compare to the custom dates you'd like. Please share the difference via email to bmark@mozilla.com before submitting the flight. You can sway up to +$100 over and Mozilla will cover it. Otherwise you'll need to come with an alternate itinerary that fits within the pricing (like a round trip in and out of SFO w/ longer dates, and you personally book & cover the rest). We do not have the ability for employees to reimburse Mozilla for any overage.<br />
* If you are attending the Monday Core Influencer's event (by invite).<br />
* If you would like to arrive early to recover from jetlag, you will need manager approval for any additional costs associated with the extension. There is no unilateral "All Hands" approval based upon timezone to arrive early. For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
<br />
====Booking Family Travel====<br />
Once travel has opened to staff, you may book family, whether they will accompany you on your flight or join us later; and you have two options: Direct or through Egencia. <br />
<br />
If you choose to book family through Egencia, please first book your own flight and then call Egencia with your airline confirmation number (staff do have to go through Egencia). Otherwise, you can book family direct (either through the airline or through another third party) and call the ticketing airline(s) with both confirmation numbers and ask them to link your reservations, so they know you are traveling together. They should also be able to assign seats together. You will avoid the limited hours Egencia offers and avoid paying their ticketing fee. <br />
<br />
If you prefer to book your family through Egencia, you can pay (including the Egencia booking fees) and coordinate with your own travel (recommend to book and then call/email Egencia with your itinerary number to match for family). Note that booking through Egencia does not put you on the same reservation, nor guarantee the reservations will be linked (you would still need to call the airline to link them). <br />
* '''Call:''' +1 (877) 264-1622 or +1 (417) 521-0273; Monday - Friday 9 am - 6 pm EST. If you call outside these hours, you will get an after hours agent, who may not be as helpful. <br />
<br />
====Travel Insurance====<br />
Mozilla provides emergency medical accident and illness cover for all global MoCo employees/interns and their dependents. You can view more information on [https://mana.mozilla.org/wiki/display/PR/Travel+Insurance+-+Business Mana]. This coverage begins at the time the you leave home to start your business trip. It also has a provision for a 14 day extension for leisure travel outside of the business travel. If you have additional questions, please email benefits@mozilla.com. <br />
<br />
Mozilla does not cover travel insurance for elancers, upworkers, contractors, vendors, or volunteers/community members.<br />
<br />
=====''Air Travel Fine Print''=====<br />
Change fees will be covered by Mozilla for '''business reasons only'''. If you need a change and have manager approval, email bmark@mozilla.com prior to requesting the change with Egencia. Once you have approval, call Egencia to make the change at +1 (702) 939-2530 or +1-877-264-1622 (note this will not be possible without prior approval so be sure to get that by way of an email from your manager to Brianna Mark). If you are changing for personal reasons, the change in airfare, change fee and Egencia fee is your responsibility.<br />
<br />
Mozilla will not reimburse for Business/First class upgrades or tickets. <br />
<br />
Any submitted expenses needs to have an itinerary attached to ensure it is employee expenses only and within policy.<br />
<br />
=====Airport Shuttle=====<br />
All Mozillians and guests who have flights arriving anytime on Monday, June 11th in San Francisco International Airport (SFO) and out on Saturday, June 16th, will be transferred to the hotel. If you arrive into another airport (OAK or SJC) or on a different date, ground transportation is on your own.<br />
<br />
'''Arrivals to San Francisco International Airport (SFO)'''<br />
<br />
The airport has four terminals: Terminal 1, 2 & 3, and the International Terminal. For domestic flights In Terminals 1, 2 & 3 and the International Terminal (there are domestic flights), everyone will be greeted at the bottom of the escalator in the baggage claim for your terminal (even if you have no checked bags). Please identify yourself to the greeter and they will direct you to the shuttles for your terminal. <br />
<br />
For International Flights into the International terminal, you will collect your luggage and pass through customs. Once through customs, you will walk directly out to the main lobby, where you’ll find a greeter and they will direct your to your shuttle.<br />
<br />
Transfer time from the airport to the hotel is approximately 40-60 minutes.<br />
<br />
'''Departures from San Francisco International Airport (SFO)'''<br />
<br />
Everyone departing on Saturday, June 16th, will receive transportation to SFO. You will be met by transportation staff in the Marriott hotel lobby and assisted onto the shuttles. <br />
<br />
If you have questions about arrivals or departures, please email mozilla@shworldwide.com.<br />
<br />
====Alternate Transportation Options====<br />
For those arriving or departing on dates other than June 11 and 16. <br />
*[http://www.bart.gov/stations/powl BART] goes from SFO to the Powell Street Station for $8.95. Tickets can be purchased at the airport or in advance. <br />
*[http://www.samtrans.com/schedulesandmaps/timetables/292.html SamTrans bus Route 292] goes from SFO to Mission St. & 5th St. only for [http://www.samtrans.com/fares/farechart.html $2.25 (inbound) or $4 (outbound)].<br />
*[https://www.supershuttle.com/locations/sanfranciscosfo/ Super Shuttle]. Shared shuttle service. Book in advance. <br />
<br />
Other options can be found on the [https://www.flysfo.com/to-from/ground-transportation SFO website].<br />
<br />
====Mountain View Office Shuttle====<br />
We will provide a shuttle from the Mountain View office on Monday, June 11th (1:00 pm and 3:00 pm). They will depart from the main entrance. We will return to Mountain View on Saturday, June 16 (10:00 am and 12:30 pm). They will depart the Marriott. <br />
<br />
You can get dropped off or park at the office until 10:00 pm Sunday, June17. There will be normal security patrols however, you should remove valuables from view and secure your vehicle.<br />
<br />
====From the Bay Area but not taking the Mountain View Office Shuttle?====<br />
Our expectation is that you commute to the hotel just as you would to the office in the Bay Area. If you normally take the BART or MUNI, do that. If you normally drive and pay for parking - that's up to you but hotel parking is not a reimbursable expense for the All Hands.<br />
<br />
=='''Accessibility'''==<br />
<br />
'''Marriott Marquis'''<br />
<br />
The guestroom tower has accessible elevators, and accessible rooms (on request). The main entrance and pathway to hotel registration are accessible. All meeting space can be access via elevators. <br />
<br />
====Evenings====<br />
The Monday Night reception is at City View, which is located on the 4th floor of the METREON and is accessible from the ground floor via 2 passenger elevators and escalators. There is ADA access from all building entrances as well.. The Friday Night Party is at [https://www.exploratorium.edu/visit/accessibility Exploratorium], which has access to all levels by elevator. <br />
<br />
=='''Immigration'''==<br />
'''Any''' questions on immigration should be sent to immigration@mozilla.com.<br />
<br />
If you are from a country that requires a B-1/B-2 business visitor visa to enter the US, please plan for it early as government processing times constantly change.<br />
<br />
Please visit the following website to learn more about the visa application process and timing for your country: http://travel.state.gov/content/visas/english/visit/visitor.html#overview. Current estimated processing times at the US Embassies and Consulates abroad can be found at: https://travel.state.gov/content/visas/en/general/wait-times.html/<br />
<br />
Some travelers may be eligible to travel to the United States without first applying for a B-1/B-2 visa, if they are eligible for the Visa Waiver Program (VWP or "ESTA"). You are eligible to apply for admission under the Visa Waiver Program (VWP) if you:<br />
<br />
*Intend to enter the United States for 90 days or less for business, pleasure or transit<br />
*Have a valid passport lawfully issued to you by a Visa Waiver Program country: http://www.esta.us/visa_waiver_countries.html<br />
*Have authorization to travel via the Electronic System for Travel Authorization: https://esta.cbp.dhs.gov/<br />
*Arrive via a Visa Waiver Program signatory carrier (all commercial airlines meet this requirement)<br />
*Have a return or onward ticket<br />
*Travel may not terminate in contiguous territory or adjacent islands unless the traveler is a resident of one of those areas<br />
<br />
=====Employee Travel FAQ=====<br />
This [https://mana.mozilla.org/wiki/display/PR/Travel+FAQ FAQ] addresses questions about how to handle security concerns and electronic devices at the border and how to engage with US Customs & Border Protection (CBP). While it specifically focuses on concerns related to travel to the United States, much of this guidance is applicable to travel elsewhere. Mana access required.<br />
<br />
=====Pocket Letter=====<br />
A pocket letter is recommended to keep on hand for those who are entering the United States. It should accompany you whether or not you are required to have a visa to enter. You may request a copy of that letter when you register online. Please contact immigration@mozilla.com if you require a specific letter for your visa application or if you have any questions regarding your citizenship, visa capabilities or travel related questions.<br />
<br />
=====ESTA Point of Contact=====<br />
In the ESTA application you need to give a "U.S. Point of Contact Information". <br />
<br />
Please list Casey McGill as your US Point of Contact.<br />
Address: 331 East Evelyn Avenue, Mountain View, CA 94041 Phone: 408.505.3028<br />
<br />
=='''San Francisco All Hands Expense Policy'''==<br />
1. All "All Hands" Expenses must be submitted on 1 (and only 1) Expense report (e.g. San Francisco All Hands Expense Report)<br />
<br />
2. It must contain only those expenses relative to the All Hands Event (5-10 days of pre-post activity only)<br />
<br />
3. If your submitted expense report for All Hands is submitted outside these guidelines, it will be rejected and you will be asked to re-submit with only All Hands Expenses<br />
<br />
4. The deadline to submit the San Francisco All Hands Expense Report is '''July 31, 2018'''.<br />
<br />
5. Expenses related to team events, parking, room service, mini-bar charges, and food/drink costs above the vouched amounts, will not be approved. <br />
<br />
'''The intention of our all hands are to centrally organize a structure that includes:'''<br />
*Meals (two/day + snacks)<br />
*Transportation^<br />
*Accommodations<br />
*Some number of social events<br />
<br />
Due to the nature of the San Francisco, employees will be expensing specific meals. The amount that can be expensed will be communicated and expenses submitted can not exceed the approved amounts. Any social events that are not part of our central plan will generally be self-organized and funded by participants. <br />
<br />
^Transportation for those based in the Bay Area is limited to "commuting" as you normally would. Expenses for commuting are not reimbursable. We have provided shuttles from the MV office for those based in the south bay. For those who that doesn't make sense to use, commute using your normal means. We will not reimburse for hotel parking. <br />
<br />
=====Cell phone reimbursement policy=====<br />
Cell phone reimbursement must be approved by your manager prior to submitting the expense. Teams will decide for their staff what is appropriate to expense. <br />
<br />
=====Internet reimbursement policy=====<br />
Internet will be provided in all guestrooms and meeting space in all hotels. If you opt to upgrade/add service, those costs are not reimbursable, unless previously approved by your manager and are for business reasons. <br />
<br />
If you have questions about any of this, please reach out to bmark@mozilla.com<br />
<br />
=='''Families/Guests in San Francisco'''==<br />
<br />
Of course our focus, for the majority of the week, will be on Mozilla. Everyone is expected to be present and engaged each day, during work hours (as your schedule dictates). Please do what you can to make sure your loved ones understand the kind of commitment you’ve made. Family should not join you during your work sessions and meals. Please note that what we are able to do for families varies by each location. <br />
<br />
====Quick summary logistics====<br />
<br />
'''Air Travel''': Family travel can be booked/coordinated through Egencia by calling direct; or on your own. Employees do need to book via Egencia regardless of how families are booked.<br />
<br />
'''Hotel''': They are welcome to stay with you, however, any additional room expenses will be yours to cover. All room rates are based upon single occupancy and costs to add guests vary by hotel. Breakfast is not included in any of the guest room rates. Once hotel reservations are made, we will provide a link or contact add guests.<br />
<br />
Meals: Breakfast will be provided to All Hands registered guests, for lunch families are on their own. They are invited to join our Monday & Friday evening festivities, we just ask that you let us know they'll be there in registration.<br />
<br />
=='''Extracurricular Activities'''==<br />
Costs for these activities are self-funded and can not be expensed. Feel free to add activities and invite others.</div>Dholberthttps://wiki.mozilla.org/index.php?title=All_Hands/SanFrancisco2018&diff=1191639All Hands/SanFrancisco20182018-04-02T19:23:45Z<p>Dholbert: /* New Hires */ Fix typo ("i s" --> "is")</p>
<hr />
<div>'''What is it?''' -- Multiple team meetings, happening in the same city, at the same time + some opportunity to get together as one big group as well as with other teams as it makes sense. Then, on the last day, we have a fun social event for all, Mozilla-style! <br />
<br />
'''''The information on this wiki primarily applies to Full time and contractor staff. If you are a volunteer contributor or intern, please inquire to your coordinator. '''''<br />
<br />
=='''Dates, Location and Weather'''==<br />
Monday, June 11 - Friday, June 15, 2018 (travel days are Monday the 11th & Saturday the 16th) in San Francisco, CA.<br />
<br />
We are staying at [http://www.marriott.com/hotels/travel/sfodt-san-francisco-marriott-marquis/ San Francisco Marriott Marquis].<br />
<br />
''*For those countries where rest time is required on weekends (vs. work travel), Mozilla will cover a return on the next available work day, if you choose. This needs to be pre-approved and pre-arranged.''<br />
<br />
Weather:<br />
* National Weather Service: [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&unit=1&mp=1 forecast in ⁰C], [http://forecast.weather.gov/MapClick.php?smap=1&lat=37.785&lon=-122.410&mp=1 forecast in ⁰F]<br />
* Temperatures ''in downtown San Francisco'' in late June are likely to have nighttime lows around 10-13 ⁰C / 50-56 ⁰F and daytime highs around 16-24 ⁰C / 61-75 ⁰F. But the weather is very occasionally warmer with highs around 27⁰C / 81⁰F.<br />
* Weather in San Francisco in the summer is variable; it can become substantially cooler and foggier in the late afternoon; be prepared for temperatures to fall to 13⁰C / 56⁰F and the winds to pick up in the afternoon. Be prepared by carrying a warmer layer with you.<br />
* Weather in other parts of the Bay Area can be much warmer than in San Francisco, even if you're only traveling 15km away. Look at the weather forecasts for where you're going. It's entirely possible for it to be 19⁰C / 66⁰F in San Francisco and simultaneously be 32⁰C / 90⁰F in Orinda. But if you're right on the ocean, the air temperature is likely to match the water temperature, which is probably around 12⁰C / 54⁰F.<br />
<br />
=='''Registration'''==<br />
This is an invitation-only event.<br />
<br />
Advance registration is required. Attendees, guests and local guests will need to wear their event badge at all times, including to evening events.<br />
<br />
=====New Hires=====<br />
We have a process to identify new hires each Monday and will invite them to book travel. No action necessary from managers other than to let them know about the event. Please work closely with your recruiting manager as they are aware of all deadlines.<br />
<br />
Monday, May 7 is the deadline for hiring. Friday, May 11 is the deadline that all new hires who must travel to the all hands but be registered and have travel booked. Friday, May 18 is the deadline for Bay Area/local new hires who do not need hotel or to travel need to be registered. All new hires must start on or before May 29.<br />
<br />
==== Contributors participation ====<br />
The process for this is [[All Hands/SanFrancisco2018/Contributor_nominations|outlined on this page]]. <br />
<br />
All nominations will be done by employees, with a coordinator from each of the Firefox/Product, Emerging Technologies, Marketing, Open Innovation and People parts of the organization. There will be no open call for nominations from contributors or volunteer Mozillians.<br />
<br />
Please note: The information on this wiki primarily applies to fulltime and contractor staff. If you have questions about how specifics apply to you, please email groter@mozilla.com and bmark@mozilla.com.<br />
<br />
=='''Week at a Glance'''==<br />
=====Monday=====<br />
Monday is primarily your travel day. You'll be able to pick up your registration stuff between 12:00 pm and 9:00 pm, as well as attend the Welcome Reception at the City View at Meteron from 6:00 pm - 9:00 pm. <br />
<br />
=====Tuesday=====<br />
We'll start Tuesday with a Plenary session.<br />
<br />
=====Friday=====<br />
Our closing party with be at the Exploratorium from 7:00 pm- 11:00 pm. We'll provide transportation to/from the hotel & venue + if the weather is nice, you could walk (about 1.7 miles).<br />
<br />
=====Saturday=====<br />
Departure day only. No scheduled activities.<br />
<br />
===San Francisco All Hands Event Calendar===<br />
Link coming soon. Events will be live by early May. <br />
<br />
=====Create an account=====<br />
We don’t recommend using the same email & password as anything like bank accounts, etc. We care about your security!<br />
<br />
If you already have a Sched account from past All Hands, it still works, just log in with that.<br />
<br />
=====Add items to your calendar=====<br />
Just hit the circle on any agenda item to add it to your calendar (you do need to have an account & be logged in to do this)<br />
<br />
You can also share a link to meetings to invite others. Go into the meeting and copy the short link. You can email that out to anyone and they can quickly add it to their calendar. <br />
<br />
=====Subscribe to GCal Calendar Link=====<br />
Click on the mobile phone on the right hand side of the screen. All the calendar options are available here. <br />
You have the option to choose ALL meetings or YOUR meetings. Unless you have 400 items on your calendar, just select your calendar. It will add anything on your calendar to your GCal (also an option for Outlook and iCal). It syncs once per day.<br />
<br />
The "only syncs once per day" only applies to Google Calendar. With almost all other clients (like Apple Calendar, Outlook, or the calendar app on your phone) you can set the refresh interval, and Sched's instructions recommend 1 hour.<br />
<br />
Warning: This is a link that utilizes your username for the .ics file.<br />
<br />
=====From Mobile=====<br />
Visit from any mobile device - bookmark or add to your homescreen for quick access. There is a bonus icon you get by doing this. It caches the last time you opened the page offline and refreshes anytime you are connected.<br />
<br />
=====Cool things=====<br />
'''Filters'''<br />
<br />
We have better (much needed) filtering functionality. You can filter by:<br />
Departments (ex: Firefox)<br />
AND<br />
Functional Teams (ex: Dev Tools or EngOps)<br />
<br />
*Search by Room, Speaker/Leader<br />
<br />
'''Further Filtering'''<br />
*Audience - who should be there (ex: Team only or Invite)<br />
*Homerooms (you can quickly see what is happening in homerooms, by team) - why do you care? If you have a cross team meeting in their room, its a quick way to search<br />
*Views - Lots of view options. It defaults to the simple view, but there are quite a few options.<br />
<br />
=='''Food & Drink'''==<br />
Breakfast, lunch & snacks will be provided and paid for centrally for attendees. Breakfast is provided Tuesday - Saturday and lunch is provided Tuesday - Friday. <br />
<br />
Allergies/preferences: We will ensure that all food/environmental allergies are taken into consideration and will always have gluten-free and vegan options. If you have severe allergies that we need to know about; you can indicate in registration.<br />
<br />
===Monday Night===<br />
We will provide dinner at the Welcome Reception from 6:00 pm - 9:00 pm at City View by Meteron at the Welcome Reception. Since most of Monday is a travel day, you'll be on your own for meals except dinner. <br />
<br />
===Tuesday, Wednesday & Thursday Nights===<br />
Tuesday, Wednesday and Thursday evenings will be of your own to structure as you wish. Given how much you all seemed to like a more flexible dining experience, these three evenings will be of your own to structure as you wish.<br />
<br />
Here is how this will work:<br />
<br />
For each of these three evenings, once your meetings have concluded, you and your team, friends, new acquaintances, are free to explore San Francisco and to find somewhere great to eat that suits you. Each of you can expense a total of $180 over the three days (or $60/night).<br />
<br />
This amount includes:<br />
* Meal cost, including tax & gratuity<br />
* Any beverages<br />
* Transportation to/from the restaurant<br />
* Conversion fees (for credit cards) or cash withdrawal fees<br />
<br />
Anything over the $180 for the three evenings will be your own expense. The fine print:<br />
* If your team is hosting an evening event 1 of the 3 nights and the payment is coordinated (meaning, you don’t have to open your wallet and pay), you can expense up to $120 for the other 2 nights ($60 for each of the 2 nights you did have to open your wallet and pay).<br />
* You will be asked (later) to submit a San Francisco only expense report. You can submit ONE report for San Francisco only and must be submitted no later than August 31, 2017.<br />
* If your manager approves expenses above the $60 per night, that expense will go directly to your travel budget in your cost center.<br />
<br />
Volunteer Contributors & Interns will have a separate process that will be communicated directly.<br />
<br />
===Friday Night===<br />
We will provide dinner at the Closing Party from 7:00 pm - 11:00 pm at The Exploratorium.<br />
<br />
====What you need====<br />
Your SF All Hands name badge and Identification (you may be carded for alcohol).<br />
<br />
=='''Photos'''==<br />
==== Red Lanyards ====<br />
If you see someone with a red lanyard, please don't take photos of them. They have opted out of being in photography. We'll have these available at the registration desk.<br />
<br />
=='''Safety & Security'''==<br />
=====Meeting Security=====<br />
You'll need to have your badge on at all times in the hotel, as will your partners, vendors and family members anytime they are in the spaces.<br />
<br />
=====Device Security=====<br />
If you are traveling to the San Francisco All Hands with a device that has Mozilla data (laptop, personal cell phone/tablet with @mozilla gmail, etc) on it and your device has been retained for further inspection by border agents, or if your device has been inspected outside your immediate presence - and you believe your credentials have been compromised - you must notify the Enterprise Information Security team as soon as possible at infosec@mozilla.com or by calling Mozilla End User Services at +1 650-963-8811. (This number will be staffed 24x7)<br />
<br />
We will work with you to reset your credentials and help you get your device back to a known good state either by getting you a new one (if it’s been taken), or by resetting it back to a verifiable Mozilla-approved installation.<br />
<br />
=====Safety Tips=====<br />
SF Travel team also has some [https://sftravel.ent.box.com/s/p2ve63e1ctn74e0ai2x48mmgr9fdlvul tips about safety] in the city, including safety numbers and local hospitals.<br />
<br />
=='''Hotel'''==<br />
Hotel rooms are reserved for all employees & volunteers to stay all week, including employees based in San Francisco (just as if we were somewhere you don't live). We are hopeful Mozilla-locals will stay with the rest of us in the hotel - it's really part of what makes these events great. You will have the option to opt out of hotel in registration if you are local to the Bay Area and wish to commute. <br />
<br />
A few things to note:<br />
*Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US-resort standard and we aren't able to waive it (we tried). Please reach out to mozilla@shworldwide.com if this creates a hardship for you.<br />
*If you have any changes or questions about your reservation, email mozilla@shworldwide.com. The hotel cannot make changes to All Hands reservations (other than to add your guests - see #4) so we’d like very much if you didn’t try (it complicates things).<br />
*If you have guests joining you for all or part of the week, you will be responsible for adding them to your reservation (and covering any additional fees). To do this, you will need your confirmation number(s) and to know how old your kids are. Details on how to add them will come a few weeks after registration closes. <br />
<br />
====Payment on Check-in====<br />
Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US hotel standard and we aren't able to waive it (we tried).<br />
<br />
We recommend providing a credit card. You can provide a debit card, but they do put a hold of funds on your card and has been problematic for some international travelers in the past. If you are not able to provide a credit or debit card, email mozilla@shworldwide.com and we'll work with the hotel on accommodating. <br />
<br />
====Pre/post====<br />
Links will be provided when you are invited to register in mid-April to book hotel 3 days pre and 3 days post at our negotiated rate. The pre/post reservations will require the use of an LDAP email* so we can link them to your All Hands reservation. Rooms booked by any method except this link will not be linked to your main reservation. <br />
<br />
Rates start $179+tax/fees & for double occupancy.<br />
<br />
====Parking====<br />
Self-Parking is available at several lots nearby. The Marriott Marquis offers valet only - please do not park valet. Mozilla will not reimburse for parking, plan to commute the way you normally would in the city. If you have questions about parking, email bmark@mozilla.com.<br />
<br />
=='''Travel'''==<br />
Booking travel is now open. Please book itineraries by Friday, April 13, 2018. <br />
<br />
====Arriving Early/Departing Late Guidelines====<br />
<br />
Our standard travel guidelines apply (pre-populated in Egencia) when booking with a few additional budget constraints. Anything booked outside of them will require approval. Most people will arrive on Monday, June 11 and leave on Saturday, June 16. Here are some exceptions: <br />
* If you live in a country where work travel is prohibited on weekends, you may travel on Friday, June 8 and Monday, June 18, if you’d prefer (not required). For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
* If you plan to spend some extra personal time in San Francisco (choosing to arrive before Monday, June 11 or depart after Saturday, June 16), you'll need to create an itinerary in Egencia for standard dates/locations within the San Francisco June 2018 Portal and compare to the custom dates you'd like. Please share the difference via email to bmark@mozilla.com before submitting the flight. You can sway up to +$100 over and Mozilla will cover it. Otherwise you'll need to come with an alternate itinerary that fits within the pricing (like a round trip in and out of SFO w/ longer dates, and you personally book & cover the rest). We do not have the ability for employees to reimburse Mozilla for any overage.<br />
* If you are attending the Monday Core Influencer's event (by invite).<br />
* If you would like to arrive early to recover from jetlag, you will need manager approval for any additional costs associated with the extension. There is no unilateral "All Hands" approval based upon timezone to arrive early. For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
<br />
====Booking Family Travel====<br />
Once travel has opened to staff, you may book family, whether they will accompany you on your flight or join us later; and you have two options: Direct or through Egencia. <br />
<br />
If you choose to book family through Egencia, please first book your own flight and then call Egencia with your airline confirmation number (staff do have to go through Egencia). Otherwise, you can book family direct (either through the airline or through another third party) and call the ticketing airline(s) with both confirmation numbers and ask them to link your reservations, so they know you are traveling together. They should also be able to assign seats together. You will avoid the limited hours Egencia offers and avoid paying their ticketing fee. <br />
<br />
If you prefer to book your family through Egencia, you can pay (including the Egencia booking fees) and coordinate with your own travel (recommend to book and then call/email Egencia with your itinerary number to match for family). Note that booking through Egencia does not put you on the same reservation, nor guarantee the reservations will be linked (you would still need to call the airline to link them). <br />
* '''Call:''' +1 (877) 264-1622 or +1 (417) 521-0273; Monday - Friday 9 am - 6 pm EST. If you call outside these hours, you will get an after hours agent, who may not be as helpful. <br />
<br />
====Travel Insurance====<br />
Mozilla provides emergency medical accident and illness cover for all global MoCo employees/interns and their dependents. You can view more information on [https://mana.mozilla.org/wiki/display/PR/Travel+Insurance+-+Business Mana]. This coverage begins at the time the you leave home to start your business trip. It also has a provision for a 14 day extension for leisure travel outside of the business travel. If you have additional questions, please email benefits@mozilla.com. <br />
<br />
Mozilla does not cover travel insurance for elancers, upworkers, contractors, vendors, or volunteers/community members.<br />
<br />
=====''Air Travel Fine Print''=====<br />
Change fees will be covered by Mozilla for '''business reasons only'''. If you need a change and have manager approval, email bmark@mozilla.com prior to requesting the change with Egencia. Once you have approval, call Egencia to make the change at +1 (702) 939-2530 or +1-877-264-1622 (note this will not be possible without prior approval so be sure to get that by way of an email from your manager to Brianna Mark). If you are changing for personal reasons, the change in airfare, change fee and Egencia fee is your responsibility.<br />
<br />
Mozilla will not reimburse for Business/First class upgrades or tickets. <br />
<br />
Any submitted expenses needs to have an itinerary attached to ensure it is employee expenses only and within policy.<br />
<br />
=====Airport Shuttle=====<br />
All Mozillians and guests who have flights arriving anytime on Monday, June 11th in San Francisco International Airport (SFO) and out on Saturday, June 16th, will be transferred to the hotel. If you arrive into another airport (OAK or SJC) or on a different date, ground transportation is on your own.<br />
<br />
'''Arrivals to San Francisco International Airport (SFO)'''<br />
<br />
The airport has four terminals: Terminal 1, 2 & 3, and the International Terminal. For domestic flights In Terminals 1, 2 & 3 and the International Terminal (there are domestic flights), everyone will be greeted at the bottom of the escalator in the baggage claim for your terminal (even if you have no checked bags). Please identify yourself to the greeter and they will direct you to the shuttles for your terminal. <br />
<br />
For International Flights into the International terminal, you will collect your luggage and pass through customs. Once through customs, you will walk directly out to the main lobby, where you’ll find a greeter and they will direct your to your shuttle.<br />
<br />
Transfer time from the airport to the hotel is approximately 40-60 minutes.<br />
<br />
'''Departures from San Francisco International Airport (SFO)'''<br />
<br />
Everyone departing on Saturday, June 16th, will receive transportation to SFO. You will be met by transportation staff in the Marriott hotel lobby and assisted onto the shuttles. <br />
<br />
If you have questions about arrivals or departures, please email mozilla@shworldwide.com.<br />
<br />
====Alternate Transportation Options====<br />
For those arriving or departing on dates other than June 11 and 16. <br />
*[http://www.bart.gov/stations/powl BART] goes from SFO to the Powell Street Station for $8.95. Tickets can be purchased at the airport or in advance. <br />
*[http://www.samtrans.com/schedulesandmaps/timetables/292.html SamTrans bus Route 292] goes from SFO to Mission St. & 5th St. only for [http://www.samtrans.com/fares/farechart.html $2.25 (inbound) or $4 (outbound)].<br />
*[https://www.supershuttle.com/locations/sanfranciscosfo/ Super Shuttle]. Shared shuttle service. Book in advance. <br />
<br />
Other options can be found on the [https://www.flysfo.com/to-from/ground-transportation SFO website].<br />
<br />
====Mountain View Office Shuttle====<br />
We will provide a shuttle from the Mountain View office on Monday, June 11th (1:00 pm and 3:00 pm). They will depart from the main entrance. We will return to Mountain View on Saturday, June 16 (10:00 am and 12:30 pm). They will depart the Marriott. <br />
<br />
You can get dropped off or park at the office until 10:00 pm Sunday, June17. There will be normal security patrols however, you should remove valuables from view and secure your vehicle.<br />
<br />
====From the Bay Area but not taking the Mountain View Office Shuttle?====<br />
Our expectation is that you commute to the hotel just as you would to the office in the Bay Area. If you normally take the BART or MUNI, do that. If you normally drive and pay for parking - that's up to you but hotel parking is not a reimbursable expense for the All Hands.<br />
<br />
=='''Accessibility'''==<br />
<br />
'''Marriott Marquis'''<br />
<br />
The guestroom tower has accessible elevators, and accessible rooms (on request). The main entrance and pathway to hotel registration are accessible. All meeting space can be access via elevators. <br />
<br />
====Evenings====<br />
The Monday Night reception is at City View, which is located on the 4th floor of the METREON and is accessible from the ground floor via 2 passenger elevators and escalators. There is ADA access from all building entrances as well.. The Friday Night Party is at [https://www.exploratorium.edu/visit/accessibility Exploratorium], which has access to all levels by elevator. <br />
<br />
=='''Immigration'''==<br />
'''Any''' questions on immigration should be sent to immigration@mozilla.com.<br />
<br />
If you are from a country that requires a B-1/B-2 business visitor visa to enter the US, please plan for it early as government processing times constantly change.<br />
<br />
Please visit the following website to learn more about the visa application process and timing for your country: http://travel.state.gov/content/visas/english/visit/visitor.html#overview. Current estimated processing times at the US Embassies and Consulates abroad can be found at: https://travel.state.gov/content/visas/en/general/wait-times.html/<br />
<br />
Some travelers may be eligible to travel to the United States without first applying for a B-1/B-2 visa, if they are eligible for the Visa Waiver Program (VWP or "ESTA"). You are eligible to apply for admission under the Visa Waiver Program (VWP) if you:<br />
<br />
*Intend to enter the United States for 90 days or less for business, pleasure or transit<br />
*Have a valid passport lawfully issued to you by a Visa Waiver Program country: http://www.esta.us/visa_waiver_countries.html<br />
*Have authorization to travel via the Electronic System for Travel Authorization: https://esta.cbp.dhs.gov/<br />
*Arrive via a Visa Waiver Program signatory carrier (all commercial airlines meet this requirement)<br />
*Have a return or onward ticket<br />
*Travel may not terminate in contiguous territory or adjacent islands unless the traveler is a resident of one of those areas<br />
<br />
=====Employee Travel FAQ=====<br />
This [https://mana.mozilla.org/wiki/display/PR/Travel+FAQ FAQ] addresses questions about how to handle security concerns and electronic devices at the border and how to engage with US Customs & Border Protection (CBP). While it specifically focuses on concerns related to travel to the United States, much of this guidance is applicable to travel elsewhere. Mana access required.<br />
<br />
=====Pocket Letter=====<br />
A pocket letter is recommended to keep on hand for those who are entering the United States. It should accompany you whether or not you are required to have a visa to enter. You may request a copy of that letter when you register online. Please contact immigration@mozilla.com if you require a specific letter for your visa application or if you have any questions regarding your citizenship, visa capabilities or travel related questions.<br />
<br />
=====ESTA Point of Contact=====<br />
In the ESTA application you need to give a "U.S. Point of Contact Information". <br />
<br />
Please list Casey McGill as your US Point of Contact.<br />
Address: 331 East Evelyn Avenue, Mountain View, CA 94041 Phone: 408.505.3028<br />
<br />
=='''San Francisco All Hands Expense Policy'''==<br />
1. All "All Hands" Expenses must be submitted on 1 (and only 1) Expense report (e.g. San Francisco All Hands Expense Report)<br />
<br />
2. It must contain only those expenses relative to the All Hands Event (5-10 days of pre-post activity only)<br />
<br />
3. If your submitted expense report for All Hands is submitted outside these guidelines, it will be rejected and you will be asked to re-submit with only All Hands Expenses<br />
<br />
4. The deadline to submit the San Francisco All Hands Expense Report is '''July 31, 2018'''.<br />
<br />
5. Expenses related to team events, parking, room service, mini-bar charges, and food/drink costs above the vouched amounts, will not be approved. <br />
<br />
'''The intention of our all hands are to centrally organize a structure that includes:'''<br />
*Meals (two/day + snacks)<br />
*Transportation^<br />
*Accommodations<br />
*Some number of social events<br />
<br />
Due to the nature of the San Francisco, employees will be expensing specific meals. The amount that can be expensed will be communicated and expenses submitted can not exceed the approved amounts. Any social events that are not part of our central plan will generally be self-organized and funded by participants. <br />
<br />
^Transportation for those based in the Bay Area is limited to "commuting" as you normally would. Expenses for commuting are not reimbursable. We have provided shuttles from the MV office for those based in the south bay. For those who that doesn't make sense to use, commute using your normal means. We will not reimburse for hotel parking. <br />
<br />
=====Cell phone reimbursement policy=====<br />
Cell phone reimbursement must be approved by your manager prior to submitting the expense. Teams will decide for their staff what is appropriate to expense. <br />
<br />
=====Internet reimbursement policy=====<br />
Internet will be provided in all guestrooms and meeting space in all hotels. If you opt to upgrade/add service, those costs are not reimbursable, unless previously approved by your manager and are for business reasons. <br />
<br />
If you have questions about any of this, please reach out to bmark@mozilla.com<br />
<br />
=='''Families/Guests in San Francisco'''==<br />
<br />
Of course our focus, for the majority of the week, will be on Mozilla. Everyone is expected to be present and engaged each day, during work hours (as your schedule dictates). Please do what you can to make sure your loved ones understand the kind of commitment you’ve made. Family should not join you during your work sessions and meals. Please note that what are able to do for families varies by each location. <br />
<br />
====Quick summary logistics====<br />
<br />
'''Air Travel''': Family travel can be booked/coordinated through Egencia by calling direct; or on your own. Employees do need to book via Egencia regardless of how families are booked.<br />
<br />
'''Hotel''': They are welcome to stay with you, however, any additional room expenses will be yours to cover. All room rates are based upon single occupancy and costs to add guests vary by hotel. Breakfast is not included in any of the guest room rates. Once hotel reservations are made, we will provide a link or contact add guests.<br />
<br />
Meals: Breakfast will be provided to All Hands registered guests, for lunch families are on their own. They are invited to join our Monday & Friday evening festivities, we just ask that you let us know they'll be there in registration.<br />
<br />
=='''Extracurricular Activities'''==<br />
Costs for these activities are self-funded and can not be expensed. Feel free to add activities and invite others.</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1191633WeeklyUpdates2018-04-02T18:35:08Z<p>Dholbert: /* Meeting Notes */ Add April 2 link</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-04-02|April 2nd, 2018]]<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1191231WeeklyUpdates2018-03-26T18:02:57Z<p>Dholbert: /* Meeting Notes */ Add link for March 26</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-03-26|March 26th, 2018]]<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1190671WeeklyUpdates2018-03-19T18:19:52Z<p>Dholbert: /* Meeting Notes */ add 3/19 meeting link</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-03-19|March 19th, 2018]]<br />
* [[WeeklyUpdates/2018-03-12|March 12th, 2018]]<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1189742WeeklyUpdates2018-03-05T17:28:24Z<p>Dholbert: Add March 5th link</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-03-05|March 5th, 2018]]<br />
* [[WeeklyUpdates/2018-02-26|February 26th, 2018]]<br />
* [[WeeklyUpdates/2018-02-12|February 12th, 2018]]<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates/2018-03-05&diff=1189741WeeklyUpdates/2018-03-052018-03-05T17:26:54Z<p>Dholbert: /* Welcome! */ Remove boilerplate text from list of people being introduced</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* https://air.mozilla.org/channels/project-meeting/ to watch and listen<br />
* join irc.mozilla.org #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
* [[WebExtensions/Triage|WebExtensions APIs triage]]<br />
** 18:30 UTC / 10:30am PST | ACE Vidyo Room<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
* [[Add-ons/Contribute/Triage|Add-ons Good First Bugs triage]]<br />
** 16:30 UTC / 8:30am PST | ACE Vidyo<br />
<br />
<br />
'''Monthly Speaker Series: Computer Security In The Past, Present and Future, with [https://mikko.hypponen.com/ Mikko Hypponen]'''<br />
** Location: Mozilla Mountain View + [https://air.mozilla.org/computer-security-in-the-past-present-and-future-with-mikko-hypponen/ Air Mozilla] + [https://youtu.be/pnr3xvqJ9dI YouTube]<br />
** Topic: Computer security researcher Mikko Hypponen has been hunting hackers since 1991. Join us to hear his insights and stories on computer security history. Mikko will also tell us where we are today, and where we will be going in the future. But the real question is: how are we ever going to secure ten billion new devices that will be going online over the next decade?<br />
<br />
* Host: [https://www.linkedin.com/in/jeff-bryner-9b591b5/ Jeff Bryner]<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Zannah Marsh<br />
| Instructional Designer, MoFo<br />
| The 2018 Global Sprint<br />
| Remotely<br />
| Yes<br />
| [https://docs.google.com/presentation/d/1f8KaO7GXKwj0uhqHNNP0Psnvlb3M7igkPfoSXuyJks4/edit#slide=id.p Slides]<br />
| [http://mzl.la/global-sprint mzl.la/global-sprint]<br />
|-<br />
| Asa Dotzler<br />
| Firefox Roadmap<br />
| Weekly Firefox Update<br />
| MTV<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/Firefox/Roadmap/Updates#2018-03-04 2018-03-04]<br />
|-<br />
| Bradley Cohen<br />
| Consumer Marketing Manager for Mozilla Brand<br />
| Live IRL Podcast recording in San Francisco on Sunday 3/18<br />
| Remotely<br />
| No<br />
| https://www.eventbrite.com/e/irl-podcast-live-show-ctrlaltfacts-tickets-43635406676?aff=es2<br />
| https://www.eventbrite.com/e/irl-podcast-live-show-ctrlaltfacts-tickets-43635406676?aff=es2<br />
|-<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
| [https://mozillians.org/en-US/u/fiji/ Florian Merz]<br />
| [https://mozillians.org/en-US/u/hmitsch/ Henrik Mitsch]<br />
| Remote from Munich, Germany<br />
| [[Berlin Office]]<br />
| Open Innovation Products & Engineering (fka [[ParticipationSystems|Participation Systems]])<br />
|}<br />
<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1188532WeeklyUpdates2018-02-05T18:53:06Z<p>Dholbert: Add Feb 5th link</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates<br />
</createbox><br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[WeeklyUpdates/2018-02-05|February 5th, 2018]]<br />
* [[WeeklyUpdates/2018-01-29|January 29th, 2018]]<br />
* [[WeeklyUpdates/2018-01-22|January 22nd, 2018]]<br />
* January 15th, 2018 (No meeting due to Martin Luther King Jr. Day in the US)<br />
* [[WeeklyUpdates/2018-01-08|Janurary 8th, 2018]]<br />
|}<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-12-04|December 4th, 2017]]<br />
* [[WeeklyUpdates/2017-11-27|November 27th, 2017]]<br />
* [[WeeklyUpdates/2017-11-20|November 20th, 2017]]<br />
* [[WeeklyUpdates/2017-11-13|November 13th, 2017]]<br />
* [[WeeklyUpdates/2017-11-06|November 6th, 2017]]<br />
* [[WeeklyUpdates/2017-10-30|October 30th, 2017]]<br />
* [[WeeklyUpdates/2017-10-23|October 23th, 2017]]<br />
* [[WeeklyUpdates/2017-10-16|October 16th, 2017]]<br />
* [[WeeklyUpdates/2017-10-09|October 9th, 2017]]<br />
* [[WeeklyUpdates/2017-10-02|October 2nd, 2017]]<br />
* [[WeeklyUpdates/2017-09-25|September 25th, 2017]]<br />
* [[WeeklyUpdates/2017-09-18|September 18th, 2017]]<br />
* [[WeeklyUpdates/2017-09-11|September 11th, 2017]]<br />
* [[WeeklyUpdates/2017-08-28|August 28th, 2017]]<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=All_Hands/Austin/electives/submittedsessions&diff=1182722All Hands/Austin/electives/submittedsessions2017-10-23T18:28:31Z<p>Dholbert: fix typo ("maanger")</p>
<hr />
<div>==<p>'''Grow Firefox and Grow From Firefox'''</p>==<br />
=== 1 Activity Stream and In-Product Communications: Practically Perfect in Every Way ===<br />
'' Presenters ''<br />
<br />
Maria Popova and Jean Collings<br />
<br />
'' Description ''<br />
<br />
Like peanut butter and chocolate - these two areas just fit together. Firefox Quantum has a new look and feel including the about:home and about:tab pages - come to learn about the journey of how we collaborated to make sure users have the best experience with snippets and Activity Stream combined together on both about:home and about:tab. <br />
<br />
=== 2 All things Pontoon ===<br />
'' Presenters ''<br />
<br />
Matjaž Horvat, Staś Małolepszy<br />
<br />
'' Description ''<br />
<br />
Would you like to get your project localized?<br />
Are you interested in creating a report from Pontoon data?<br />
Do you have requests for extending the Pontoon API?<br />
Come learn what's new about the Mozilla's translation tool!<br />
https://pontoon.mozilla.org/<br />
<br />
=== 3 Amplitude for Firefox Accounts & Pocket ===<br />
'' Presenters ''<br />
<br />
Josephine Tanumijaya, Ryan Kelly & Tushar Kirtane<br />
<br />
'' Description ''<br />
<br />
Amplitude is a product analytics tool catered for Product Managers that focuses on providing insights on user behavior and/or user events of our products to measure user retention and engagement.<br />
Firefox Accounts (FxA) and Pocket teams have just implemented Amplitude and the teams would like to show how they use the insights in Amplitude to make better and more effective business decisions quickly, and ultimately create better products for our users.<br />
<br />
=== 4 AreWeSmoothYet (Hang Telemetry Dashboard) ===<br />
'' Presenters ''<br />
<br />
Doug Thayer<br />
<br />
'' Description ''<br />
<br />
Go over what https://arewesmoothyet.com is, how to interpret it, and discuss where we might want to take it in the future.<br />
<br />
=== 5 Can we improve privacy without breaking the web? ===<br />
'' Presenters ''<br />
<br />
Luke Crouch<br />
<br />
'' Description ''<br />
<br />
Does Tracking Protection break websites? Do broken websites make users leave Firefox? Are there existing privacy protections we could enable with minimal web breakage?<br />
<br />
In August, the Firefox Privacy team conducted a first-of-its-kind, exploratory research study to start learning how certain privacy protections may - or may not - break certain websites. Over 19,000 users participated to report broken websites under 8 different privacy protections. We learned some surprising and unsurprising things.<br />
<br />
In this session, I'll present a detailed summary of what we built, measured, and learned in our study. We want every Mozillian to learn about the opportunities and possibilities we have in Firefox to improve peoples' online privacy.<br />
<br />
=== 6 Cross-channel and continuous localization ===<br />
'' Presenters ''<br />
<br />
Francesco Lodolo<br />
<br />
'' Description ''<br />
<br />
You will learn about continuous localization, and how we use a single set of strings to localize all versions of Firefox. We'll show how common challenges in engineering get new solutions on the localization side. And last but not least, how we shipped Firefox 57.<br />
<br />
=== 7 Death-Defying Stats 2 - Using Telemetry Data to Answer More Questions ===<br />
'' Presenters ''<br />
<br />
chutten<br />
<br />
'' Description ''<br />
<br />
Come one! Come all! See the amazing Data Engineer perform analysis before your very eyes! You don't want to miss out on your chance to get data answers to your deepest, darkest, data questions.<br />
<br />
Submit your questions ahead of time to Moderator, or surprise the Data Engineer live, during the presentation!<br />
<br />
Gasp as he struggles to remember SQL syntax to answer "What country has the most Firefox Beta users?" (It isn't the US). Scream as he puts a semicolon in an IPython notebook to graph "What do we know about users who opt-out of Telemetry, anyway?". Laugh as he stares off into the middle distance to try and remember what dataset contains the information to solve "How quickly do we get Telemetry pings from users?"<br />
<br />
Come in with questions, and leave not only with answers but with knowledge of how to find these answers yourself in the future!<br />
<br />
=== 8 Does our content work for people?: How Firefox uses content testing to improve our products ===<br />
'' Presenters ''<br />
<br />
Jennifer Davidson; Michelle Heubusch<br />
<br />
'' Description ''<br />
<br />
User research is not just usability testing or field studies -- we can also test content. Do people understand the content? What did they feel when they read it? What personality does the content have? In this session, you’ll walk away with examples of how we have content tested different areas of Firefox including: Importing User Data, Firefox Desktop Onboarding, and Error Messages. You’ll see how the testing changed not only our content, but our design. You’ll learn how to think about content, and how to ask questions about your website content. <br />
<br />
=== 9 Driving Mobile Growth with Marketing ===<br />
'' Presenters ''<br />
<br />
Devyani Gupta<br />
<br />
'' Description ''<br />
<br />
<br />
What will happen during the session: In this session we'll share the tactics and techniques mobile marketing team uses to grow Firefox Apps market share.<br />
What attendees will learn / take away: Attendees will get an overview of the mobile marketer's toolkit including - aligning marketing strategy to customer life-cycle, executing and optimizing user acquisition and retention digital marketing campaigns and running growth experiments. <br />
Who should attend: Mozillians interested in growth, experimentation and being customer-centric. We plan to have an interactive session where we will create growth strategies and experiments together.<br />
What track it supports and why: This session supports Firefox's growth and how we can harness 'Mobile First' users around the globe to grow Firefox's market share.<br />
<br />
<br />
=== 10 Engineering Lightning Talks ===<br />
'' Presenters ''<br />
<br />
Naveed Ihsanullah<br />
<br />
'' Description ''<br />
<br />
Collection of twenty 5 minute lightning talks by Engineering for any who are interested.<br />
<br />
=== 11 Experimentation & Firefox ===<br />
'' Presenters ''<br />
<br />
Jared Kerim<br />
<br />
'' Description ''<br />
<br />
Experimentation means testing new features and ideas quickly with real users to make better quality products faster. A new set of tools and processes make this simpler than ever before, including Shield, Telemetry, Data Tools, and Experimenter. Firefox projects like Activity Stream are already using them, and with very little effort, so can you!<br />
<br />
=== 12 Firefox Growth: Retention and Referral Experimentation A quarter of a million dollars with one click - find out how we did it! ===<br />
'' Presenters ''<br />
<br />
Chris More and Jean Collings<br />
<br />
'' Description ''<br />
<br />
Using snippets this year, we targeted long-time users with a “Thank You” campaign which resulted in over $250,000 in LTV for Firefox. As we look to grow market share and expand the reach of Firefox, we are also experimenting with our Heartbeat ranking to pop a referral mechanism in place. Join us to find out more about these growth experiments<br />
<br />
=== 13 Firefox Rocket (lightweight Android browser for Indonesia and emerging markets) - learnings and what's next ===<br />
'' Presenters ''<br />
<br />
Joe Cheng<br />
<br />
'' Description ''<br />
<br />
By joining this session, you will learn about the stories behind in building the Firefox Rocket mobile browser and all the latest learnings about the Indonesian users and market. You will also learn about what's next for Firefox Rocket. This session is ideal for anyone who wants to learn more about emerging markets and users such as Indonesia.<br />
<br />
=== 14 From Shield to Snippets: The Lifecycle of an Experiment ===<br />
'' Presenters ''<br />
<br />
Jean Collings and Kamyar Ardekani<br />
<br />
'' Description ''<br />
<br />
Those little delightful notes delivered in the product are powerful and our users love them. Learn how we have implemented messaging tests using Shield, gather user sentiment and applied those results. In-Product communications have provided increased engagement from current users, new user growth, reduced churn to competitor products, improved brand perception/loyalty and mean fewer issues for users and support. Come learn more about how you can put these tiny titans to work for you.<br />
<br />
=== 15 Get Rid Of Past Thinking And Position Yourself For A Shift in How You Think About Firefox Product Communications ===<br />
'' Presenters ''<br />
<br />
Michele Warther<br />
<br />
'' Description ''<br />
<br />
Our lean data principles mean we have a small window into the lives, habits and motivations of our Firefox users. Come join us to see how we applied the data we have from GA, Telemetry and Accounts to better understand our users’ interests, what stage of the lifecycle they are in and how to best serve to their unique needs. Our core investment around audience segmentation means we will focus on the ability to see and speak our users as groups of individuals rather than a one-size-fits-all model, which is going to be the most efficient and effective way to meet our long-term Firefox user retention goals. Hear about our year of experiments along with a case study on how we used that approach for both desktop and mobile.<br />
<br />
=== 16 How Contextual Hints Will Lead The Way to Mobile Growth ===<br />
'' Presenters ''<br />
<br />
Nick Chapman, Devanyi Gupta and Jean Collings<br />
<br />
'' Description ''<br />
<br />
We rolled out a new testing tool and approach this year to help our mobile users. Come join us for an overview the iOS/Android campaigns we launched this year,, lessons learned and how we are able to quickly test/optimize for mobile retention and growth.<br />
<br />
=== 17 How Lockbox will win at password management ===<br />
'' Presenters ''<br />
<br />
Sandy Sage<br />
<br />
'' Description ''<br />
<br />
Firefox is uniquely positioned to have a password manager that crosses the chasm<br />
<br />
=== 18 How To Make Friends & Support.mozilla.org ===<br />
'' Presenters ''<br />
<br />
Roland Tanglao<br />
<br />
'' Description ''<br />
<br />
There's no better way to learn about real-world Firefox usage and<br />
Firefox users than a few minutes a day answering support questions. So<br />
this week, we want as many Mozillians as possible to join us and spend<br />
a few minutes answering our users' questions at the All Hands. It's<br />
fast, easy, and the SUMO team will have your back; by the end of this<br />
session you will have answered your first support question and learned<br />
something new about the challenges our users are facing and who knows<br />
you might be hooked on this fun act of helping and learning! That<br />
would be awesome (and our not so hidden agenda)! No technical<br />
knowledge required, just a laptop and a desire to help. (Are you an<br />
old hand at this already? Then come help us help our fellow Mozillians<br />
help Firefox users.)<br />
<br />
=== 19 Introduction to React (even for Python devs!) ===<br />
'' Presenters ''<br />
<br />
Armen<br />
<br />
'' Description ''<br />
<br />
Frontend web development is in a new renaissance. The number of technologies sprouting is staggering and one that has become very prominent is React from Facebook.<br />
<br />
Even if you're a Python developer you will probably enjoy this session and won't find it too difficult to follow along.<br />
<br />
In this session you will get to learn what React is (and few more supporting tools), how to get started writing React and build your first app.<br />
<br />
Attendees can choose to A) install few tools on their machines, B) connect to some cloud editor or C) just watch along.<br />
<br />
We will have time for open forum at the end to ask questions.<br />
<br />
About presenter: I've worked as an automation and release engineer for almost 10 years. Mainly writing in Python. I've recently taken some courses on React and written few projects with it.<br />
<br />
=== 20 Mozilla & Tor: Engineering, Product Ideas, and More ===<br />
'' Presenters ''<br />
<br />
Tom Ritter & Ethan Tseng<br />
<br />
'' Description ''<br />
<br />
You've probably heard that Mozilla collaborates with Tor, the Firefox fork that provides users with near-bulletproof privacy and anonymity from advertisers, their ISP, and even national censorship regimes. But what do we actually _do_? What does Tor gain from this, and what does Mozilla? One day, could Tor be integrated in Firefox? <br />
<br />
=== 21 Mozilla Money Matters ===<br />
'' Presenters ''<br />
<br />
Jim Cook + Mark Crandon (& Team)<br />
<br />
'' Description ''<br />
<br />
Ever wondered how Mozilla makes - and spends - its money? Hear an overview of the Business of Mozilla and Firefox: how we generate revenue, who our revenue and distribution partners are. And how we spend money too. You'll discuss all things money and Mozilla with Jim Cook, CFO and Mark Crandon, Senior Director, Business Development. This presentation is a hit with previous electives attendees and our new hires. Come join the conversation.<br />
<br />
<br />
=== 22 Performance Profiling ===<br />
'' Presenters ''<br />
<br />
Greg Tatum<br />
<br />
'' Description ''<br />
<br />
Become more effective at making software fast with profiling. Get a walkthrough of the features of perf.html and how to effectively use them to diagnose performance problems. The first half will be a directed demonstration of features and effective profiling strategies, but for the second half, bring your own profiles so that the profiler team can help diagnose where your own projects are slow.<br />
<br />
=== 23 Performance testing: debugging, hacking ===<br />
'' Presenters ''<br />
<br />
Joel Maher<br />
<br />
'' Description ''<br />
<br />
Writing or editing performance tests at Mozilla can be confusing and frustrating, come here to learn hands on how Performance tests are run and managed for Firefox, how to create new tests, and how to work with regressions.<br />
<br />
=== 24 Phabricator/Lando training ===<br />
'' Presenters ''<br />
<br />
Mark Côté<br />
<br />
'' Description ''<br />
<br />
The development team will be giving a short presentation on how to use Phabricator and our new automatic-landing system, Lando. The rest of the session will be a workshop to assist anyone who wants to try out the system. Open to all developers in the Firefox org and anyone else looking for a new review tool integrated with Bugzilla.<br />
<br />
=== 25 Photon Design System Tools for Designers and Engineers ===<br />
'' Presenters ''<br />
<br />
Amin Al Hazwani<br />
<br />
'' Description ''<br />
<br />
The Photon Design System group currently provides a website where you find design decisions like visuals, copy, patterns and components that are available to designers and engineers. But how can we make sure that these decisions stay true and valid on different products and platforms?<br />
<br />
This is what design system tools are all about. Participants will discover how existing tools like services, plugins, APIs and extensions bring design and engineering closer together and how these tools facilitate conversations and let people speak and use the same shared language that supports a cohesive product experience.<br />
<br />
Later on, participants are invited to join the conversation and brainstorm on how to build a holistic system that serves design decisions to multiple people, platforms, languages and Firefox products, from desktop to mobile, from web to native.<br />
<br />
This elective supports the track “Grow Firefox and grow from Firefox” because the long-term goal of these tools and the design system group is to allow Firefox teams to design and build new features and even new products that converge instead of diverge, enabling users to be part of a harmonic experience. <br />
<br />
Mobile and desktop engineers, product managers and designers are more than welcome to join the conversation in defining what is the ground work necessary to make this happen. And what could be the tools or services that will effectively deliver a design decision as one unique source-of-truth.<br />
<br />
=== 26 Photon Performance: How We Made Firefox Faster ===<br />
'' Presenters ''<br />
<br />
Florian Quèze<br />
<br />
'' Description ''<br />
<br />
We'll share things we've learned while working on improving browser performance. Techniques, best practices, what to definitely avoid, etc.<br />
<br />
There won't be a deep dive into any specific tool, but examples of how we measured performance and avoided / eliminated regressions during the Quantum / Photon development cycle, and what things we learned along the way.<br />
<br />
We'll also discuss next steps and welcome suggestions.<br />
<br />
=== 27 Retention, churn, and funnels, oh my! Everything we know (and don't) about Firefox retention. ===<br />
'' Presenters ''<br />
<br />
Jennifer Davidson<br />
Chris More<br />
Su Hong<br />
<br />
'' Description ''<br />
<br />
Churn. It’s not just for butter. How many people leave Firefox after downloading (churn)? Why? What do people do in their first sessions of using Firefox? What do people who stick around do in the browser? How is that different from people who leave? You’ll leave this session with an understanding of Firefox retention, the reasons for it, and how we measure it. You’ll also learn what we don’t know, and we’ll brainstorm together about what we might want to know. <br />
<br />
=== 28 Ship happens: A better Firefox build and release pipeline ===<br />
'' Presenters ''<br />
<br />
Kim Moir<br />
<br />
'' Description ''<br />
<br />
The Firefox build and release pipeline is crucial to delivering our products to customers. Over the past year we have transformed our pipeline to a more robust and scalable system using Taskcluster, Docker and in-tree scheduling. We have also implemented release promotion, which takes existing continuous integration (CI) binaries and transforms them for release, significantly reducing wall clock time. <br />
<br />
Attend this session to hear exciting stories about how to replace components of a large running distributed system using the ominously named strangler application approach. I’ll discuss some metrics regarding the end-to-end time for our release process. I’ll also cover how developers can implement changes to transform builds and tests themselves in-tree.<br />
<br />
Who should attend: Folks who want to learn more about how we optimize the build and release pipeline to be more scalable, robust and able to deliver product more quickly to our customers. As well, people who are interested in how to use the new tools to optimize their interactions with our CI system. This talk tracks the Grow Firefox topic because it allows us to collaborate with various teams at Mozilla to deliver our product more effectively. <br />
<br />
<br />
=== 29 Storage UX ===<br />
'' Presenters ''<br />
<br />
Anne van Kesteren<br />
<br />
'' Description ''<br />
<br />
Discussion about improving storage management in Firefox. Simplifying the myriad of options around cookies, HTTP cache, and site storage.<br />
<br />
=== 30 Testing our Assumptions about Products & Users ===<br />
'' Presenters ''<br />
<br />
Tyler Downer<br />
<br />
'' Description ''<br />
<br />
We have many assumptions about our products. Do users know what our logo is? Do users really not know what we mean when we say VPN? What happens when we put these assumptions to the test? The Strategy and Insights team has run multiple studies over 2017 that test assumptions we had about how users use our products. Attend this session to learn what "Mozilla Myths" we tested and what we learned!<br />
<br />
=== 31 The New Localization API in Gecko ===<br />
'' Presenters ''<br />
<br />
Zibi Braniecki<br />
<br />
'' Description ''<br />
<br />
The new localization API is landing in Gecko. I'll demo the new API, explain how to use it and how it'll change the way we do front-end UI.<br />
<br />
=== 32 Untangling Mozilla's Content Ecosystem ===<br />
'' Presenters ''<br />
<br />
Chelsea Novak, Justin Crawford<br />
<br />
'' Description ''<br />
<br />
Do you blog about Mozilla? Tweet? Post on Facebook? Write PR? Answer questions on Quora? Build rep on StackOverflow? Post on Reddit? Respond on HackerNews? Publish on Medium? Screencast on YouTube? Yep, we all do, all at the same time in every direction. Why? Is it working? How do we know? Mozilla’s content ecosystem is colossal and complex and more tangled than your earbud wires after the airport security line, and we need your help to untangle it. We’ll present an ecosystem map; talk about challenges; talk about opportunities; and discuss. <br />
<br />
=== 33 WHATWG ===<br />
'' Presenters ''<br />
<br />
Anne van Kesteren<br />
<br />
'' Description ''<br />
<br />
Update on the WHATWG, followed by Q&A and discussion.<br />
<br />
=== 34 Walk in Indonesian's slippers ===<br />
'' Presenters ''<br />
<br />
Ruby Hsu<br />
<br />
'' Description ''<br />
<br />
In order to understand how Indonesian uses mobile phone in general, we did an ethnography research in Indonesia, talking to real users at their home, street intercept at malls and talk with students at schools. We zoom-in into details of how they use mobile and also zoom-out to know their lifestyle, mindset and culture. We'll share insights on mobile usage, pain-points and latent needs, paints an overall picture of the target market.<br />
<br />
=== 35 Want a better product? Call your friends at Firefox Accounts ===<br />
'' Presenters ''<br />
<br />
Ben Niolet and Michele Warther<br />
<br />
'' Description ''<br />
<br />
<br />
<br />
This year, we did something unusual: we set fire to our playbook and the metrics we have been using forever: opens and clicks and impressions — oh my who cares? We worked with the Firefox Accounts team to connect email to user data. The result: relevant messages that got half a million lost users back to Firefox and a measurable increase in retention. Firefox Accounts didn’t "make" this campaign, but they sure made it better. You don’t need to base your feature or product on Accounts. But incorporating rich user data could make your feature better for users and for you (smoother conversion funnel, built-in metrics, retention and re-engagement capability). Find out why incorporating Accounts into your product or feature can make yours better too.<br />
<br />
=== 36 Web Standards: How and why we standardize ===<br />
'' Presenters ''<br />
<br />
L. David Baron<br />
<br />
'' Description ''<br />
<br />
This is largely a discussion about standards and about how Mozilla is and should be involved in standards. The first 10-15 minutes will give some brief background about how I look at our involvement in standards (both in terms of what we do and why) and about how standardization works at the W3C and elsewhere. Then I'd like to have a group-wide discussion of questions about standardization, with topics to be determined by those who are present. Potential topics for discussion (though I'm very open to others): what standards we should be working on, where to standardize, openness of standards process, patent policy, speed of process, getting the right parties involved, when the right time to standardize is, how to interact with and implement standards in development, speaking as an individual or on behalf of an organization, when to let other parties take the lead on developing standards, how we track our work on and our opinions of standards, and dealing with discussions that have to be private. <br />
<br />
=== 37 Welcome to Firefox - Experimenting Across the Globe ===<br />
'' Presenters ''<br />
<br />
Ben Niolet, Jessica Osorio and Kirby Fowle<br />
<br />
'' Description ''<br />
<br />
Benvenuto, Bienvenue, Willkommen, Bem Vindo - How ever you say it, we want to welcome you to Firefox in the warmest way. This year we ran over 100 experiments to find the right messaging, at the right time to the right audience.<br />
<br />
=== 38 What You Can Learn From 3+ Billion Messages a Month ===<br />
'' Presenters ''<br />
<br />
Jessica Osorio and Jean Collings<br />
<br />
'' Description ''<br />
<br />
When it comes time to launch a new product feature, change, or redesign, we have just finished selling to our own internal “congress” of decision makers, making our case with metrics and user feedback, then finally getting that change to development – but that is just the start…Now it is time to meet the people – the users. So, how do we communicate product changes and maintain positive user relationships? Snippets and email - come find out how you can do more for and with our Firefox users.<br />
<br />
=== 39 What's new in Telemetry ===<br />
'' Presenters ''<br />
<br />
Georg Fritzsche<br />
<br />
'' Description ''<br />
<br />
We will walk through significant recent improvements and changes in Firefox Telemetry: from improvements in how to do data analysis to new data being sent and what its good for to .<br />
If you work with data, you will get a better understanding of what we can do now and what tools to use.<br />
<br />
=== 40 Why use Firefox instead of Chrome? Hear product marketing's story, and help make it better. ===<br />
'' Presenters ''<br />
<br />
Ryan Pollock<br />
<br />
'' Description ''<br />
<br />
Part presentation & part brainstorming - hear product marketing's thoughts on how to pitch Firefox Quantum vs Chrome. Group breakout to provide feedback on story and brainstorm additional features to further differentiate Firefox from Chrome.<br />
<br />
<br />
<br />
==<p> '''Grow Mozilla'''</p> ==<br />
=== 1 Agile Games ===<br />
'' Presenters ''<br />
<br />
Nushin Haghighi<br />
<br />
'' Description ''<br />
<br />
What does it mean to be Agile? Explore the values and principles of Agile through a fun and interactive session. <br />
<br />
=== 2 AirMozilla - live interactive streaming tools for success ===<br />
'' Presenters ''<br />
<br />
Andy Kochendorfer<br />
<br />
'' Description ''<br />
<br />
The new AirMozilla platform offers significant opportunities for audience engagement, social streaming to Facebook, YouTube, etc., OTT platforms, and more. Learn how you can give an effective webinar with just a laptop. <br />
<br />
=== 3 Being "Open by Default" isn't working. Now what? ===<br />
'' Presenters ''<br />
<br />
Patrick Finch, Susy Struble<br />
<br />
'' Description ''<br />
<br />
"Everyone I talk to feels they know they should work with community but they feel too busy working on stuff, getting shuffled themselves." -Rel Eng Manager<br />
<br />
"Everybody I know at Mozilla really cares about Mozilla having a strong community." -Front-End Engineer<br />
<br />
In 2017, we studied the needs and experiences of working with community. The resulting strategy - Open by Design - aims to revitalize how external participation can be a competitive advantage for Mozilla.<br />
<br />
We will review our key findings, discuss how “defaulting to open” has created inertia and perceived lack of value in community, and the shifts needed to restore this advantage for Mozilla.<br />
<br />
=== 4 Conscious Choosers: Best practices, lessons learnt and stories from research ===<br />
'' Presenters ''<br />
<br />
Venetia Tay, in collaboration with Jennifer Davidson & Aaron Benson<br />
<br />
'' Description ''<br />
<br />
A short introduction the Conscious Choosers (who they are, the differences between US & German Conscious Choosers). We will talk candidly about the process, what worked and what didn’t work, lessons learnt and best practices. We will also share stories from research in USA & Germany from different team members.<br />
<br />
=== 5 Could the current EU copyright reform proposal be the end of FOSS in Europe? ===<br />
'' Presenters ''<br />
<br />
Melissa and Raegan<br />
<br />
'' Description ''<br />
<br />
“In the near future, it will become possible to book a commercial space flight — a sub-orbital trip to any destination you like. Think of how complex the laws will have to be when space flight goes from something done only by a few, to anyone, and eventually everyone. <br />
<br />
Now imagine if we decided to govern that industry by taking the Highway Traffic Act and adding the words “in space”. This is a lot like how we’ve updated copyright law for the web. Mostly, we just took the old law, and added the words “digital” and “online”. And that's worked out just about as well as you’d expect it to." (Ryan Merkley, CEO of Creative Commons)<br />
<br />
Raegan MacDonald, our Sr. EU Policy Manager, will discuss the current EU copyright reform, how it could drastically change the FOSS ecosystem in Europe, how it could affect our internet experience, and what you can do about it. Why should you care? Because we believe in "default open"; because we want to grow the open source community, and because the internet continues to be in danger of being ruled by politics. <br />
<br />
The copyright reform proposal also puts pressure on platforms to monitor and filter all content, proposes a 20yr license on news snippets, and limits who can access datasets -- including open data. Let's demand better copyright reform.<br />
<br />
(Disclaimer: we won't be discussing the right of governments or the EU Parliament to propose or enforce internet regulation. We're working within the existing system, not against it at the moment.)<br />
<br />
=== 6 Diversity & Inclusion Open Forum: Strategy Update and Inclusive Culture Survey Results ===<br />
'' Presenters ''<br />
<br />
Larissa Shapiro<br />
<br />
'' Description ''<br />
<br />
Join the Diversity and Inclusion Team for a forum on the D&I Strategy a year into implementation -- what has been achieved, what is next, and how Mozillians can help.<br />
<br />
This spring, we conducted our first survey on Inclusive Culture at Mozilla. What did we learn? How have the findings shaped our approach to Inclusion at Mozilla? We will examine our strategy progress through the lens of the survey results. <br />
<br />
Join the Diversity and Inclusion Team as we share our insights learnings from the survey, and engage in an open discussion on how we can continue to build inclusion at Mozilla.<br />
<br />
=== 7 How Mozilla is Fixing The Comments ===<br />
'' Presenters ''<br />
<br />
Andrew Losowsky, Kim Gardner, Jeff Nelson, Wyatt Johnson, Sam Hankins<br />
<br />
'' Description ''<br />
<br />
Mozilla software is now running comments sections for several major news organizations, including The Washington Post and the Wall Street Journal. Why is Mozilla doing this, and why do we think our open-source software can fix one of the internet's worst problems? Come find out what we do, how we do it, and how to get involved.<br />
<br />
=== 8 Lighting talks: Power tools for open source ===<br />
'' Presenters ''<br />
<br />
Don Marti<br />
<br />
'' Description ''<br />
<br />
Our speakers will cover the latest findings on how small changes in tools and practices can make a big change in an open source project. Bots are your friends. Open source research shows that participation by bot collaborators can help projects get and retain contributors. And is your unconscious bias affecting your code reviews? Learn to break the habit with a technique that we borrowed from symphony orchestras and turned into a WebExtension (really!). Finally, we'll cover some winning habits and configuration settings for some open source collaboration tools you probably thought you knew inside and out.<br />
<br />
=== 9 Living the Community Participation Guidelines ===<br />
'' Presenters ''<br />
<br />
Larissa Shapiro and Jane Finette<br />
<br />
'' Description ''<br />
<br />
The Mozilla Project welcomes contributions from everyone who shares our goals and wants to contribute to our community in a healthy and constructive manner. This year, we rolled out a substantive evolution of our Community Participation Guidelines. These guidelines are intended to help us create a respectful and positive community experience for everyone. This session opens a conversation on what kind of community we want to build together, leaning on the elements of the CPG and offering examples of positive behavior that upholds the guidelines. This is your opportunity to learn more about, as well as weigh in and ask questions on, how our guidelines specifically support Mozilla’s Mission, Manifesto, and Worldview. <br />
<br />
=== 10 Mozilla Brand Update: Tools, Assets and Guidelines ===<br />
'' Presenters ''<br />
<br />
Yuliya Gorlovetsky<br />
<br />
'' Description ''<br />
<br />
Update on the evolution of the brand after the launch. Overview of new assets and tools available. Deep dive on quick how to's. Overview of what is to come in the next year.<br />
<br />
=== 11 Office of the Chair 'Drop In' ===<br />
'' Presenters ''<br />
<br />
Mitchell Baker<br />
<br />
'' Description ''<br />
<br />
Please come join Mitchell and the Office of the Chair team to discuss the latest and most important topics regarding the Internet and Mozilla. Your personal opinions and observations are important. We’d love to connect with you and learn more.<br />
<br />
=== 12 Rapid Prototypes and Engineering Tools ===<br />
'' Presenters ''<br />
<br />
Emma Humphries, Potch, Jason Laster<br />
<br />
'' Description ''<br />
<br />
* We introduce Glitch, Zapier, and Airtable and how you can use them to rapidly prototype and deploy engineering tools at Mozilla<br />
* You'll have confidence to quickly build and deploy new tools<br />
* Anyone building web-based tools at Mozilla should attend<br />
* This supports our goal of building the future, instead of saying "we can't build a new tool" we want you to be able to rapidly build tools from components and services <br />
<br />
=== 13 Setting the conditions for open ===<br />
'' Presenters ''<br />
<br />
Chad Sansing<br />
<br />
'' Description ''<br />
<br />
In this hands-on workshop, participants will learn about the Open Leadership Map, a new matrix of principles and practices describing how to "lead open." Then they'll take part in a collaborative, social game-design experience that will help them reverse-engineer the cultural and strategic supports needed to foster openness in a project or workplace. Finally, they'll debrief on the insights they've gained and help one another identify opportunities to lead toward openness back on their home teams.<br />
<br />
=== 14 Trading bug futures on the blockchain: efficient new model for software incentivication ===<br />
'' Presenters ''<br />
<br />
Don Marti<br />
<br />
'' Description ''<br />
<br />
We hooked up a futures market to a bug tracker, and you won't believe what happened next. Our latest research shows how smart contracts can enable participants in a collaborative project to share information. Come learn about the pros and cons of bug futures as a complement to organizational tools such as crowdfunding and crowd-sourcing.<br />
<br />
<br />
<br />
==<p>'''Grow New Areas'''</p>==<br />
=== 1 Behind the Scenes with our CRM and How You Can Use it ===<br />
'' Presenters ''<br />
<br />
Michele Warther and Andrew Morales<br />
<br />
'' Description ''<br />
<br />
What? We have a CRM system at Mozilla? Yes, we do and over 15 teams are using it to engage with their audiences from Firefox to MDN, MoFo to SUMO and AMO to PR. Come find out how these team are using our CRM tools in innovative ways and what your team might better engage with your audience - current and future ones.<br />
<br />
<br />
=== 2 Escape from the Smart City ===<br />
'' Presenters ''<br />
<br />
Katie Hendrix<br />
<br />
'' Description ''<br />
<br />
We want to help people better understand the kinds of interactions they might be subject to in a smart city full of connected devices so they can talk about the kind of healthy, connected future living spaces they want for themselves and their communities with privacy as society’s default setting. This session will introduce the idea of creating an Internet of Things (IoT) “escape room” that invites participants to invent a story and craft a series of puzzles that pit the room’s “players” against the kinds of sensors and surveillance equipment set up in a fully automated smart city of the future. <br />
<br />
=== 3 Foxy: Voice Assistants in the Browser ===<br />
'' Presenters ''<br />
<br />
Tamara Hills<br />
<br />
'' Description ''<br />
<br />
ET is exploring voice-driven user interfaces, including our keyword-driven voice assistant Foxy. Come to this session to see a demo of Foxy in the browser, sign up to Foxfood Foxy, discuss new possibilities for voice-driven user interfaces, and explore ways to contribute future new voice skills to Foxy. <br />
<br />
=== 4 Machine Learning at Mozilla ===<br />
'' Presenters ''<br />
<br />
Kelly Davis<br />
<br />
'' Description ''<br />
<br />
Hey, human!<br />
<br />
Want to learn about machines? Want to learn about learning? Want to learn about machine learning?<br />
<br />
Step right up to learn about machine leaning, Mozilla’s machine leaning efforts, our machine learning cluster, how open data and machine learning walk hand-in-hand, and what’s in store for Mozilla and machine learning in 2018.<br />
<br />
The price of admission is an open and curious mind.<br />
<br />
=== 5 Mixing up realities ===<br />
'' Presenters ''<br />
<br />
Lars Bergstrom<br />
<br />
'' Description ''<br />
<br />
From immersive virtual reality experiences to real world experiences augmented with 3d web content, Mozilla's Mixed Reality efforts bring the open web to all of these modern devices and platforms. Come to this session to briefly learn about what we're doing and then immediately dive in to hands-on experiences on your laptops, mobile devices, and some loaner headsets to try it out for yourself!<br />
<br />
=== 6 Research Talks ===<br />
'' Presenters ''<br />
<br />
Michael Bebenita<br />
<br />
'' Description ''<br />
<br />
Come hear the latest on Servo, Rust, WebAssembly, Video/Audio Codecs, Machine Learning, Speech Recognition, AR/VR and much more from the Emerging Technologies team.<br />
<br />
=== 7 Revolutionizing scientific computing the Mozilla way ===<br />
'' Presenters ''<br />
<br />
brendan colloran + hamilton ulmer<br />
<br />
'' Description ''<br />
<br />
Despite it's virtual ubiquity, scientific and technical computing remains one area in which web technology has made few inroads. However, recent trends in web tech present a number of opportunities for expansion in this space. In this talk we'll discuss the needs scientific computing users, the strengths and weaknesses of web tech compared to existing solutions, and the opportunites we see to address those needs. We'll introduce the Vademecum Notebook, our first experiment directed towards addressing some of those needs. Finally, we'll explain why we think Mozilla is particularly well-suited to lead the charge, and we'll outline ways for you to get involved.<br />
<br />
=== 8 Solving complex technical problems with the crowd ===<br />
'' Presenters ''<br />
<br />
George Roter<br />
<br />
'' Description ''<br />
<br />
Do you sometimes experience bottlenecks because you might not have all the knowledge, skills, time or budget to solve a complex technical problem?<br />
<br />
Join us for a session to discover how crowdsourcing has helped teams and organizations solve complex problems and stay for a quick workshop to figure out if it can help you!<br />
<br />
=== 9 The most interesting research at Mozilla (that you have never heard of)! ===<br />
'' Presenters ''<br />
<br />
Jessica Margolin<br />
<br />
'' Description ''<br />
<br />
"What is going on, who is doing it, where, and how could this inform my project?" Many wonder! In this lighthearted overview session, we'll survey a variety of analysis and research teams' results, interests, and methods, as well as how specific teams could help you. This is intended for everyone, whether you're an analyst, a researcher, or have a different function altogether. The goal is to foster cohesion, with maybe some interesting conversations, and perhaps a collaboration or two!<br />
<br />
=== 10 Trolling with voice: Learn about how Mozilla is using open data to change ecosystems, including on speech recognition ===<br />
'' Presenters ''<br />
<br />
Michael Henretty<br />
<br />
'' Description ''<br />
<br />
Want to learn about how we are using open data and collaboration to challenge speech recognition monopolies? Want to hear about how we're bringing diverse voices to speech recognition technology? Want to hear about other ideas for how we can use open data to change ecosystems?<br />
<br />
Come spend time with the Open Innovation team and Machine Learning group, in a mixture of lightening talk and interactive workshop, to dig into the Common Voice project.<br />
<br />
=== 11 Web of Things ===<br />
'' Presenters ''<br />
<br />
Ben Francis<br />
<br />
'' Description ''<br />
<br />
Emerging Technology's Experiment in IoT Building a Gateway for Web of Things<br />
<br />
=== 12 What Everyone Ought to Know About Email and How to Make It Happen at Mozilla ===<br />
'' Presenters ''<br />
<br />
Ben Niolet and Lisa Wright<br />
<br />
'' Description ''<br />
<br />
Since its introduction over 40 years ago, email has become one of our main choices of communication despite being declared dead daily. Did an email drive you to this description? Come hear stories from across Mozilla, Firefox, Developer, Participation, Foundation and more teams, about how email programs have helped them better engage with their audiences.<br />
<br />
<br />
<br />
==<p>'''People Development & Support'''</p> ==<br />
=== 1 A Guide to Data.world: a Social Network for Data ===<br />
'' Presenters ''<br />
<br />
Ann Marie Carrothers<br />
<br />
'' Description ''<br />
<br />
The first mile on the road to solving any data problem is, curiously, the longest mile. We spend too much time and energy searching for the ârightâ datasets, wrangling them into usability, and loading them into rigid systems. Amidst the chaos of the first mile, this work too often resides in silos. Work is used for one project, then lost forever, only to be repeated from scratch by the next person to touch the data. In this session, Austin-based B Corp. data.world, will discuss how technical and non-technical teammates can successfully work together on data projects. We will share tips for fostering effective collaboration using data.world based on how the Associated Press uses the platform to democratize access to data with journalists and how the Anti-defamation League uses the platform to engage its community.<br />
<br />
=== 2 Career Development Workshop ===<br />
'' Presenters ''<br />
<br />
Matt Frassica<br />
Huma Shah<br />
Jet Villegas<br />
<br />
'' Description ''<br />
<br />
Mozillians will learn tips on owning their development, creating a development plan, and creating partnerships with their manager and influencers that drive career growth.You'll learn some common success patterns from leaders who have successfully promoted and advanced careers of team members. Join in to learn how to manage your career!<br />
<br />
=== 3 Containers @ Mozilla ===<br />
'' Presenters ''<br />
<br />
Michael van Kleeck<br />
<br />
'' Description ''<br />
<br />
Many groups at Mozilla have been using containers to deploy applications and services. Let’s get together and look at a couple examples (i.e. Docker, Kubernetes) of how teams are using containers, share challenges and learnings and discuss where there may be opportunities in 2018.<br />
<br />
=== 4 Contributing to Firefox as a Non Technical Mozillian ===<br />
'' Presenters ''<br />
<br />
Emma Humphries, Hossain Al Ikram <br />
<br />
'' Description ''<br />
<br />
You'll learn how to triage Firefox bugs. We'll show you what a good bug looks like. Then you'll break off into teams to triage bugs, and share your analysis and get feedback.<br />
<br />
After this session, you'll be able to contribute to Firefox by reviewing new bugs, and be comfortable knowing what to do when you run into questions.<br />
<br />
Non-technical Mozillians wanting to know more about working on Firefox and build up some technical skills should attend.<br />
<br />
This item supports our goal of developing people by providing non-technical Mozillans an introductory path into helping with bugs.<br />
<br />
<br />
=== 5 Crucial Conversations® ===<br />
'' Presenters ''<br />
<br />
Kathleen Kirkish & Marta Leon<br />
<br />
'' Description ''<br />
<br />
Crucial Conversations® teaches skills for communicating when the stakes are high, opinions vary, and emotions run strong. In this session we’ll practice real-world conversations and build skills to engage in open dialogue and gain alignment and agreement on issues that matter most.<br />
<br />
=== 6 Demystifying Reporting Problematic Behaviors/Incidents (anti-harassment + CPG) ===<br />
'' Presenters ''<br />
<br />
Shoshana Isaac and Larissa Shapiro<br />
<br />
'' Description ''<br />
<br />
This session is ideal for anyone who has not previously attended an in-person session about anti-harassment or the Community Participation Guidelines, and anyone who wants a deeper dive into how Mozilla protects its employees. We will also delve into the process Mozilla follows when we receive reports and minimum specific protected categories under the law and our guidelines.<br />
<br />
- what is problematic behavior<br />
- why Mozilla cares<br />
- ways to report<br />
- what happens with you report<br />
- What does confidential reporting mean<br />
- how does Mozilla take steps to prevent retaliation<br />
<br />
Guided discussion lead by Larissa Shapiro and Shoshana Isaac<br />
<br />
<br />
=== 7 Design Systems: Thinking Beyond The Page ===<br />
'' Presenters ''<br />
<br />
Craig Cook<br />
<br />
'' Description ''<br />
<br />
Last January Mozilla unveiled its new logo and brand identity, which has continued to evolve in the months since. We have a lot of websites at Mozilla, literally hundreds, and every one of them instantly became outdated as soon as the new logo was released. A new brand sets off dozens of redesigns across the entire Mozilla ecosystem. That's an awful lot of pixels moving in a lot of different directions. We need a plan.<br />
<br />
Although the branding comes with some overall guidelines, we're still shaping our idea of what a Mozilla website should look like under this new identity. This is a great opportunity to shed a few preconceptions and adopt a fresh, modern approach to designing websites.<br />
<br />
In this session I'll talk about breaking away from old-school design processes, to think beyond designing pages and think about designing complete systems. You'll learn about what design systems are and how they can bring greater clarity and consistency to the way we express ourselves on the web. I'll talk about what we're doing to develop our own cohesive design system for Mozilla websites and how it can make our sites better, for both the makers and the users.<br />
<br />
This session is for designers, developers, content creators, marketers, and anyone else who makes websites. I hope to change the way you think about web design, and maybe the way you think about the world. I'll also have stickers.<br />
<br />
<br />
=== 8 Everything you always wanted to know about security but were too afraid to ask ===<br />
'' Presenters ''<br />
<br />
Gene Wood<br />
<br />
'' Description ''<br />
<br />
Come get an intro on how to live and work more securely from Mozilla's enterprise information security team. Learn about how to prevent the bad guys from getting their digital hands into your online life, how to limit the impact to you and Mozilla in case they do find their way in as well as best practices for both digital and physical security. Bring any questions about security and hear about some exciting past Mozilla security incidents (better than the script to the next James Bond movie).<br />
<br />
This session is intended for all Mozillians and requires no technical background or knowledge of security.<br />
<br />
=== 9 Getting People to Listen in an Age of Constant Distraction ===<br />
'' Presenters ''<br />
<br />
Ann Marie Carrothers<br />
<br />
'' Description ''<br />
<br />
In this time of constant distraction, user design and thoughtful digital communication are becoming critical to the success of any venture. In this session, I will discuss how I've used my background in UX, marketing, and education to increase website digital engagement by 243% and have project proposals selected out of thousands for nationally recognized conferences. Attendees will learn of tools that can instantly turn their spreadsheets into stunning visuals and apps that can tell you how likely someone is to act based on the language in a message. By the end of the session, attendees will have the digital marketing tools and communication skills to make people not just read their survey/report/website, but act on it.<br />
<br />
=== 10 I'm A Manager, AMA. ===<br />
'' Presenters ''<br />
<br />
Mike Hoye<br />
<br />
'' Description ''<br />
<br />
If you're thinking about becoming a manager or just wondering what life looks like on the management track, join us for Q&A session some new and veteran members of the Firefox engineering management team.<br />
<br />
=== 11 Inclusive Hiring @ Mozilla ===<br />
'' Presenters ''<br />
<br />
Denise Gammal (with Mozilla D&I Team)<br />
<br />
'' Description ''<br />
<br />
Inclusive Hiring at Mozilla, formerly known as Debiasing the Hiring Process, is a required workshop for all hiring managers and interviewers. Research shows that unconscious bias impacts people decisions, creating an invisible barrier for diverse job candidates and robbing organizations of some of the best talent available. How can you evaluate candidates more accurately? The workshop is designed to build awareness, generate productive conversations, and teach practical solutions people can act on in their everyday work. Participants will learn about the research on unconscious bias - what it is, how it works and why it reduces our ability to hire the best. The focus quickly moves to a focus on research-based strategies and actions hiring managers and interviewers can take to mitigate bias and hire the best talent available. <br />
<br />
<br />
<br />
=== 12 Leading with Emotional Intelligence: A Leadership Simulation ===<br />
'' Presenters ''<br />
<br />
Sean Rich<br />
<br />
'' Description ''<br />
<br />
Servant leadership is about making sure that the needs of the people with whom you work are your highest priority and are being served. Servant leadership focuses on employee empowerment, encourages innovation and is widely embraced by some of the most successful organizations in the world. Because the focus is on individuals, emotional intelligence is one of the key ingredients in the secret recipe of servant leadership success. <br />
<br />
During this session we will see what emotional intelligence looks like in multiple leadership situations. Our goal is for you to understand the power of servant leadership through a simulation experience and discussion with your peers. You can count on taking away 2-3 skills that you can put into practice right away. Ideal participants for this session are people managers, aspiring managers, and individual leaders who want to increase their influence or level up their leadership game.<br />
<br />
=== 13 Legal, Finance and CASA ===<br />
'' Presenters ''<br />
<br />
Jeff Garver, Nicholas Grammater and Jeannie Roebuck<br />
<br />
'' Description ''<br />
<br />
How to Make Purchases and Obtain Vendor, Subscription, Independent Contractor and Temp Agency Worker Services In Mozilla.<br />
<br />
What is the process to obtain a purchase, retain a service/subscription or contingent worker, and what reviews and approvals might be required? How do I use CASA (the online Contracts and Spend Approval System)? Does everything have to go into CASA? How can I get my requests handled and completed more quickly? When is contract review required?<br />
<br />
Is there a different process for retaining an independent contractor or temp agency worker as compared to retaining a company/vendor?<br />
<br />
The Legal Commercial Team and Finance, with assistance from others, will give a high level overview of the process and checks, and provide examples of how things go smoothly and why they may not.<br />
<br />
An open Q&A session will follow.<br />
<br />
<br />
=== 14 Mozillians Speaking to Technical Audiences BOF ===<br />
'' Presenters ''<br />
<br />
Havi Hoffman<br />
<br />
'' Description ''<br />
<br />
We've learned a lot about public speaking since DevRel launched Mozilla Tech Speakers in 2015. This active program trains and supports volunteer Mozillians who speak to technical audiences about Firefox, Mozilla and the Web in communities around the world. <br />
<br />
The purpose of the BOF session is to bring together Mozilla staff and volunteers who give talks to technical audiences and want to grow their skills, mentor others, and connect with Mozillians who also present to technical audiences. Interested in giving or receiving specific actionable feedback on your slides/scripts? Looking for topic experts to review your material? Are you a remotee interested in 'attending' a talk rehearsal over vidyo or getting feedback from people that know your topic? <br />
<br />
This will be a conversation for learning and sharing about any aspect of presenting to developers and other technical influencer or practitioner communities. Please bring questions and ideas. <br />
<br />
<br />
=== 15 Overcoming Imposter Syndrome ===<br />
'' Presenters ''<br />
<br />
Lizz Noonan<br />
<br />
'' Description ''<br />
<br />
Impostor Syndrome is the false feeling that you aren’t qualified for the work you are doing and will be discovered as a fraud at any moment. It is prevalent among people in open tech or culture projects, many of whom have been socialized to value other’s opinion of their work above their own, and to do things “by the book”. Even though they are often very successful by external standards, they feel their success has been due to some mysterious fluke or luck or great effort; or perhaps they are afraid their achievements are due to “breaks” and not the result of their own ability and competence. They may also feel that, unless they go to gargantuan efforts to do so, success can not be repeated. In this session, you will learn how societal phenomena lead to Impostor Syndrome, and how you can learn to recognize and fight your own Imposter Syndrome and help others to overcome theirs.<br />
<br />
=== 16 Password Manager 101 ===<br />
'' Presenters ''<br />
<br />
Lucie Daeye, Chris DeCairos<br />
<br />
'' Description ''<br />
<br />
In this hands-on workshop, we will assist attendees in the setup and configuration of a Password Manager on their work device. They will learn about creating strong passphrases to protect their accounts, and how to automatically generate and save new credentials in their password vault. This session is intended for Mozillians who wish to implement more secure password practices in their day-to-day activities at Mozilla.<br />
<br />
=== 17 Performance Management @ Mozilla ===<br />
'' Presenters ''<br />
<br />
Tyler Haugen, Shoshana Isaac and Jishnu Menon<br />
<br />
'' Description ''<br />
<br />
Performance Management @ Mozilla provides managers of others with practical tips and guidance for managing performance.<br />
<br />
=== 18 Real Life Solutions for Online PR Problems ===<br />
'' Presenters ''<br />
<br />
Erica Terry Derryck w/ support from Marcomm team members tbd)<br />
<br />
'' Description ''<br />
<br />
Ever find yourself staring at a Reddit thread bashing Firefox and wonder how you can help? What do you say when a reporter finds you on Twitter to ask Mozilla's position on something controversial? Did your latest Medium post spark a conversation that has spun out of control? You're not alone. These are the real life online experiences of Mozillians. Instead of back channeling your concerns in an email, taking up a crusade on Slack, or simply going it alone, come to a session run by the Marketing and Communications Team to learn how you can more effectively handle these and other PR challenges in ways that empower you and help Mozilla.<br />
<br />
=== 19 Storyboarding for Non-Designers: Cultivating Product Ideas Without Drawing Skills ===<br />
'' Presenters ''<br />
<br />
Sharon Bautista and John Gruen<br />
<br />
'' Description ''<br />
<br />
Storyboarding can be a valuable activity in the product development process for understanding how, where, and why people might interact with your product idea. However, storyboarding can be intimidating if your team does not have a dedicated designer with visual storytelling skills. This session is geared toward anyone who has had an interest in storyboarding but thought they didn't have the skills and/or knowledge to get started. Participants in this elective will:<br />
<br />
* Understand the what, why, when, and hows of storyboarding<br />
* Practice key activities related to planning, executing, and evaluating storyboards<br />
* Become familiar with the resources for employing storyboarding in the future<br />
<br />
No artistic skills required!<br />
<br />
=== 20 User Research After Hours: The teachers in our midst ===<br />
'' Presenters ''<br />
<br />
Sharon Bautista, Jennifer Davidson, Heather McGaw<br />
<br />
'' Description ''<br />
<br />
Firefox User Researchers out in the wild! Sharon, Heather, and Jennifer not only perform a ton of user research related to Firefox, they also teach user research to novices outside Mozilla. What do we teach? Who do we teach? Why do we think teaching the discipline in which we work is important? If you’ve ever considered teaching your craft, but weren’t sure how to get started, come to this talk to:<br />
<br />
* Hear how we’ve approached different types of teaching engagements and what we’ve learned<br />
* Identify contexts in your community where there may be teaching opportunities for you<br />
* Understand resources available for developing syllabi, supporting students, evaluating student work, and more<br />
<br />
=== 21 IAM: past, present, and future of how we manage identity at Mozilla ===<br />
'' Presenters ''<br />
<br />
Andrew Krug, Guillaume Destuynder<br />
<br />
'' Description ''<br />
<br />
Now for a controversial intro: Persona, Firefox Accounts, LDAP, passwordless email … you heard it, you saw it, you love it, you hate it? Join the IAM Team for a briefing on the past, present, and future of how we manage identity at Mozilla. In 2017 we have spent lots of time and careful effort building the core of a secure and stable identity system. With this platform we’ll be empowering community and staff Mozillians to collaborate seamlessly. Now we need your help! - Learn how you can leverage the suite of OSS Projects in Mozilla’s identity product portfolio to make your applications both friendly and secure for our growing communities. - Collaborate on our 2018 roadmap. - Help us identify unmet needs and desires. - Get a demo of our advanced access management capabilities. Ready for you to use NOW!</div>Dholberthttps://wiki.mozilla.org/index.php?title=All_Hands/Austin&diff=1181325All Hands/Austin2017-09-27T02:22:58Z<p>Dholbert: typo: s/have been email/have been emailed/</p>
<hr />
<div>'''What is it?''' -- Multiple team meetings, happening in the same city, at the same time + some opportunity to get together as one big group as well as with other teams as it makes sense. Then, on the last day, we have a fun social event for all, Mozilla-style! <br />
<br />
'''''The information on this wiki primarily applies to Full time and contractor staff. If you are a volunteer contributor or intern, please inquire to your coordinator. '''''<br />
<br />
=='''Dates, Location and Weather'''==<br />
Monday, December 11 - Friday, December 15, 2017 (travel days are Monday the 11th & Saturday the 16th*) in Austin, TX.<br />
<br />
We are staying at 2 hotels. Information and pre/post links will be available with registration. <br />
<br />
''*For those countries where rest time is required on weekends (vs. work travel), Mozilla will cover a return on the next available work day, if you choose. This needs to pre-approved and pre-arranged.''<br />
<br />
Weather:<br />
* National Weather Service: [http://forecast.weather.gov/MapClick.php?lat=30.2676&lon=-97.743#.WbLpSkuQwio forecast in ⁰F]<br />
<br />
=='''Registration'''==<br />
This is an invite-only event.<br />
<br />
Advance registration is required. Attendees will need to wear their event badge at all times, including to evening events. We will have security at our events who will be ensuring everyone in our space should be there. <br />
<br />
=====New Hires=====<br />
We have a process to identify new hires each Monday and will invite them to book travel. No action necessary from managers other than to let them know about the event. Please work closely with your recruiting manager as they are aware of all deadlines.<br />
<br />
==== Volunteer contributor participation ====<br />
The process for this is [[All Hands/Austin/Volunteer nominations|outlined on this page]]. <br />
<br />
All nominations will be done by employees, with a coordinator from each of the Firefox, Emerging Technologies, Marketing, Open Innovation and Operations parts of the organization. There will be no open call for nominations from volunteer Mozillians.<br />
<br />
=='''Week at a Glance'''==<br />
===Monday===<br />
Arrivals, registration & welcome reception<br />
<br />
===Tuesday, Wednesday, Thursday===<br />
Plenary, Team meetings, Electives<br />
<br />
===Friday===<br />
Team meetings, Closing Party<br />
<br />
===Saturday===<br />
Departures<br />
<br />
=='''Food & Drink'''==<br />
Breakfast, lunch & snacks will be provided and paid for centrally for attendees. Breakfast is provided Tuesday - Saturday and lunch is provided Tuesday - Friday. <br />
<br />
Allergies/preferences: We will ensure that all food/environmental allergies are taken into consideration and will always have gluten-free and vegan options. If you have severe allergies that we need to know about; you can indicate in registration.<br />
<br />
=='''Safety & Security'''==<br />
=====Device Security=====<br />
If you are traveling to the Austin All Hands with a device that has Mozilla data (laptop, personal cell phone/tablet with @mozilla gmail, etc) on it and your device has been retained for further inspection by border agents, or if your device has been inspected outside your immediate presence - and you believe your credentials have been compromised - you must notify the Enterprise Information Security team as soon as possible at infosec@mozilla.com or by calling Mozilla End User Services at +1 650-963-8811. (This number will be staffed 24x7)<br />
<br />
We will work with you to reset your credentials and help you get your device back to a known good state either by getting you a new one (if it’s been taken), or by resetting it back to a verifiable Mozilla-approved installation.<br />
<br />
=='''Hotel'''==<br />
Hotels are reserved during registration. Mozilla will pay for your hotel room with a check in date of Monday, December 11 and a check-out of Saturday, December 16. Once hotels are assigned, we will share a link to self-book any pre/post stays at your hotel, should that be part of your plan. Please do not book your hotel through Egencia. <br />
<br />
====Payment on Check-in====<br />
Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US hotel standard and we aren't able to waive it (we tried).<br />
<br />
We recommend providing a credit card. You can provide a debit card, but they do put a hold of funds on your card and has been problematic for some international travelers in the past. If you are not able to provide a credit or debit card, email mozilla@shworldwide.com and we'll work with the hotel on accommodating. <br />
<br />
====Pre/post====<br />
Links will be shared after hotels are assigned. <br />
<br />
=='''Travel'''==<br />
Booking instructions have been emailed. Deadline to book travel is October 5.<br />
<br />
====Arriving Early/Departing Late Guidelines====<br />
<br />
Our standard travel guidelines apply (pre-populated in Egencia) when booking with a few additional budget constraints. Anything booked outside of them will require approval. Most people will arrive on Monday, December 11 and leave on Saturday, December 16. Here are some exceptions: <br />
* If you live in a country where work travel is prohibited on weekends, you may travel on Friday, December 8 and Monday, December 18, if you’d prefer (not required). For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
* If you live in a country where work travel is prohibited on Sunday (ex France), you may travel on Saturday, December 9 and Saturday, December 16, if you’d prefer (not required). You will get your Monday, December 11 and 18 off. For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
* If you plan to spend some extra personal time in Austin (choosing to arrive before Monday, December 11 or depart after Saturday, December 16), you'll need to create an itinerary in Egencia for standard dates/locations within the Austin Portal and compare to the custom dates you'd like. Please share the difference via email to bmark@mozilla.com or through the approval comment box when you submit the flight. You can sway up to +$100 over and Mozilla will cover it. Otherwise you'll need to come with an alternate itinerary that fits within the pricing (like a round trip in and out of AUS w/ longer dates, and you personally book & cover the rest). We do not have the ability for employees to reimburse Mozilla for any overage.<br />
* If you are attending the Monday Core Influencer's event (by invite).<br />
* If you would like to arrive early to recover from jetlag, you will need manager approval for any additional costs associated with the extension. There is no unilateral "All Hands" approval based upon timezone to arrive early. For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
<br />
====Booking Family Travel====<br />
Once travel has opened to staff, you may book family, whether they will accompany you on your flight or join us later; and you have two options: Direct or through Egencia. <br />
<br />
If you choose to book family through Egencia, please first book your own flight and then call Egencia with your airline confirmation number (staff do have to go through Egencia). Otherwise, you can book family direct (either through the airline or through another third party) and call the ticketing airline(s) with both confirmation numbers and ask them to link your reservations, so they know you are traveling together. They should also be able to assign seats together. You will avoid the limited hours Egencia offers and avoid paying their ticketing fee. <br />
<br />
If you prefer to book your family through Egencia, you can pay (including the Egencia booking fees) and coordinate with your own travel (recommend to book and then call/email Egencia with your itinerary number to match for family). Note that booking through Egencia does not put you on the same reservation, nor guarantee the reservations will be linked (you would still need to call the airline to link them). <br />
* '''Call:''' +1 (877) 264-1622 or +1 (417) 521-0273; Monday - Friday 9 am - 6 pm EST. If you call outside these hours, you will get an after hours agent, who may not be as helpful. <br />
* '''Email:''' egegrp@expedia.com. The email is monitored Monday - Friday 9 am - 6 pm EST. If you email, you will eventually need to call with a credit card (for fares & fees for family) and personal details of travelers, but the email can get the flights set-up. The agents will need to following information in the initial email to search for flights: Departure City (hometown) & Arrival City (should be AUS), Travel dates & Number of people traveling together + legal names<br />
<br />
====Travel Insurance====<br />
Mozilla provides emergency medical accident and illness cover for all global MoCo & MoFo employees/interns and their dependents. You can view more information on [https://mana.mozilla.org/wiki/display/PR/Travel+Insurance+-+Business Mana]. This coverage begins at the time the you leave home to start your business trip. It also has a provision for a 14 day extension for leisure travel outside of the business travel. If you have additional questions, please email benefits@mozilla.com. <br />
<br />
Mozilla does not cover travel insurance for elancers, upworkers, contractors, vendors, or volunteers/community members.<br />
<br />
=====''Air Travel Fine Print''=====<br />
Change fees will be covered by Mozilla for business reasons only. If you need a change and have manager approval, email bmark@mozilla.com prior to requesting the change with Egencia. Once you have approval, call Egencia to make the change at +1 (702) 939-2530 or +1-877-264-1622 (note this will not be possible without prior approval so be sure to get that by way of an email from your manager to Brianna Mark). If you are changing for personal reasons, the change in airfare, change fee and Egencia fee is your responsibility.<br />
<br />
Mozilla will not reimburse for Business/First class upgrades or tickets. Mozilla Frequent Flyer perks do not apply for All Hands. <br />
<br />
Any submitted expenses needs to have an itinerary attached to ensure it is employee expenses only and within policy.<br />
<br />
=='''Ground Transportation'''==<br />
=====Airport Shuttle=====<br />
All Mozillians and guests who have flights arriving anytime on Monday, December 11th in Austin-Bergstrom International Airport (AUS) and out on Saturday, December 16th, will be transferred to/from the hotels. If you arrive into another airport; or on a different date - ground transportation is on your own.<br />
<br />
'''Arrivals to Austin-Bergstrom International Airport (AUS)'''<br />
<br />
The airport has two terminals, however most people will arrive in Barbara Jordan Terminal. Regional carriers fly into the new South Terminal. <br />
<br />
'''Departures from Austin-Bergstrom International Airport (AUS)'''<br />
<br />
Everyone departing on Saturday, December 16th, will receive transportation to AUS.<br />
<br />
====Alternate Transportation Options====<br />
Options can be found on the [http://www.austintexas.gov/department/ground-transportation AUS website].<br />
<br />
The airport is 7.5 miles or ~15 minutes for the hotels. <br />
<br />
=='''Accessibility'''==<br />
<br />
'''[http://www.marriott.com/hotels/fact-sheet/travel/ausjw-jw-marriott-austin/ JW Marriott Austin]'''<br />
For more information, please contact the hotel. <br />
Accessible guest rooms have a 32 inch wide opening, Hotel has on site accessible self-parking, Meeting spaces are all accessible, Pool entrances are all accessible, Restaurants and lounges are all accessible, Self-operating lifts or sloped entry are available for all pools, Fitness center entrance is accessible, Main entrance is accessible, Pathway to registration desk is accessible, Registration desk is accessible, Route to accessible guest rooms is accessible, Service animals allowed for persons with disabilities<br />
<br />
=='''Immigration'''==<br />
'''Any''' questions on immigration should be sent to immigration@mozilla.com.<br />
<br />
If you are from a country that requires a B-1/B-2 business visitor visa to enter the US, please plan for it early as government processing times constantly change.<br />
<br />
Please visit the following website to learn more about the visa application process and timing for your country: http://travel.state.gov/content/visas/english/visit/visitor.html#overview. Current estimated processing times at the US Embassies and Consulates abroad can be found at: https://travel.state.gov/content/visas/en/general/wait-times.html/<br />
<br />
Some travelers may be eligible to travel to the United States without first applying for a B-1/B-2 visa, if they are eligible for the Visa Waiver Program (VWP or "ESTA"). You are eligible to apply for admission under the Visa Waiver Program (VWP) if you:<br />
<br />
*Intend to enter the United States for 90 days or less for business, pleasure or transit<br />
*Have a valid passport lawfully issued to you by a Visa Waiver Program country: http://www.esta.us/visa_waiver_countries.html<br />
*Have authorization to travel via the Electronic System for Travel Authorization: https://esta.cbp.dhs.gov/<br />
*Arrive via a Visa Waiver Program signatory carrier (all commercial airlines meet this requirement)<br />
*Have a return or onward ticket<br />
*Travel may not terminate in contiguous territory or adjacent islands unless the traveler is a resident of one of those areas<br />
<br />
=====Employee Travel FAQ=====<br />
This [https://mana.mozilla.org/wiki/display/PR/Travel+FAQ FAQ] addresses questions about how to handle security concerns and electronic devices at the border and how to engage with US Customs & Border Protection (CBP). While it specifically focuses on concerns related to travel to the United States, much of this guidance is applicable to travel elsewhere. Mana access required.<br />
<br />
=====Pocket Letter=====<br />
A pocket letter is recommended to keep on hand for those who are entering the United States. It should accompany you whether or not you are required to have a visa to enter. You may request a copy of that letter when you register. Please contact immigration@mozilla.com if you require a specific letter for your visa application or if you have any questions regarding your citizenship, visa capabilities or travel related questions.<br />
<br />
=====ESTA Point of Contact=====<br />
In the ESTA application you need to give a "U.S. Point of Contact Information". <br />
<br />
Please list Heather Durham as your US Point of Contact.<br />
Address: 331 East Evelyn Avenue, Mountain View, CA 94041 Phone: 408.505.3028<br />
<br />
=='''Austin All Hands Expense Policy'''==<br />
1. All "All Hands" Expenses must be submitted on 1 (and only 1) Expense report (e.g. Austin All Hands Expense Report)<br />
<br />
2. It must contain only those expenses relative to the All Hands Event (5-10 days of pre-post activity only)<br />
<br />
3. If your submitted expense report for All Hands is submitted outside these guidelines, it will be rejected and you will be asked to re-submit with only All Hands Expenses<br />
<br />
4. The deadline to submit the Austin All Hands Expense Report is '''December 31, 2017'''.<br />
<br />
5. Expenses related to team events, parking, room service, mini-bar charges, and food/drink costs above the vouched amounts, will not be approved. <br />
<br />
'''The intention of our all hands are to centrally organize a structure that includes:'''<br />
*Meals (two/day + snacks)<br />
*Transportation^<br />
*Accommodations<br />
*Some number of social events<br />
<br />
Due to the nature of the Austin All Hands, employees will be expensing specific meals. The amount that can be expensed will be communicated and expenses submitted can not exceed the approved amounts. Any social events that are not part of our central plan will generally be self-organized and funded by participants. <br />
<br />
=====Cell phone reimbursement policy=====<br />
Cell phone reimbursement must be approved by your manager prior to submitting the expense. Teams will decide for their staff what is appropriate to expense. <br />
<br />
=====Internet reimbursement policy=====<br />
Internet will be provided in all guestrooms and meeting space in all hotels. If you opt to upgrade/add service, those costs are not reimbursable, unless previously approved by your manager and are for business reasons. <br />
<br />
If you have questions about any of this, please reach out to bmark@mozilla.com<br />
<br />
=='''Families/Guests in Austin'''==<br />
<br />
Of course our focus, for the majority of the week, will be on Mozilla. Everyone is expected to be present and engaged each day, during work hours (as your schedule dictates). Please do what you can to make sure your loved ones understand the kind of commitment you’ve made. Family should not join you during your work sessions (other than the more tiny beings) and meals. Please note that what are able to do for families varies by each location. <br />
<br />
====Quick summary logistics====<br />
<br />
'''Air Travel'''<br />
Family travel can be booked/coordinated through Egencia by calling direct; or on your own. Employees do need to book via Egencia regardless of how families are booked.<br />
<br />
'''Hotel'''<br />
They are welcome to stay with you, however, any additional room expenses will be yours to cover. All room rates are based upon single occupancy and costs to add guests vary by hotel. Breakfast is not inlcuded in any of the guest room rates. Hotels will be assigned based upon team and a part of registration. Once hotels are assigned, we will provide a link or contact add guests.<br />
<br />
'''Breakfast'''<br />
Family members who are registered for the event and registered with the hotel are invited to join us for breakfast each morning. Breakfast will be provided on Tuesday, December 12th - Saturday, December 16th.<br />
<br />
'''Lunch & Dinner'''<br />
Family will be on their own for lunch daily and dinner on Tuesday, Wednesday & Thursday. <br />
<br />
'''Friday Night Event'''<br />
Family members who are registered for the event and registered with the hotel, are invited to join us for our Friday night event.<br />
<br />
'''Family Friendly Activities'''<br />
*[https://www.austintexas.org/visit/12-dates-of-christmas/ Trail of Lights] is the biggest event/activity for families and kids in Austin in the month of December, and it’s located in Zilker Park, which is about 1.5 miles from the core of downtown.<br />
*https://www.austintexas.org/visit/top-things-to-do-with-kids-in-austin/<br />
*https://www.austintexas.org/austin-insider-blog/post/9-awesome-things-to-do-in-austins-outdoors-with-the-whole-family/<br />
*https://www.austintexas.org/austin-insider-blog/post/kid-friendly-austin/<br />
*[https://www.sixflags.com/fiestatexas/special-events/holiday-in-the-park Six Flags Fiesta Texas] If you're staying the weekend, you can check out Six Flags in San Antonio. They have a holiday event on both weekends.<br />
*[http://www.pinballzarcade.com/ Pinball] Pinballz is an chain of arcades in Austin with an incredible selection of pinball and video games.<br />
*[https://innerspacecavern.com/ Inner Space Cavern] is located in Georgetown, just north of Austin.<br />
<br />
=='''Extracurricular Activities'''==<br />
Costs for these activities are self-funded and can not be expensed. Feel free to add activities and invite others.</div>Dholberthttps://wiki.mozilla.org/index.php?title=All_Hands/Austin&diff=1180859All Hands/Austin2017-09-20T23:55:01Z<p>Dholbert: /* Austin All Hands Expense Policy */ Fix typo -- "the nature of theAustin" --> "...of the Austin All Hands"</p>
<hr />
<div>'''What is it?''' -- Multiple team meetings, happening in the same city, at the same time + some opportunity to get together as one big group as well as with other teams as it makes sense. Then, on the last day, we have a fun social event for all, Mozilla-style! <br />
<br />
'''''The information on this wiki primarily applies to Full time and contractor staff. If you are a volunteer contributor or intern, please inquire to your coordinator. '''''<br />
<br />
=='''Dates, Location and Weather'''==<br />
Monday, December 11 - Friday, December 15, 2017 (travel days are Monday the 11th & Saturday the 16th*) in Austin, TX.<br />
<br />
We are staying at [https://www.jwmarriottaustin.com/ JW Marriott Austin] & [http://www.fairmont.com/austin/ The Fairmont Austin]. <br />
<br />
''*For those countries where rest time is required on weekends (vs. work travel), Mozilla will cover a return on the next available work day, if you choose. This needs to pre-approved and pre-arranged.''<br />
<br />
Weather:<br />
* National Weather Service: [http://forecast.weather.gov/MapClick.php?lat=30.2676&lon=-97.743#.WbLpSkuQwio forecast in ⁰F]<br />
<br />
=='''Registration'''==<br />
This is an invite-only event.<br />
<br />
Advance registration is required. Attendees will need to wear their event badge at all times, including to evening events. We will have security at our events who will be ensuring everyone in our space should be there. <br />
<br />
=====New Hires=====<br />
We have a process to identify new hires each Monday and will invite them to book travel. No action necessary from managers other than to let them know about the event. Please work closely with your recruiting manager as they are aware of all deadlines.<br />
<br />
==== Volunteer contributor participation ====<br />
The process for this is [[All Hands/Austin/Volunteer nominations|outlined on this page]]. <br />
<br />
All nominations will be done by employees, with a coordinator from each of the Firefox, Emerging Technologies, Marketing, Open Innovation and Operations parts of the organization. There will be no open call for nominations from volunteer Mozillians.<br />
<br />
=='''Week at a Glance'''==<br />
===Monday===<br />
Arrivals, registration & welcome reception<br />
<br />
===Tuesday, Wednesday, Thursday===<br />
Plenary, Team meetings, Electives<br />
<br />
===Friday===<br />
Team meetings, Electives, Closing Party<br />
<br />
===Saturday===<br />
Departures<br />
<br />
=='''Food & Drink'''==<br />
Breakfast, lunch & snacks will be provided and paid for centrally for attendees. Breakfast is provided Tuesday - Saturday and lunch is provided Tuesday - Friday. <br />
<br />
Allergies/preferences: We will ensure that all food/environmental allergies are taken into consideration and will always have gluten-free and vegan options. If you have severe allergies that we need to know about; you can indicate in registration.<br />
<br />
=='''Safety & Security'''==<br />
=====Device Security=====<br />
If you are traveling to the Austin All Hands with a device that has Mozilla data (laptop, personal cell phone/tablet with @mozilla gmail, etc) on it and your device has been retained for further inspection by border agents, or if your device has been inspected outside your immediate presence - and you believe your credentials have been compromised - you must notify the Enterprise Information Security team as soon as possible at infosec@mozilla.com or by calling Mozilla End User Services at +1 650-963-8811. (This number will be staffed 24x7)<br />
<br />
We will work with you to reset your credentials and help you get your device back to a known good state either by getting you a new one (if it’s been taken), or by resetting it back to a verifiable Mozilla-approved installation.<br />
<br />
=='''Hotel'''==<br />
Hotels are reserved during registration. Mozilla will pay for your hotel room with a check in date of Monday, December 11 and a check-out of Saturday, December 16. Once hotels are assigned, we will share a link to self-book any pre/post stays at your hotel, should that be part of your plan. Please do not book your hotel through Egencia. <br />
<br />
====Payment on Check-in====<br />
Everyone will be required to present a form of payment on check-in for incidentals at $50 per day. This is a US hotel standard and we aren't able to waive it (we tried).<br />
<br />
We recommend providing a credit card. You can provide a debit card, but they do put a hold of funds on your card and has been problematic for some international travelers in the past. If you are not able to provide a credit or debit card, email mozilla@shworldwide.com and we'll work with the hotel on accommodating. <br />
<br />
====Pre/post====<br />
Links will be shared after hotels are assigned. <br />
<br />
=='''Travel'''==<br />
Booking travel will be open soon - watch for an email with specific instructions. <br />
<br />
====Arriving Early/Departing Late Guidelines====<br />
<br />
Our standard travel guidelines apply (pre-populated in Egencia) when booking with a few additional budget constraints. Anything booked outside of them will require approval. Most people will arrive on Monday, December 11 and leave on Saturday, December 16. Here are some exceptions: <br />
* If you live in a country where work travel is prohibited on weekends, you may travel on Friday, December 8 and Monday, December 18, if you’d prefer (not required). For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
* If you plan to spend some extra personal time in Austin (choosing to arrive before Monday, December 11 or depart after Saturday, December 16), you'll need to create an itinerary in Egencia for standard dates/locations within the Austin Portal and compare to the custom dates you'd like. Please share the difference via email to bmark@mozilla.com or through the approval comment box when you submit the flight. You can sway up to +$100 over and Mozilla will cover it. Otherwise you'll need to come with an alternate itinerary that fits within the pricing (like a round trip in and out of AUS w/ longer dates, and you personally book & cover the rest). We do not have the ability for employees to reimburse Mozilla for any overage.<br />
* If you are attending the Monday Core Influencer's event (by invite).<br />
* If you would like to arrive early to recover from jetlag, you will need manager approval for any additional costs associated with the extension. There is no unilateral "All Hands" approval based upon timezone to arrive early. For hotel, you will book and pay on your own, and expense the manager approved amount (which is coded to your cost center).<br />
<br />
====Booking Family Travel====<br />
Once travel has opened to staff, you may book family, whether they will accompany you on your flight or join us later; and you have two options: Direct or through Egencia. <br />
<br />
If you choose to book family through Egencia, please first book your own flight and then call Egencia with your airline confirmation number (staff do have to go through Egencia). Otherwise, you can book family direct (either through the airline or through another third party) and call the ticketing airline(s) with both confirmation numbers and ask them to link your reservations, so they know you are traveling together. They should also be able to assign seats together. You will avoid the limited hours Egencia offers and avoid paying their ticketing fee. <br />
<br />
If you prefer to book your family through Egencia, you can pay (including the Egencia booking fees) and coordinate with your own travel (recommend to book and then call/email Egencia with your itinerary number to match for family). Note that booking through Egencia does not put you on the same reservation, nor guarantee the reservations will be linked (you would still need to call the airline to link them). <br />
* '''Call:''' +1 (877) 264-1622 or +1 (417) 521-0273; Monday - Friday 9 am - 6 pm EST. If you call outside these hours, you will get an after hours agent, who may not be as helpful. <br />
* '''Email:''' egegrp@expedia.com. The email is monitored Monday - Friday 9 am - 6 pm EST. If you email, you will eventually need to call with a credit card (for fares & fees for family) and personal details of travelers, but the email can get the flights set-up. The agents will need to following information in the initial email to search for flights: Departure City (hometown) & Arrival City (should be SFO), Travel dates & Number of people traveling together + legal names<br />
<br />
====Travel Insurance====<br />
Mozilla provides emergency medical accident and illness cover for all global MoCo & MoFo employees/interns and their dependents. You can view more information on [https://mana.mozilla.org/wiki/display/PR/Travel+Insurance+-+Business Mana]. This coverage begins at the time the you leave home to start your business trip. It also has a provision for a 14 day extension for leisure travel outside of the business travel. If you have additional questions, please email benefits@mozilla.com. <br />
<br />
Mozilla does not cover travel insurance for elancers, upworkers, contractors, vendors, or volunteers/community members.<br />
<br />
=====''Air Travel Fine Print''=====<br />
Change fees will be covered by Mozilla for business reasons only. If you need a change and have manager approval, email bmark@mozilla.com prior to requesting the change with Egencia. Once you have approval, call Egencia to make the change at +1 (702) 939-2530 or +1-877-264-1622 (note this will not be possible without prior approval so be sure to get that by way of an email from your manager to Brianna Mark). If you are changing for personal reasons, the change in airfare, change fee and Egencia fee is your responsibility.<br />
<br />
Mozilla will not reimburse for Business/First class upgrades or tickets. Mozilla Frequent Flyer perks do not apply for All Hands. <br />
<br />
Any submitted expenses needs to have an itinerary attached to ensure it is employee expenses only and within policy.<br />
<br />
=='''Ground Transportation'''==<br />
=====Airport Shuttle=====<br />
All Mozillians and guests who have flights arriving anytime on Monday, December 11th in Austin-Bergstrom International Airport (AUS) and out on Saturday, December 16th, will be transferred to/from the hotels. If you arrive into another airport; or on a different date - ground transportation is on your own.<br />
<br />
'''Arrivals to Austin-Bergstrom International Airport (AUS)'''<br />
<br />
The airport has two terminals, however most people will arrive in Barbara Jordan Terminal. Regional carriers fly into the new South Terminal. <br />
<br />
'''Departures from Austin-Bergstrom International Airport (AUS)'''<br />
<br />
Everyone departing on Saturday, December 16th, will receive transportation to AUS.<br />
<br />
====Alternate Transportation Options====<br />
Options can be found on the [http://www.austintexas.gov/department/ground-transportation AUS website].<br />
<br />
The airport is 7.5 miles or ~15 minutes for the hotels. <br />
<br />
=='''Accessibility'''==<br />
<br />
'''[http://www.marriott.com/hotels/fact-sheet/travel/ausjw-jw-marriott-austin/ JW Marriott Austin]'''<br />
For more information, please contact the hotel. <br />
Accessible guest rooms have a 32 inch wide opening, Hotel has on site accessible self-parking, Meeting spaces are all accessible, Pool entrances are all accessible, Restaurants and lounges are all accessible, Self-operating lifts or sloped entry are available for all pools, Fitness center entrance is accessible, Main entrance is accessible, Pathway to registration desk is accessible, Registration desk is accessible, Route to accessible guest rooms is accessible, Service animals allowed for persons with disabilities<br />
<br />
'''[http://www.fairmont.com/austin/activities-services/guest-services/#9 Fairmont Austin]'''<br />
<br />
All guestrooms and meeting space are accessible by elevators, and accessible rooms are available on request. The main entrance has easy access to the main elevators. <br />
<br />
=='''Immigration'''==<br />
'''Any''' questions on immigration should be sent to immigration@mozilla.com.<br />
<br />
If you are from a country that requires a B-1/B-2 business visitor visa to enter the US, please plan for it early as government processing times constantly change.<br />
<br />
Please visit the following website to learn more about the visa application process and timing for your country: http://travel.state.gov/content/visas/english/visit/visitor.html#overview. Current estimated processing times at the US Embassies and Consulates abroad can be found at: https://travel.state.gov/content/visas/en/general/wait-times.html/<br />
<br />
Some travelers may be eligible to travel to the United States without first applying for a B-1/B-2 visa, if they are eligible for the Visa Waiver Program (VWP or "ESTA"). You are eligible to apply for admission under the Visa Waiver Program (VWP) if you:<br />
<br />
*Intend to enter the United States for 90 days or less for business, pleasure or transit<br />
*Have a valid passport lawfully issued to you by a Visa Waiver Program country: http://www.esta.us/visa_waiver_countries.html<br />
*Have authorization to travel via the Electronic System for Travel Authorization: https://esta.cbp.dhs.gov/<br />
*Arrive via a Visa Waiver Program signatory carrier (all commercial airlines meet this requirement)<br />
*Have a return or onward ticket<br />
*Travel may not terminate in contiguous territory or adjacent islands unless the traveler is a resident of one of those areas<br />
<br />
=====Employee Travel FAQ=====<br />
This [https://mana.mozilla.org/wiki/display/PR/Travel+FAQ FAQ] addresses questions about how to handle security concerns and electronic devices at the border and how to engage with US Customs & Border Protection (CBP). While it specifically focuses on concerns related to travel to the United States, much of this guidance is applicable to travel elsewhere. Mana access required.<br />
<br />
=====Pocket Letter=====<br />
A pocket letter is recommended to keep on hand for those who are entering the United States. It should accompany you whether or not you are required to have a visa to enter. You may request a copy of that letter when you register. Please contact immigration@mozilla.com if you require a specific letter for your visa application or if you have any questions regarding your citizenship, visa capabilities or travel related questions.<br />
<br />
=====ESTA Point of Contact=====<br />
In the ESTA application you need to give a "U.S. Point of Contact Information". <br />
<br />
Please list Heather Durham as your US Point of Contact.<br />
Address: 331 East Evelyn Avenue, Mountain View, CA 94041 Phone: 408.505.3028<br />
<br />
=='''Austin All Hands Expense Policy'''==<br />
1. All "All Hands" Expenses must be submitted on 1 (and only 1) Expense report (e.g. Austin All Hands Expense Report)<br />
<br />
2. It must contain only those expenses relative to the All Hands Event (5-10 days of pre-post activity only)<br />
<br />
3. If your submitted expense report for All Hands is submitted outside these guidelines, it will be rejected and you will be asked to re-submit with only All Hands Expenses<br />
<br />
4. The deadline to submit the Austin All Hands Expense Report is '''December 31, 2017'''.<br />
<br />
5. Expenses related to team events, parking, room service, mini-bar charges, and food/drink costs above the vouched amounts, will not be approved. <br />
<br />
'''The intention of our all hands are to centrally organize a structure that includes:'''<br />
*Meals (two/day + snacks)<br />
*Transportation^<br />
*Accommodations<br />
*Some number of social events<br />
<br />
Due to the nature of the Austin All Hands, employees will be expensing specific meals. The amount that can be expensed will be communicated and expenses submitted can not exceed the approved amounts. Any social events that are not part of our central plan will generally be self-organized and funded by participants. <br />
<br />
=====Cell phone reimbursement policy=====<br />
Cell phone reimbursement must be approved by your manager prior to submitting the expense. Teams will decide for their staff what is appropriate to expense. <br />
<br />
=====Internet reimbursement policy=====<br />
Internet will be provided in all guestrooms and meeting space in all hotels. If you opt to upgrade/add service, those costs are not reimbursable, unless previously approved by your manager and are for business reasons. <br />
<br />
If you have questions about any of this, please reach out to bmark@mozilla.com<br />
<br />
=='''Families/Guests in Austin'''==<br />
<br />
Of course our focus, for the majority of the week, will be on Mozilla. Everyone is expected to be present and engaged each day, during work hours (as your schedule dictates). Please do what you can to make sure your loved ones understand the kind of commitment you’ve made. Family should not join you during your work sessions (other than the more tiny beings) and meals. Please note that what are able to do for families varies by each location. <br />
<br />
====Quick summary logistics====<br />
<br />
'''Air Travel'''<br />
Family travel can be booked/coordinated through Egencia by calling direct; or on your own. Employees do need to book via Egencia regardless of how families are booked.<br />
<br />
'''Hotel'''<br />
They are welcome to stay with you, however, any additional room expenses will be yours to cover. All room rates are based upon single occupancy and costs to add guests vary by hotel. Breakfast is not inlcuded in any of the guest room rates. Hotels will be assigned based upon team and a part of registration. Once hotels are assigned, we will provide a link or contact add guests.<br />
<br />
'''Breakfast'''<br />
Family members who are registered for the event and registered with the hotel are invited to join us for breakfast each morning. Breakfast will be provided on Tuesday, December 12th - Saturday, December 16th.<br />
<br />
'''Lunch & Dinner'''<br />
Family will be on their own for lunch daily and dinner on Tuesday, Wednesday & Thursday. <br />
<br />
'''Friday Night Event'''<br />
Family members who are registered for the event and registered with the hotel, are invited to join us for our Friday night event.<br />
<br />
'''Family Friendly Activities'''<br />
*[https://www.austintexas.org/visit/12-dates-of-christmas/ Trail of Lights] is the biggest event/activity for families and kids in Austin in the month of December, and it’s located in Zilker Park, which is about 1.5 miles from the core of downtown.<br />
*https://www.austintexas.org/visit/top-things-to-do-with-kids-in-austin/<br />
*https://www.austintexas.org/austin-insider-blog/post/9-awesome-things-to-do-in-austins-outdoors-with-the-whole-family/<br />
*https://www.austintexas.org/austin-insider-blog/post/kid-friendly-austin/<br />
*[https://www.sixflags.com/fiestatexas/special-events/holiday-in-the-park Six Flags Fiesta Texas] If you're staying the weekend, you can check out Six Flags in San Antonio. They have a holiday event on both weekends.<br />
*[http://www.pinballzarcade.com/ Pinball] Pinballz is an chain of arcades in Austin with an incredible selection of pinball and video games.<br />
*[https://innerspacecavern.com/ Inner Space Cavern] is located in Georgetown, just north of Austin.<br />
<br />
=='''Extracurricular Activities'''==<br />
Costs for these activities are self-funded and can not be expensed. Feel free to add activities and invite others.</div>Dholberthttps://wiki.mozilla.org/index.php?title=BMO/UserGuide/Two-Factor_Authentication&diff=1180140BMO/UserGuide/Two-Factor Authentication2017-09-08T21:03:50Z<p>Dholbert: Fix typo ("which not be the same" -- missing a word between "which" and "not" there. I'm pretty sure might/may was intended -- I'm adding "might".)</p>
<hr />
<div>== Bugzilla and Two-Factor Authentication ==<br />
<br />
[https://bugzilla.mozilla.org bugzilla.mozilla.org (BMO)] uses either <br />
[[#Configure_2FA:_TOTP_.28Google_Authenticator.29|TOTP]] or [[#Configure 2FA: Duo|Duo Security]] for Two-Factor authentication.<br />
Duo is only available for all Mozilla employees, while TOTP is available to everyone.<br />
<br />
It is also very import to generate [[#Generate Recovery Codes|Recovery Codes]]<br />
and store them in a safe, offline location.<br />
<br />
== Configure 2FA: TOTP (Google Authenticator) ==<br />
<br />
The following instruction will guide you through configuing 2FA using TOTP.<br />
This guide assumes that you're using Google Authenticator ([https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8 iOS], [https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 Android]) installed on a phone or tablet. There are authenticator programs available for desktop OSes, but doing this is '''not recommended'''. It is also '''not recommended''' to use 1Password for TOTP (one-time passwords) if you also store your bugzilla password there because that defeats the purpose of two-factor authentication.<br />
<br />
Visit the [http://bugzilla.mozilla.org/userprefs.cgi?tab=mfa Two-Factor Authentication] page.<br />
<br />
Click the button labeled "Time-based One-Time Password<br />
(TOTP)"<br>https://i.imgur.com/rQSy4qYl.png<br />
<br />
You will now see a barcode.<br> http://i.imgur.com/AnjoUgOl.png<br />
<br />
Pick up your device and open the authenticator app. There will be a screen with<br />
a button at the bottom labeled "Begin Setup"<br />
<br />
This is what you will see on your device. The screenshot is from an iPhone, but<br />
Android is similar.<br> https://i.imgur.com/oSZYKSvm.png<br />
<br />
After "Begin Setup", the screen will give you two options: "Scan a barcode" or<br />
"Manual Entry". Choose "Scan a barcode"<br>https://i.imgur.com/AgfClWam.png<br />
<br />
Now the device's camera is going to activate. Aim the camera at the barcode<br />
shown in the Bugzilla window is inside the square.<br />
<br />
It will recognize the barcode pretty quickly -- providing the screenshot below<br />
was quite difficult.<br> https://i.imgur.com/gcN8dqRm.png<br />
<br />
The authenticator app on your device should now be displaying a six digit<br />
code<br> https://i.imgur.com/jwntvbXm.png<br />
<br />
On the page showing the barcode, you must enter your current password and the<br />
six digit code displayed on your device.<br />
<br />
The password field is above the barcode, and field for the six digit code is<br />
below. <br> https://i.imgur.com/XZ3VmNll.png<br />
<br />
Now enter that six digit code into the text box under the barcode.<br />
<br />
After the password and code are entered, you must click "Submit Changes"<br />
<br />
If nothing went wrong, it is now time to create recovery codes. If something<br />
went wrong, consult the FAQ at the end of this guide.<br />
<br />
It is time to create [#Recovery Codes]<br />
<br />
== Configure 2FA: Duo ==<br />
<br />
The following instruction will guide you through configuing 2FA using Duo.<br />
Duo is only available to Mozilla employees at this time.<br />
<br />
First, You must be [https://mana.mozilla.org/wiki/display/SD/DuoSecurity enrolled with Duo Security via login.mozilla.com] before you can use Duo 2FA.<br />
<br />
In addition to the app, you will need to know what your Duo username is -- this is your LDAP email<br />
which might not be the same (and does not have to be) as your Bugzilla email ("bugmail").<br />
<br />
Visit the [http://bugzilla.mozilla.org/userprefs.cgi?tab=mfa Two-Factor Authentication] page,<br />
and click the button labeled "Duo Security" <br><br />
https://i.imgur.com/QFtqu8dl.png<br />
<br />
Now you'll see two text fields. The first is for your current password,<br />
and the second one is the username you use for Duo -- your LDAP email.<br><br />
https://i.imgur.com/gnSb5QUl.png<br />
<br />
After filling in those forms and clicking "Submit Changes", you will encounter the typical Duo authentication screen,<br />
similar to the one that you get when logging into other Mozilla services.<br />
<br />
== Generate Recovery Codes ==<br />
<br />
Recovery Codes are special codes<br />
that can be used instead of the codes generated by Google Authenticator on your<br />
device -- but they are longer (10 digits) and each code may only be used once.<br />
<br />
Recovery codes are important if you lose your device, they're an emergency<br />
failsafe. If you do not have recovery codes and you lose your device you might<br />
lose access to your account forever.<br />
<br />
Visit the [http://bugzilla.mozilla.org/userprefs.cgi?tab=mfa Two-Factor Authentication] page.<br />
Assuming that you're using 2FA, you will see a screen that looks something like the following<br><br />
https://i.imgur.com/zAqQnMll.png<br />
<br />
Click on "Generate Printable Recovery Codes".<br />
You'll be taken to a page and required to re-authenticate using both your password and your second factor (either Duo or TOTP). <br />
Continuing through that, you'll get something like this:<br><br />
https://i.imgur.com/UvDyXJhm.png<br />
<br />
If possible, you should print those codes out. If printing is not an option,<br />
write them down. In either case, it is important to keep them in a safe place -- and not on your computer.<br />
There are ten codes, and each code can be used once instead of your authenticator -- and typically you would use them to disable and re-enable 2FA in the event you lose your authenticator device.<br />
<br />
== FAQ ==<br />
<br />
=== I'm using TOTP and my code doesn't work ===<br />
<br />
# Make sure time on your computer is correct. If your computer's clock is off, it will prevent TOTP from working.<br />
# Make sure you're using the right code generator -- if you're using TOTP you will *not* be using the Duo app, for instance.<br />
<br />
=== Help! My phone has been destroyed ===<br />
<br />
This is why you must generate and store [[#Generate Recovery Codes|Recovery Codes]]! If you did, you can use<br />
one of those Recovery codes to disble 2FA and re-enable it on a new device.<br />
<br />
If you lose both your recovery codes and your device:<br />
<br />
* If you're a Mozilla employee, contact Service Desk<br />
* If you're a community member, email bugzilla-admin [at] mozilla.org.<br />
<br />
In either case, you will need to provide sufficient evidence of your identity.</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1179014WeeklyUpdates2017-08-21T18:11:16Z<p>Dholbert: /* Meeting Notes */ Add link for 8/21</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates/<br />
</createbox><br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-08-21|August 21th, 2017]]<br />
* [[WeeklyUpdates/2017-08-14|August 14th, 2017]]<br />
* [[WeeklyUpdates/2017-08-07|August 7th, 2017]]<br />
* [[WeeklyUpdates/2017-07-31|July 31st, 2017]]<br />
* [[WeeklyUpdates/2017-07-24|July 24th, 2017]]<br />
* [[WeeklyUpdates/2017-07-17|July 17th, 2017]]<br />
* [[WeeklyUpdates/2017-07-10|July 10th, 2017]]<br />
* July 3rd, 2017 (No meeting due to All-Hands SF Recovery)<br />
* June 26th, 2017 (No meeting due to All-Hands SF)<br />
* [[WeeklyUpdates/2017-06-19|June 19th, 2017]]<br />
* [[WeeklyUpdates/2017-06-12|June 12th, 2017]]<br />
* [[WeeklyUpdates/2017-06-05|June 5th, 2017]]<br />
* May 29th, 2017 (No meeting due to US holiday for Memorial Day)<br />
* [[WeeklyUpdates/2017-05-22|May 22nd, 2017]]<br />
* [[WeeklyUpdates/2017-05-15|May 15th, 2017]]<br />
* [[WeeklyUpdates/2017-05-08|May 8th, 2017]]<br />
* [[WeeklyUpdates/2017-05-01|May 1st, 2017]]<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates/2017-06-05&diff=1172690WeeklyUpdates/2017-06-052017-06-05T18:01:47Z<p>Dholbert: /* Welcome! */ Replace ! with | in intro table to de-header-ify the rows</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* https://air.mozilla.org/channels/project-meeting/ to watch and listen<br />
* join irc.mozilla.org #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
* Many thanks to May's add-ons contributors: Aayush Sanghavi, Martin Giger, Joseph Frazier, erosman, zombie, Christophe Villeveue, Markus Strange, Cesar Carruitero, Raajit Raj, Swapnesh Kumar Sahoo, Tushar Saini, harikishen, Geoff Lankow, Trishul Goel, Andrew Truong, Sylvain Giroux, Rob Wu, Noitidart, Baris Derin, Raffaele Spinelli, rctgamer3, Wildsky, Tuxman, exculmice, Xuan Wu, Ett Chung, Kailas, Henry Perez, Indomian, Tim Nguyen, Lucian Corlaciu, Dutts, Aris, Teo, Daniele Scasciafratte, Santosh Viswanatham<br />
* Thanks to the 20+ new Tech Speakers of Winter 2017, who are onboarding now. And to all the Tech Speakers who've been out and about the last few weeks. Props to Srushtika, Andre G, Chiko, Andrzej, Kristi, Carsten, Daniele and everyone else.<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
* Interns starting on June 5th<br />
**[[https://docs.google.com/a/mozilla.com/presentation/d/19-1Keg_iNpEBwX-AD-_SDnYeD1E1WL5dqoqiXtjQCgk/edit?usp=sharing 2017 Mozilla Interns]]<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
* [[Add-ons/Community/Meetings|Add-ons Community Meeting]]<br />
** 17:00 UTC/10am PST; ACE Vidyo Room<br />
*** Join the team to discuss what's going on in the add-ons community!<br />
<br />
** [[Add-ons/Contribute/Triage#Next_Meeting| WebExtensions APIs Triage]]<br />
** 17:30 UTC/10:30 am Pacific; ACE Vidyo Room<br />
** Join the add-ons team to discuss design-decision-needed WebExtensions APIs and WebExtensions Experiments!<br />
** To submit a WebExtensions Experiment for discussion, please open an issue on the [https://github.com/web-ext-experiments/about/issues web-ext-experiments github repo].<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
<br />
* '''[https://indiewebcamp.com/events/2017-06-07-homebrew-website-club Homebrew Website Club Meetup]''' (nearly every Wednesday somewhere)<br/><strong>Be a part of the open web!</strong><br />
** '''Portland (<abbr title="Oregon">OR</abbr>)''' (at DreamHost PDX)<br />
** 17:30-18:30 Quiet Writing Hour, finish that blog post, wiki edit, etc.!<br />
** 18:30-19:30 IndieWeb meetup, demos, & hack night <blockquote><p>Create or update your personal web site!<br/>Share what you've gotten working.</p><p>Join a community with like-minded interests. <br/>Bring friends that want a personal site!</p></blockquote> Any questions? See '''[https://indiewebcamp.com/events/2017-06-07-homebrew-website-club the wiki page for details]''' <br/>or join IRC: https://indieweb.org/discuss<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
* Tuesday, 13 June 2017: Mozilla Speaker Series<br />
* [https://wiki.mozilla.org/Speaker_Series#Tuesday.2C_13_June_2017:_Selling_Your_Attention:_The_Web_and_Advertising_with_Tim_Wu Selling Your Attention: The Web and Advertising with Tim Wu]<br />
* Mozilla Toronto + [https://air.mozilla.org/selling-your-attention-the-web-and-advertising/ Air Mozilla]<br />
* Noon PT / 3pm ET / 7pm UT<br />
<br />
<BLOCKQUOTE>You don’t need cash to search Google or to use Facebook, but they’re not free. We pay for these services with our attention and with our data.<br />
<br />
<p>Join us for a conversation with Tim Wu, historian, policy advocate and professor who [https://www.recode.net/2016/6/14/11936484/net-neutrality-essay-tim-wu coined the term “net neutrality,"] as he traces the history of the dynamics between advertisers, media and audiences, and calls on us to reevaluate what we are getting (or giving up) in exchange for our attention, especially in today’s always-on Internet.</p></BLOCKQUOTE><br />
<br />
* Host: [https://mozillians.org/en-US/u/samb/ Sam Burton]<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Maria Popova<br />
| Product Manager<br />
| Activity Stream (New Tab)<br />
| San Francisco<br />
| Yes<br />
| <br />
| https://wiki.mozilla.org/Firefox/Activity_Stream<br />
|-<br />
-<br />
| Janis Greenspan<br />
| Brand Strategy Director<br />
| June Internet Health Marketing<br />
| San Francisco<br />
| no<br />
| https://docs.google.com/a/mozilla.com/presentation/d/1z11pp0ZYJr3ww90u59sG0fIVLJ_jgI9TJpcFrQHAnls/edit?usp=sharing<br />
| <br />
|-<br />
| Caitlin Neiman<br />
| Add-ons Community Manager<br />
| Developing WebExtensions APIs<br />
| Mountain View<br />
| No<br />
| N/A<br />
| [1] Learn more: https://mzl.la/2qYiUJ8 <br /> [2] Approved APIs: https://mzl.la/2qKW0K1<br />
|-<br />
| Michael Van Kleeck<br />
| Enterprise Solutions Architect<br />
| The MinIT! <br />
| MozPDX<br />
| No<br />
| n/a<br />
| 1. Data about ParSys properties now available in Mozilla Data Collective https://www.mozdatacollective.com/home/#/tile/category/112 <br/> 2. Supporting remotees- sourcing community broadband recommendations at https://docs.google.com/spreadsheets/d/1woII4u_Y5E0mZzG4Q8O3dCjutyTCHt29jptHG2lwFtU <br/>3. people-mozilla.org going offline July 1 <br/> 4. Piloting NDA volunteer access to Slack in the #nda-pilot Slack group https://discourse.mozilla-community.org/t/slack-pilot-for-ndad-mozillians/15786<br/><br />
|-<br />
| Sierra Reed<br />
| Social + Influencer Relations Manager<br />
| Defend + Detox with the Fox!<br />
| SF Commons<br />
| No<br />
| https://docs.google.com/presentation/d/1ZhoA1AxBu6Cvbl9_RR4Ha5RcsG1HUPN-d5Xa6glKjFw/edit#slide=id.g22cc2bea6e_0_53<br />
| <br />
|-<br />
| Kenny Long<br />
| Data & Analytics Lead<br />
| Pocket<br />
| Pocket HQ (SF)<br />
| No<br />
| https://docs.google.com/presentation/d/1iiAN4fXYCkfZBEd-R0nqXMi8K7QRc3Ojia6lB0ODoU8/edit#slide=id.g1df6cce3d7_0_0<br />
| <br />
|-<br />
| John Gruen<br />
| Test Pilot<br />
| Up Next for Test Pilot<br />
| My apartment<br />
| Yes<br />
| N/A<br />
| N/A<br />
|-<br />
| Bradley Cohen<br />
| Brand Team<br />
| Updated Mozilla Brand Guidelines<br />
| PDX<br />
| No<br />
| http://designlanguage.mozilla.org/<br />
| http://designlanguage.mozilla.org/<br />
|-<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
<!-- Insert new rows here --><br />
|-<br />
| Janice Tsai<br />
| Jofish<br />
| Mountain View<br />
| Seattle<br />
| Senior HCI Researcher in ET<br />
|-<br />
| Jason Helmers<br />
| Tony Recendez<br />
| Mountain View<br />
| Mountain View<br />
| Video Conference Design Engineer and Product Owner<br />
|-<br />
| Annie Kimmings<br />
| Bob Neal<br />
| Remote<br />
| Las Vegas<br />
| Vendor Management Specialist<br />
|-<br />
| Jonathan Chan<br />
| Daniel Holbert<br />
| Mountain View<br />
| San Francisco<br />
| Platform Rendering Intern<br />
|-<br />
|}<br />
<br />
= Fireside Chat =<br />
A chance to hear from leadership at Mozilla, and have a short Q&A about a specific topic.<br />
<br />
===This Week===<br />
<br />
'''Name''', "Title"<br />
<br />
===Topics===<br />
<br />
You can submit questions in advance on the Moderator page (link), or ask them live on Air Mozilla using a Mozilla Space mic or in #airmozilla on IRC.<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates/2017-06-05&diff=1172688WeeklyUpdates/2017-06-052017-06-05T18:00:44Z<p>Dholbert: /* Welcome! */ Add chunk for introducing Jonathan Chan</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* https://air.mozilla.org/channels/project-meeting/ to watch and listen<br />
* join irc.mozilla.org #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
* Many thanks to May's add-ons contributors: Aayush Sanghavi, Martin Giger, Joseph Frazier, erosman, zombie, Christophe Villeveue, Markus Strange, Cesar Carruitero, Raajit Raj, Swapnesh Kumar Sahoo, Tushar Saini, harikishen, Geoff Lankow, Trishul Goel, Andrew Truong, Sylvain Giroux, Rob Wu, Noitidart, Baris Derin, Raffaele Spinelli, rctgamer3, Wildsky, Tuxman, exculmice, Xuan Wu, Ett Chung, Kailas, Henry Perez, Indomian, Tim Nguyen, Lucian Corlaciu, Dutts, Aris, Teo, Daniele Scasciafratte, Santosh Viswanatham<br />
* Thanks to the 20+ new Tech Speakers of Winter 2017, who are onboarding now. And to all the Tech Speakers who've been out and about the last few weeks. Props to Srushtika, Andre G, Chiko, Andrzej, Kristi, Carsten, Daniele and everyone else.<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
* Interns starting on June 5th<br />
**[[https://docs.google.com/a/mozilla.com/presentation/d/19-1Keg_iNpEBwX-AD-_SDnYeD1E1WL5dqoqiXtjQCgk/edit?usp=sharing 2017 Mozilla Interns]]<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
* [[Add-ons/Community/Meetings|Add-ons Community Meeting]]<br />
** 17:00 UTC/10am PST; ACE Vidyo Room<br />
*** Join the team to discuss what's going on in the add-ons community!<br />
<br />
** [[Add-ons/Contribute/Triage#Next_Meeting| WebExtensions APIs Triage]]<br />
** 17:30 UTC/10:30 am Pacific; ACE Vidyo Room<br />
** Join the add-ons team to discuss design-decision-needed WebExtensions APIs and WebExtensions Experiments!<br />
** To submit a WebExtensions Experiment for discussion, please open an issue on the [https://github.com/web-ext-experiments/about/issues web-ext-experiments github repo].<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
<br />
* '''[https://indiewebcamp.com/events/2017-06-07-homebrew-website-club Homebrew Website Club Meetup]''' (nearly every Wednesday somewhere)<br/><strong>Be a part of the open web!</strong><br />
** '''Portland (<abbr title="Oregon">OR</abbr>)''' (at DreamHost PDX)<br />
** 17:30-18:30 Quiet Writing Hour, finish that blog post, wiki edit, etc.!<br />
** 18:30-19:30 IndieWeb meetup, demos, & hack night <blockquote><p>Create or update your personal web site!<br/>Share what you've gotten working.</p><p>Join a community with like-minded interests. <br/>Bring friends that want a personal site!</p></blockquote> Any questions? See '''[https://indiewebcamp.com/events/2017-06-07-homebrew-website-club the wiki page for details]''' <br/>or join IRC: https://indieweb.org/discuss<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
* Tuesday, 13 June 2017: Mozilla Speaker Series<br />
* [https://wiki.mozilla.org/Speaker_Series#Tuesday.2C_13_June_2017:_Selling_Your_Attention:_The_Web_and_Advertising_with_Tim_Wu Selling Your Attention: The Web and Advertising with Tim Wu]<br />
* Mozilla Toronto + [https://air.mozilla.org/selling-your-attention-the-web-and-advertising/ Air Mozilla]<br />
* Noon PT / 3pm ET / 7pm UT<br />
<br />
<BLOCKQUOTE>You don’t need cash to search Google or to use Facebook, but they’re not free. We pay for these services with our attention and with our data.<br />
<br />
<p>Join us for a conversation with Tim Wu, historian, policy advocate and professor who [https://www.recode.net/2016/6/14/11936484/net-neutrality-essay-tim-wu coined the term “net neutrality,"] as he traces the history of the dynamics between advertisers, media and audiences, and calls on us to reevaluate what we are getting (or giving up) in exchange for our attention, especially in today’s always-on Internet.</p></BLOCKQUOTE><br />
<br />
* Host: [https://mozillians.org/en-US/u/samb/ Sam Burton]<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Maria Popova<br />
| Product Manager<br />
| Activity Stream (New Tab)<br />
| San Francisco<br />
| Yes<br />
| <br />
| https://wiki.mozilla.org/Firefox/Activity_Stream<br />
|-<br />
-<br />
| Janis Greenspan<br />
| Brand Strategy Director<br />
| June Internet Health Marketing<br />
| San Francisco<br />
| no<br />
| https://docs.google.com/a/mozilla.com/presentation/d/1z11pp0ZYJr3ww90u59sG0fIVLJ_jgI9TJpcFrQHAnls/edit?usp=sharing<br />
| <br />
|-<br />
| Caitlin Neiman<br />
| Add-ons Community Manager<br />
| Developing WebExtensions APIs<br />
| Mountain View<br />
| No<br />
| N/A<br />
| [1] Learn more: https://mzl.la/2qYiUJ8 <br /> [2] Approved APIs: https://mzl.la/2qKW0K1<br />
|-<br />
| Michael Van Kleeck<br />
| Enterprise Solutions Architect<br />
| The MinIT! <br />
| MozPDX<br />
| No<br />
| n/a<br />
| 1. Data about ParSys properties now available in Mozilla Data Collective https://www.mozdatacollective.com/home/#/tile/category/112 <br/> 2. Supporting remotees- sourcing community broadband recommendations at https://docs.google.com/spreadsheets/d/1woII4u_Y5E0mZzG4Q8O3dCjutyTCHt29jptHG2lwFtU <br/>3. people-mozilla.org going offline July 1 <br/> 4. Piloting NDA volunteer access to Slack in the #nda-pilot Slack group https://discourse.mozilla-community.org/t/slack-pilot-for-ndad-mozillians/15786<br/><br />
|-<br />
| Sierra Reed<br />
| Social + Influencer Relations Manager<br />
| Defend + Detox with the Fox!<br />
| SF Commons<br />
| No<br />
| https://docs.google.com/presentation/d/1ZhoA1AxBu6Cvbl9_RR4Ha5RcsG1HUPN-d5Xa6glKjFw/edit#slide=id.g22cc2bea6e_0_53<br />
| <br />
|-<br />
| Kenny Long<br />
| Data & Analytics Lead<br />
| Pocket<br />
| Pocket HQ (SF)<br />
| No<br />
| https://docs.google.com/presentation/d/1iiAN4fXYCkfZBEd-R0nqXMi8K7QRc3Ojia6lB0ODoU8/edit#slide=id.g1df6cce3d7_0_0<br />
| <br />
|-<br />
| John Gruen<br />
| Test Pilot<br />
| Up Next for Test Pilot<br />
| My apartment<br />
| Yes<br />
| N/A<br />
| N/A<br />
|-<br />
| Bradley Cohen<br />
| Brand Team<br />
| Updated Mozilla Brand Guidelines<br />
| PDX<br />
| No<br />
| http://designlanguage.mozilla.org/<br />
| http://designlanguage.mozilla.org/<br />
|-<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
<!-- Insert new rows here --><br />
|-<br />
! Janice Tsai<br />
! Jofish<br />
! Mountain View<br />
! Seattle<br />
! Senior HCI Researcher in ET<br />
|-<br />
! Jason Helmers<br />
! Tony Recendez<br />
! Mountain View<br />
! Mountain View<br />
! Video Conference Design Engineer and Product Owner<br />
|-<br />
! Annie Kimmings<br />
! Bob Neal<br />
! Remote<br />
! Las Vegas<br />
! Vendor Management Specialist<br />
|-<br />
! Jonathan Chan<br />
! Daniel Holbert<br />
! Mountain View<br />
! San Francisco<br />
! Platform Rendering Intern<br />
|-<br />
|}<br />
<br />
= Fireside Chat =<br />
A chance to hear from leadership at Mozilla, and have a short Q&A about a specific topic.<br />
<br />
===This Week===<br />
<br />
'''Name''', "Title"<br />
<br />
===Topics===<br />
<br />
You can submit questions in advance on the Moderator page (link), or ask them live on Air Mozilla using a Mozilla Space mic or in #airmozilla on IRC.<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1169148WeeklyUpdates2017-04-24T16:20:30Z<p>Dholbert: /* Meeting Notes */ add link for 4/24</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates/<br />
</createbox><br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-04-24|April 24th, 2017]]<br />
* [[WeeklyUpdates/2017-04-17|April 17th, 2017]]<br />
* [[WeeklyUpdates/2017-04-10|April 10th, 2017]]<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates/2017-04-10&diff=1167921WeeklyUpdates/2017-04-102017-04-10T18:12:11Z<p>Dholbert: /* Welcome! */ Use "|" instead of "|" to remove bold-header-styling from row in new-hires table</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* https://air.mozilla.org/channels/project-meeting/ to watch and listen<br />
* join irc.mozilla.org #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
<br />
* Big thanks to Jason Williams of the BBC for his work on Servo, making it easier for Windows users to participate - and extra props for writing about it on Mozilla Hacks! [https://hacks.mozilla.org/2017/04/hacking-contributing-to-servo-on-windows/ Hacking & Contributing to Servo on Windows]<br />
<br />
* Thanks to all the Tech Speakers who've been out and about delivering talks & workshops: Srushtika, Ram, Riccardo, Daniele, Eugenio, Andre, Bob, Yuli, Felipe, Abhiram, Viswaprasath, Miguel, Kristi, and everyone else!<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
* [https://quality.mozilla.org/event/bug-triage-day-154/ Weekly Bug Triage Day]<br />
<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
* [[Add-ons/Community/Meetings|Add-ons Community Meeting]]<br />
** 10am PT; ACE Vidyo Room<br />
*** Join the team to discuss what's going on in the add-ons community!<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
* [https://quality.mozilla.org/event/bug-verification-day-165/ Weekly Bug Verification Day]<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Aurelia Moser<br />
| Community Lead, Mozilla Science<br />
| Mozilla Science Fellows CFP<br />
| Home<br />
| no<br />
| https://docs.google.com/a/mozilla.com/presentation/d/1y3NXP3sLj-nVGq88BZhWhtRBPYynWltVOF4BuaUpMac/edit?usp=sharing<br />
| https://science.mozilla.org/programs/fellowships<br />
|-<br />
| Don Marti<br />
| Strategist, Open Innovation<br />
| Filterbubbler Project<br />
| Mozilla San Francisco<br />
| no<br />
| http://www.filterbubbler.org/<br />
| https://github.com/filterbubbler<br />
|-<br />
| Asa Dotzler<br />
| Firefox Roadmap<br />
| Firefox Update<br />
| MTV<br />
| no<br />
| no<br />
| https://wiki.mozilla.org/Firefox/Roadmap/Updates#2017-04-10<br />
|-<br />
| Christos Bacharakis<br />
| Project Manager at Mozilla Campus Clubs, Open Innovation<br />
| Open Source in US Universities<br />
| Home<br />
| Yes<br />
| https://docs.google.com/presentation/d/1Sc04T27847_CWYeZ-y1rXDqbEh38HNJbjHRbhEMOpqw/present#slide=id.g1dbf9b7280_0_65<br />
| https://docs.google.com/presentation/d/1Sc04T27847_CWYeZ-y1rXDqbEh38HNJbjHRbhEMOpqw/present#slide=id.g1dbf9b7280_0_65<br />
|-<br />
| Michael Van Kleeck<br />
| Enterprise Solutions Architect<br />
| The MinIT! <br />
| MozPDX<br />
| No<br />
| n/a<br />
| IT/ParSys joint development for IAM, Jive pilot (replacement for Asterix VoIP), Review your phonebook entry!<br />
|-<br />
| John Gruen<br />
| PM, Firefox Test Pilot<br />
| Firefox Screenshots Update<br />
| Texas<br />
| Yes<br />
| Nope<br />
| Weekly updates in this meeting for the next bit.<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
| 25 New Hires<br />
| [https://mozillians.org/en-US/u/diane1/ Diane Tate]<br />
| Mozilla Mountain View<br />
| [https://docs.google.com/spreadsheets/d/1mWI0wo4il7Lw97bRGns-ri7FzCpRcjqwAeL6UqGe2Yg/edit?usp=sharing All Over]<br />
| [https://docs.google.com/presentation/d/1XgQ_9A03EF8Dc_gJSj8MSFeC28sAx9ge_GgcI2ErXoM/edit?usp=sharing all sort of ways]<br />
|-<br />
| Matt Miller<br />
| Joe Hildebrand<br />
| Mozilla Denver<br />
| Denver, CO, USA<br />
| Security Architect, Password Manager<br />
|-<br />
| Devin Reams<br />
| Joe Hildebrand<br />
| Mozilla Denver<br />
| Denver, CO, USA<br />
| Engineering Manager, Password Manager<br />
|-<br />
| Garvan Keeley<br />
| Joe Hildebrand<br />
| Mozilla Toronto<br />
| Toronto<br />
| Senior Software Engineer, Password Manager<br />
|-<br />
|}<br />
<br />
= Fireside Chat =<br />
A chance to hear from leadership at Mozilla, and have a short Q&A about a specific topic.<br />
<br />
===This Week===<br />
<br />
'''Name''', "Title"<br />
<br />
===Topics===<br />
<br />
You can submit questions in advance on the Moderator page (link), or ask them live on Air Mozilla using a Mozilla Space mic or in #airmozilla on IRC.<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1167384WeeklyUpdates2017-04-03T15:07:06Z<p>Dholbert: add 4/3 link</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates/<br />
</createbox><br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-04-03|April 3rd, 2017]]<br />
* [[WeeklyUpdates/2017-03-27|March 27th, 2017]]<br />
* [[WeeklyUpdates/2017-03-20|March 20th, 2017]]<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholberthttps://wiki.mozilla.org/index.php?title=WeeklyUpdates&diff=1165505WeeklyUpdates2017-03-13T17:14:33Z<p>Dholbert: /* Meeting Notes */ add 3/13 link</p>
<hr />
<div>:''These updates concern Mozilla as a whole. For the weekly Firefox meetings, see [[Firefox/DeliveryMeetings]], for Gecko progress, see [[Platform#Meeting_Notes]].''<br />
<br />
==Meeting Details==<br />
*Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
*Mozilla HQ, Ten Forward commons area <br />
{{conf|8600}}<br />
*http://air.mozilla.org/ to watch and listen <br />
*join irc.mozilla.org #airmozilla for backchannel discussion<br />
*'''Presenters only''': Vidyo room "Brownbags". Do ''not'' use this room if you're not planning to speak.<br />
<br />
'''Agenda:''' [[WeeklyUpdates/{{#time: Y-m-d | monday}}|Next Week's Agenda]]<br />
<br />
When you call in, you'll be muted by default, to keep phone noise down. Use "*1" (including the star) to unmute yourself if you want to say something. <br />
<br />
Full notes below. <!-- See https://wiki.mozilla.org/WeeklyUpdates/Template for create new page --><br />
<br />
==Meeting Notes==<br />
[[Template:WeeklyUpdates]] - <nowiki>{{subst:WeeklyUpdates}}</nowiki><br />
<!--*[[WeeklyUpdates/Template]]--><br />
<br />
Create a new weekly agenda from the [[Template:WeeklyUpdates|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=Template:WeeklyUpdates<br />
default={{#time: Y-m-d | monday}}<br />
prefix=WeeklyUpdates/<br />
</createbox><br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* [[WeeklyUpdates/2017-03-13|March 13th, 2017]]<br />
* [[WeeklyUpdates/2017-03-06|March 6th, 2017]]<br />
* [[WeeklyUpdates/2017-02-27|February 27th, 2017]]<br />
* [[WeeklyUpdates/2017-02-13|February 13th, 2017]]<br />
* [[WeeklyUpdates/2017-02-06|February 6th, 2017]]<br />
* [[WeeklyUpdates/2017-01-30|January 30th, 2017]]<br />
* [[WeeklyUpdates/2017-01-23|January 23rd, 2017]]<br />
* January 16th, 2017 (no meeting due to US holiday)<br />
* [[WeeklyUpdates/2017-01-09|January 9th, 2017]]<br />
* January 2nd, 2017 (no meeting due to US New Year's Day holiday)<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2016 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2016-12-26|December 26th, 2016]] (silent updates only. no meeting due to US Holiday observed)<br />
* [[WeeklyUpdates/2016-12-19|December 19th, 2016]]<br />
* [[WeeklyUpdates/2016-12-12|December 12th, 2016]]<br />
* December 5th, 2016 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2016-11-28|November 28th, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21st, 2016]]<br />
* [[WeeklyUpdates/2016-11-21|November 21th, 2016]]<br />
* [[WeeklyUpdates/2016-11-14|November 14th, 2016]]<br />
* [[WeeklyUpdates/2016-11-07|November 7th, 2016]]<br />
* [[WeeklyUpdates/2016-10-31|October 31st, 2016]]<br />
* [[WeeklyUpdates/2016-10-24|October 24th, 2016]]<br />
* [[WeeklyUpdates/2016-10-17|October 17th, 2016]]<br />
* [[WeeklyUpdates/2016-10-10|October 10th, 2016]]<br />
* [[WeeklyUpdates/2016-09-26|September 26th, 2016]]<br />
* [[WeeklyUpdates/2016-09-19|September 19th, 2016]]<br />
* [[WeeklyUpdates/2016-09-12|September 12th, 2016]]<br />
* There was no meeting on September 5 because of the US Labor Day holiday.<br />
* [[WeeklyUpdates/2016-08-29|August 29nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-22|August 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-08-15|August 15th, 2016]]<br />
* [[WeeklyUpdates/2016-08-08|August 8th, 2016]]<br />
* [[WeeklyUpdates/2016-08-01|August 1st, 2016]]<br />
* [[WeeklyUpdates/2016-07-25|July 25th, 2016]]<br />
* [[WeeklyUpdates/2016-07-18|July 18th, 2016]]<br />
* [[WeeklyUpdates/2016-07-11|July 11th, 2016]]<br />
* [[WeeklyUpdates/2016-06-27|June 27th, 2016]]<br />
* [[WeeklyUpdates/2016-06-20|June 20th, 2016]]<br />
* [[WeeklyUpdates/2016-06-06|June 6th, 2016]]<br />
* [[WeeklyUpdates/2016-05-23|May 23rd, 2016]]<br />
* [[WeeklyUpdates/2016-05-16|May 16th, 2016]]<br />
* [[WeeklyUpdates/2016-05-09|May 9th, 2016]]<br />
* [[WeeklyUpdates/2016-05-02|May 2nd, 2016]]<br />
* [[WeeklyUpdates/2016-04-25|April 25th, 2016]]<br />
* [[WeeklyUpdates/2016-04-18|April 18th, 2016]]<br />
* [[WeeklyUpdates/2016-04-11|April 11th, 2016]]<br />
* [[WeeklyUpdates/2016-04-04|April 4th, 2016]]<br />
* [[WeeklyUpdates/2016-03-28|March 28th, 2016]]<br />
* [[WeeklyUpdates/2016-03-21|March 21st, 2016]]<br />
* [[WeeklyUpdates/2016-03-14|March 14th, 2016]]<br />
* [[WeeklyUpdates/2016-03-07|March 7th, 2016]]<br />
* [[WeeklyUpdates/2016-02-29|February 29th, 2016]]<br />
* [[WeeklyUpdates/2016-02-22|February 22nd, 2016]]<br />
* [[WeeklyUpdates/2016-02-15|February 15th, 2016]] (no live meeting due to [https://en.wikipedia.org/wiki/Washington's_Birthday Washington's Birthday] Holiday in the US.)<br />
* [[WeeklyUpdates/2016-02-08|February 8th, 2016]]<br />
* [[WeeklyUpdates/2016-02-01|February 1st, 2016]]<br />
* [[WeeklyUpdates/2016-01-25|January 25th, 2016]]<br />
* [[WeeklyUpdates/2016-01-11|January 11th, 2016]]<br />
* [[WeeklyUpdates/2016-01-04|January 4th, 2016]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2015 <br />
|-<br />
|<br />
* [[WeeklyUpdates/2015-12-28|December 28th, 2015]] (no meeting, just announcements)<br />
* December 21st (no meeting)<br />
* [[WeeklyUpdates/2015-12-14|December 14th, 2015]] (no live meeting due to All Hands recovery)<br />
* December 7th (no meeting due to All Hands)<br />
* [[WeeklyUpdates/2015-11-30|November 30th, 2015]]<br />
* [[WeeklyUpdates/2015-11-23|November 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-11-16|November 16th, 2015]]<br />
* [[WeeklyUpdates/2015-11-09|November 9th, 2015]]<br />
* [[WeeklyUpdates/2015-11-02|November 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-10-26|October 26th, 2015]]<br />
* [[WeeklyUpdates/2015-10-19|October 19th, 2015]]<br />
* [[WeeklyUpdates/2015-10-12|October 12th, 2015]]<br />
* [[WeeklyUpdates/2015-10-05|October 5th, 2015]]<br />
* [[WeeklyUpdates/2015-09-28|September 28th, 2015]]<br />
* [[WeeklyUpdates/2015-09-21|September 21st, 2015]]<br />
* [[WeeklyUpdates/2015-09-14|September 14th, 2015]]<br />
* September 7th (No meeting due to Labor Day)<br />
* [[WeeklyUpdates/2015-08-31|August 31st, 2015]]<br />
* [[WeeklyUpdates/2015-08-24|August 24th, 2015]]<br />
* [[WeeklyUpdates/2015-08-17|August 17th, 2015]]<br />
* [[WeeklyUpdates/2015-08-10|August 10th, 2015]]<br />
* [[WeeklyUpdates/2015-08-03|August 3rd, 2015]]<br />
* [[WeeklyUpdates/2015-07-27|July 27th, 2015]]<br />
* [[WeeklyUpdates/2015-07-20|July 20th, 2015]]<br />
* [[WeeklyUpdates/2015-07-13|July 13th, 2015]]<br />
* [[WeeklyUpdates/2015-07-06|July 6th, 2015]]<br />
* [[WeeklyUpdates/2015-06-29|June 29th, 2015]]<br />
* June 22nd, 2015 (no meeting due to All-Hands travel)<br />
* [[WeeklyUpdates/2015-06-15|June 15th, 2015]]<br />
* [[WeeklyUpdates/2015-06-08|June 8th, 2015]]<br />
* [[WeeklyUpdates/2015-06-01|June 1st, 2015]]<br />
* May 25th, 2015 (no meeting due to US Holiday)<br />
* [[WeeklyUpdates/2015-05-18|May 18th, 2015]]<br />
* [[WeeklyUpdates/2015-05-11|May 11th, 2015]]<br />
* [[WeeklyUpdates/2015-05-04|May 4th, 2015]]<br />
* [[WeeklyUpdates/2015-04-27|April 27th, 2015]]<br />
* [[WeeklyUpdates/2015-04-20|April 20th, 2015]]<br />
* [[WeeklyUpdates/2015-04-13|April 13th, 2015]]<br />
* [[WeeklyUpdates/2015-04-06|April 6th, 2015]]<br />
* [[WeeklyUpdates/2015-03-30|March 30th, 2015]]<br />
* [[WeeklyUpdates/2015-03-23|March 23rd, 2015]]<br />
* [[WeeklyUpdates/2015-03-16|March 16th, 2015]]<br />
* [[WeeklyUpdates/2015-03-09|March 9th, 2015]]<br />
* [[WeeklyUpdates/2015-03-02|March 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-23|February 23rd, 2015]]<br />
* Feb 16th No meeting due to US Holiday<br />
* [[WeeklyUpdates/2015-02-09|February 9nd, 2015]]<br />
* [[WeeklyUpdates/2015-02-02|February 2nd, 2015]]<br />
* [[WeeklyUpdates/2015-01-26|January 26th, 2015]]<br />
* [[WeeklyUpdates/2015-01-19|January 19th, 2015]]<br />
* [[WeeklyUpdates/2015-01-12|January 12th, 2015]]<br />
* [[WeeklyUpdates/2015-01-05|January 5th, 2015]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2014<br />
|-<br />
|<br />
*[[WeeklyUpdates/2014-12-29|December 29th, 2014]]<br />
*[[WeeklyUpdates/2014-12-15|December 15th, 2014]]<br />
*[[WeeklyUpdates/2014-12-08|December 8th, 2014]]<br />
*[[WeeklyUpdates/2014-11-24|November 24th, 2014]]<br />
*[[WeeklyUpdates/2014-11-17|November 17th, 2014]]<br />
*[[WeeklyUpdates/2014-11-10|November 10th, 2014]]<br />
*[[WeeklyUpdates/2014-11-03|November 3rd, 2014]]<br />
*[[WeeklyUpdates/2014-10-27|October 27th, 2014]]<br />
*[[WeeklyUpdates/2014-10-20|October 20th, 2014]]<br />
*[[WeeklyUpdates/2014-10-13|October 13th, 2014]]<br />
*[[WeeklyUpdates/2014-10-06|October 6th, 2014]]<br />
*[[WeeklyUpdates/2014-09-29|September 29th, 2014]]<br />
*[[WeeklyUpdates/2014-09-22|September 22th, 2014]]<br />
*[[WeeklyUpdates/2014-09-15|September 15th, 2014]]<br />
*[[WeeklyUpdates/2014-09-08|September 8th, 2014]]<br />
*[[WeeklyUpdates/2014-09-01|September 1st, 2014]]<br />
*[[WeeklyUpdates/2014-08-25|August 25, 2014]]<br />
*[[WeeklyUpdates/2014-08-18|August 18, 2014]]<br />
*[[WeeklyUpdates/2014-08-11|August 11, 2014]]<br />
*[[WeeklyUpdates/2014-08-04|August 4, 2014]]<br />
*[[WeeklyUpdates/2014-07-28|July 28, 2014]]<br />
*[[WeeklyUpdates/2014-07-21|July 21, 2014]]<br />
*[[WeeklyUpdates/2014-07-14|July 14, 2014]]<br />
*[[WeeklyUpdates/2014-07-07|July 7, 2014]]<br />
*[[WeeklyUpdates/2014-06-30|June 30, 2014]]<br />
*[[WeeklyUpdates/2014-06-23|June 23, 2014]]<br />
*[[WeeklyUpdates/2014-06-16|June 16, 2014]]<br />
*[[WeeklyUpdates/2014-06-09|June 09, 2014]]<br />
*[[WeeklyUpdates/2014-06-02|June 02, 2014]]<br />
*[[WeeklyUpdates/2014-05-26|May 26, 2014]]<br />
*[[WeeklyUpdates/2014-05-19|May 19, 2014]]<br />
*[[WeeklyUpdates/2014-05-12|May 12, 2014]]<br />
*[[WeeklyUpdates/2014-05-05|May 05, 2014]]<br />
*[[WeeklyUpdates/2014-04-28|April 28, 2014]]<br />
*[[WeeklyUpdates/2014-04-21|April 21, 2014]]<br />
*[[WeeklyUpdates/2014-04-14|April 14, 2014]]<br />
*[[WeeklyUpdates/2014-04-07|April 7, 2014]]<br />
*[[WeeklyUpdates/2014-03-31|March 31, 2014]]<br />
*[[WeeklyUpdates/2014-03-24|March 24, 2014]]<br />
*[[WeeklyUpdates/2014-03-17|March 17, 2014]]<br />
*[[WeeklyUpdates/2014-03-10|March 10, 2014]]<br />
*[[WeeklyUpdates/2014-03-03|March 3, 2014]]<br />
*[[WeeklyUpdates/2014-02-24|February 24, 2014]]<br />
*[[WeeklyUpdates/2014-02-10|February 10, 2014]]<br />
*[[WeeklyUpdates/2014-02-03|February 3, 2014]]<br />
*[[WeeklyUpdates/2014-01-27|January 27, 2014]]<br />
*[[WeeklyUpdates/2014-01-20|January 20, 2014]]<br />
*[[WeeklyUpdates/2014-01-13|January 13, 2014]]<br />
*[[WeeklyUpdates/2014-01-06|January 6, 2014]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2013-12-16|December 16, 2013]]<br />
*[[WeeklyUpdates/2013-12-09|December 9, 2013]]<br />
*[[WeeklyUpdates/2013-12-02|December 2, 2013]]<br />
*[[WeeklyUpdates/2013-11-25|November 25, 2013]]<br />
*[[WeeklyUpdates/2013-11-18|November 18, 2013]]<br />
*[[WeeklyUpdates/2013-11-11|November 11, 2013]]<br />
*[[WeeklyUpdates/2013-11-04|November 4, 2013]]<br />
*[[WeeklyUpdates/2013-10-28|October 28, 2013]]<br />
*[[WeeklyUpdates/2013-10-21|October 21, 2013]]<br />
*[[WeeklyUpdates/2013-10-14|October 14, 2013]]<br />
*[[WeeklyUpdates/2013-10-07|October 7, 2013]]<br />
*[[WeeklyUpdates/2013-09-30|September 30, 2013]]<br />
*[[WeeklyUpdates/2013-09-23|September 23, 2013]]<br />
*[[WeeklyUpdates/2013-09-16|September 16, 2013]]<br />
*[[WeeklyUpdates/2013-09-09|September 9, 2013]]<br />
*[[WeeklyUpdates/2013-09-02|September 2, 2013]]<br />
*[[WeeklyUpdates/2013-08-26|August 26, 2013]]<br />
*[[WeeklyUpdates/2013-08-19|August 19, 2013]]<br />
*[[WeeklyUpdates/2013-08-12|August 12, 2013]]<br />
*[[WeeklyUpdates/2013-08-05|August 5, 2013]]<br />
*[[WeeklyUpdates/2013-07-29|July 29, 2013]]<br />
*[[WeeklyUpdates/2013-07-22|July 22, 2013]]<br />
*[[WeeklyUpdates/2013-07-15|July 15, 2013]]<br />
*[[WeeklyUpdates/2013-07-08|July 8, 2013]]<br />
*[[WeeklyUpdates/2013-07-01|July 1, 2013]]<br />
*[[WeeklyUpdates/2013-06-24|June 24, 2013]]<br />
*[[WeeklyUpdates/2013-06-17|June 17, 2013]]<br />
*[[WeeklyUpdates/2013-06-10|June 10, 2013]]<br />
*[[WeeklyUpdates/2013-06-03|June 3, 2013]]<br />
*[[WeeklyUpdates/2013-05-20|May 20, 2013]]<br />
*[[WeeklyUpdates/2013-05-13|May 13, 2013]]<br />
*[[WeeklyUpdates/2013-05-06|May 6, 2013]]<br />
*[[WeeklyUpdates/2013-04-29|April 29, 2013]]<br />
*[[WeeklyUpdates/2013-04-22|April 22, 2013]]<br />
*[[WeeklyUpdates/2013-04-15|April 15, 2013]]<br />
*[[WeeklyUpdates/2013-04-08|April 8, 2013]]<br />
*[[WeeklyUpdates/2013-04-01|April 1, 2013]]<br />
*[[WeeklyUpdates/2013-03-25|March 25, 2013]]<br />
*[[WeeklyUpdates/2013-03-18|March 18, 2013]]<br />
*[[WeeklyUpdates/2013-03-11|March 11, 2013]]<br />
*[[WeeklyUpdates/2013-03-04|March 4, 2013]]<br />
*[[WeeklyUpdates/2013-02-25|February 25, 2013]]<br />
*February 18, 2013 - ''No meeting.'' <br />
*[[WeeklyUpdates/2013-02-11|February 11, 2013]]<br />
*[[WeeklyUpdates/2013-02-04|February 04, 2013]]<br />
*[[WeeklyUpdates/2013-01-28|January 28, 2013]]<br />
*[[WeeklyUpdates/2013-01-21|January 21, 2013]]<br />
*[[WeeklyUpdates/2013-01-14|January 14, 2013]]<br />
*[[WeeklyUpdates/2013-01-07|January 7, 2013]]<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
*December 31, 2012 - ''No meeting.''<br />
*December 24, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-12-17|December 17, 2012]]<br />
*[[WeeklyUpdates/2012-12-10|December 10, 2012]]<br />
*[[WeeklyUpdates/2012-12-03|December 03, 2012]]<br />
*[[WeeklyUpdates/2012-11-26|November 26, 2012]]<br />
*[[WeeklyUpdates/2012-11-19|November 19, 2012]]<br />
*[[WeeklyUpdates/2012-11-12|November 12, 2012]]<br />
*[[WeeklyUpdates/2012-11-05|November 5, 2012]]<br />
*[[WeeklyUpdates/2012-10-29|October 29, 2012]]<br />
*[[WeeklyUpdates/2012-10-22|October 22, 2012]]<br />
*[[WeeklyUpdates/2012-10-15|October 15, 2012]]<br />
*[[WeeklyUpdates/2012-10-08|October 8, 2012]]<br />
*[[WeeklyUpdates/2012-10-01|October 1, 2012]]<br />
*[[WeeklyUpdates/2012-09-24|September 24, 2012]]<br />
*[[WeeklyUpdates/2012-09-17|September 17, 2012]]<br />
*[[WeeklyUpdates/2012-09-10|September 10, 2012]]<br />
*[[WeeklyUpdates/2012-08-27|August 27, 2012]]<br />
*[[WeeklyUpdates/2012-08-20|August 20, 2012]]<br />
*[[WeeklyUpdates/2012-08-13|August 13, 2012]]<br />
*[[WeeklyUpdates/2012-08-06|August 06, 2012]]<br />
*[[WeeklyUpdates/2012-07-30|July 30, 2012]]<br />
*[[WeeklyUpdates/2012-07-23|July 23, 2012]]<br />
*[[WeeklyUpdates/2012-07-16|July 16, 2012]]<br />
*[[WeeklyUpdates/2012-07-09|July 9, 2012]]<br />
*[[WeeklyUpdates/2012-07-02|July 2, 2012]]<br />
*[[WeeklyUpdates/2012-06-25|June 25, 2012]]<br />
*[[WeeklyUpdates/2012-06-18|June 18, 2012]]<br />
*[[WeeklyUpdates/2012-06-11|June 11, 2012]]<br />
*[[WeeklyUpdates/2012-06-04|June 4, 2012]]<br />
*[[WeeklyUpdates/2012-05-28|May 28, 2012]]<br />
*[[WeeklyUpdates/2012-05-21|May 21, 2012]]<br />
*[[WeeklyUpdates/2012-05-14|May 14, 2012]]<br />
*[[WeeklyUpdates/2012-05-07|May 7, 2012]]<br />
*[[WeeklyUpdates/2012-04-30|April 30, 2012]]<br />
*[[WeeklyUpdates/2012-04-23|April 23, 2012]]<br />
*[[WeeklyUpdates/2012-04-16|April 16, 2012]]<br />
*[[WeeklyUpdates/2012-04-09|April 9, 2012]]<br />
*[[WeeklyUpdates/2012-04-02|April 2, 2012]]<br />
*[[WeeklyUpdates/2012-03-26|March 26, 2012]]<br />
*[[WeeklyUpdates/2012-03-19|March 19, 2012]]<br />
*[[WeeklyUpdates/2012-03-12|March 12, 2012]]<br />
*[[WeeklyUpdates/2012-03-05|March 5, 2012]]<br />
*[[WeeklyUpdates/2012-02-27|February 27, 2012]]<br />
*February 20, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-02-13|February 13, 2012]]<br />
*[[WeeklyUpdates/2012-02-06|February 6, 2012]]<br />
*[[WeeklyUpdates/2012-01-30|January 30, 2012]]<br />
*[[WeeklyUpdates/2012-01-23|January 23, 2012]]<br />
*January 16, 2012 - ''No meeting.''<br />
*[[WeeklyUpdates/2012-01-09|January 9, 2012]]<br />
*January 2, 2012 - ''No meeting.''<br />
|}<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
*December 26, 2011 - ''No meeting.''<br />
*[[WeeklyUpdates/2011-12-19|December 19, 2011]]<br />
*[[WeeklyUpdates/2011-12-12|December 12, 2011]]<br />
*[[WeeklyUpdates/2011-12-05|December 5, 2011]]<br />
*[[WeeklyUpdates/2011-11-28|November 28, 2011]]<br />
*[[WeeklyUpdates/2011-11-21|November 21, 2011]]<br />
*[[WeeklyUpdates/2011-11-14|November 14, 2011]]<br />
*[[WeeklyUpdates/2011-11-07|November 7, 2011]]<br />
*[[WeeklyUpdates/2011-10-31|October 31, 2011]]<br />
*[[WeeklyUpdates/2011-10-24|October 24, 2011]]<br />
*[[WeeklyUpdates/2011-10-17|October 17, 2011]]<br />
*[[WeeklyUpdates/2011-10-10|October 10, 2011]]<br />
*[[WeeklyUpdates/2011-10-03|October 3, 2011]]<br />
*[[WeeklyUpdates/2011-09-27|September 26, 2011]]<br />
*[[WeeklyUpdates/2011-09-19|September 19, 2011]]<br />
*September 12, 2011 - ''No meeting due to All-Hands week.''<br />
*September 5, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-08-29|August 29, 2011]]<br />
*[[WeeklyUpdates/2011-08-22|August 22, 2011]]<br />
*[[WeeklyUpdates/2011-08-15|August 15, 2011]]<br />
*[[WeeklyUpdates/2011-08-08|August 8, 2011]]<br />
*[[WeeklyUpdates/2011-08-01|August 1, 2011]]<br />
*[[WeeklyUpdates/2011-07-25|July 25, 2011]]<br />
*[[WeeklyUpdates/2011-07-18|July 18, 2011]]<br />
*[[WeeklyUpdates/2011-07-11|July 11, 2011]]<br />
*July 4, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-06-27|June 27, 2011]]<br />
*[[WeeklyUpdates/2011-06-20|June 20, 2011]]<br />
*[[WeeklyUpdates/2011-06-13|June 13, 2011]]<br />
*[[WeeklyUpdates/2011-06-06|June 6, 2011]]<br />
*May 30, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-05-23|May 23, 2011]]<br />
*[[WeeklyUpdates/2011-05-16|May 16, 2011]]<br />
*[[WeeklyUpdates/2011-05-09|May 9, 2011]]<br />
*[[WeeklyUpdates/2011-05-02|May 2, 2011]]<br />
*[[WeeklyUpdates/2011-04-25|April 25, 2011]]<br />
*[[WeeklyUpdates/2011-04-18|April 18, 2011]]<br />
*[[WeeklyUpdates/2011-04-11|April 11, 2011]]<br />
*April 4, 2011 - ''No meeting due to All-Hands week.''<br />
*[[WeeklyUpdates/2011-03-28|March 28, 2011]]<br />
*[[WeeklyUpdates/2011-03-21|March 21, 2011]]<br />
*[[WeeklyUpdates/2011-03-14|March 14, 2011]]<br />
*[[WeeklyUpdates/2011-03-07|March 7, 2011]]<br />
*[[WeeklyUpdates/2011-02-28|February 28, 2011]]<br />
*February 21, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-02-14|February 14, 2011]]<br />
*[[WeeklyUpdates/2011-02-07|February 07, 2011]]<br />
*[[WeeklyUpdates/2011-01-31|January 31, 2011]]<br />
*[[WeeklyUpdates/2011-01-24|January 24, 2011]]<br />
*January 17, 2011 - ''No meeting due to US holiday.''<br />
*[[WeeklyUpdates/2011-01-10|January 10, 2011]]<br />
*[[WeeklyUpdates/2011-01-03|January 3, 2011]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2010 <br />
|-<br />
|<br />
*December 27, 2010 - ''No meeting due to holiday season.''<br />
*[[WeeklyUpdates/2010-12-20|December 20, 2010]]<br />
*December 13, 2010 - ''No meeting due to Work Week''<br />
*[[WeeklyUpdates/2010-12-06|December 6, 2010]]<br />
*[[WeeklyUpdates/2010-11-29|November 29, 2010]]<br />
*[[WeeklyUpdates/2010-11-22|November 22, 2010]]<br />
*[[WeeklyUpdates/2010-11-15|November 15, 2010]]<br />
*[[WeeklyUpdates/2010-11-08|November 08, 2010]]<br />
*[[WeeklyUpdates/2010-11-01|November 01, 2010]]<br />
*[[WeeklyUpdates/2010-10-25|October 25, 2010]]<br />
*[[WeeklyUpdates/2010-10-18|October 18, 2010]]<br />
*[[WeeklyUpdates/2010-10-11|October 11, 2010]]<br />
*[[WeeklyUpdates/2010-10-04|October 4, 2010]]<br />
*[[WeeklyUpdates/2010-09-27|September 27, 2010]]<br />
*[[WeeklyUpdates/2010-09-20|September 20, 2010]]<br />
*[[WeeklyUpdates/2010-09-13|September 13, 2010]]<br />
*September 6, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-08-30|August 30, 2010]]<br />
*[[WeeklyUpdates/2010-08-23|August 23, 2010]]<br />
*[[WeeklyUpdates/2010-08-16|August 16, 2010]]<br />
*[[WeeklyUpdates/2010-08-09|August 9, 2010]]<br />
*[[WeeklyUpdates/2010-08-02|August 2, 2010]]<br />
*[[WeeklyUpdates/2010-07-26|July 26, 2010]]<br />
*[[WeeklyUpdates/2010-07-19|July 19, 2010]]<br />
*[[WeeklyUpdates/2010-07-12|July 12, 2010]]<br />
*July 5, 2010 - ''No meeting due to summit''<br />
*[[WeeklyUpdates/2010-06-28|June 28, 2010]]<br />
*[[WeeklyUpdates/2010-06-21|June 21, 2010]]<br />
*[[WeeklyUpdates/2010-06-14|June 14, 2010]]<br />
*[[WeeklyUpdates/2010-06-07|June 7, 2010]]<br />
*May 31, 2010 - ''No meeting due to US holiday''<br />
*[[WeeklyUpdates/2010-05-24|May 24, 2010]]<br />
*[[WeeklyUpdates/2010-05-17|May 17, 2010]]<br />
*[[WeeklyUpdates/2010-05-10|May 10, 2010]]<br />
*[[WeeklyUpdates/2010-05-03|May 03, 2010]]<br />
*[[WeeklyUpdates/2010-04-26|April 26, 2010]]<br />
*[[WeeklyUpdates/2010-04-19|April 19, 2010]]<br />
*[[WeeklyUpdates/2010-04-12|April 12, 2010]]<br />
*[[WeeklyUpdates/2010-04-05|April 5, 2010]]<br />
*[[WeeklyUpdates/2010-03-29|March 29, 2010]]<br />
*[[WeeklyUpdates/2010-03-22|March 22, 2010]]<br />
*[[WeeklyUpdates/2010-03-15|March 15, 2010]]<br />
*[[WeeklyUpdates/2010-03-08|March 8, 2010]]<br />
*[[WeeklyUpdates/2010-03-01|March 1, 2010]]<br />
*[[WeeklyUpdates/2010-02-22|February 22, 2010]] <br />
*[[WeeklyUpdates/2010-02-15|February 15, 2010]]- No meeting due to holiday, please leave updates in the wiki.<br />
*[[WeeklyUpdates/2010-02-08|February 8, 2010]] <br />
*[[WeeklyUpdates/2010-02-01|February 1, 2010]]<br />
*[[WeeklyUpdates/2010-01-25|January 25, 2010]]<br />
*[[WeeklyUpdates/2010-01-18|January 18, 2010]]- No meeting due to US holiday, please leaves updates in the wiki.<br />
*[[WeeklyUpdates/2010-01-11|January 11, 2010]]- First meeting using [[WeeklyUpdates/Guidance|new procedures]].<br />
*[[WeeklyUpdates/2010-01-04|January 04, 2010]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2009 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2009-12-28|December 28, 2009]]- No meeting due to holiday. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-12-21|December 21, 2009]] <br />
*[[WeeklyUpdates/2009-12-14|December 14, 2009]] <br />
*[[WeeklyUpdates/2009-12-07|December 07, 2009]]- No meeting due to all day Mozilla Corp meetings. Feel free to leave updates in the Wiki. <br />
*[[WeeklyUpdates/2009-11-30|November 30, 2009]] <br />
*[[WeeklyUpdates/2009-11-23|November 23, 2009]] <br />
*[[WeeklyUpdates/2009-11-16|November 16, 2009]] <br />
*[[WeeklyUpdates/2009-11-09|November 09, 2009]] <br />
*[[WeeklyUpdates/2009-11-02|November 02, 2009]] - Time Change! 19:00 UTC (11am PST) <br />
*[[WeeklyUpdates/2009-10-26|October 26, 2009]] <br />
*[[WeeklyUpdates/2009-10-19|October 19, 2009]] <br />
*[[WeeklyUpdates/2009-10-12|October 12, 2009]] <br />
*[[WeeklyUpdates/2009-10-05|October 05, 2009]] <br />
*[[WeeklyUpdates/2009-09-28|September 28, 2009]] <br />
*[[WeeklyUpdates/2009-09-21|September 21, 2009]] <br />
*[[WeeklyUpdates/2009-09-14|September 14, 2009]] <br />
*[[WeeklyUpdates/2009-09-07|September 07, 2009]] - No Meeting due to [http://en.wikipedia.org/wiki/Labor_Day Labor Day] Holiday <br />
*[[WeeklyUpdates/2009-08-31|August 31, 2009]] <br />
*[[WeeklyUpdates/2009-08-24|August 24, 2009]] <br />
*[[WeeklyUpdates/2009-08-17|August 17, 2009]] <br />
*[[WeeklyUpdates/2009-08-10|August 10, 2009]] <br />
*[[WeeklyUpdates/2009-08-03|August 03, 2009]] <br />
*[[WeeklyUpdates/2009-07-27|July 27, 2009]] <br />
*[[WeeklyUpdates/2009-07-20|July 20, 2009]] <br />
*[[WeeklyUpdates/2009-07-13|July 13, 2009]] <br />
*[[WeeklyUpdates/2009-07-06|July 06, 2009]] <br />
*[[WeeklyUpdates/2009-06-29|June 29, 2009]] <br />
*[[WeeklyUpdates/2009-06-22|June 22, 2009]] <br />
*[[WeeklyUpdates/2009-06-15|June 15, 2009]] <br />
*[[WeeklyUpdates/2009-06-08|June 08, 2009]] <br />
*[[WeeklyUpdates/2009-06-01|June 01, 2009]] <br />
*[[WeeklyUpdates/2009-05-25|May 25, 2009]] - No meeting due to US Holiday: [http://en.wikipedia.org/wiki/Memorial_day Memorial Day]. Feel free to leave status! <br />
*[[WeeklyUpdates/2009-05-18|May 18, 2009]] <br />
*[[WeeklyUpdates/2009-05-11|May 11, 2009]] <br />
*[[WeeklyUpdates/2009-05-04|May 04, 2009]] <br />
*April 27, 2009 - no update meeting this week due to on-site event <br />
*[[WeeklyUpdates/2009-04-20|April 20, 2009]] <br />
*[[WeeklyUpdates/2009-04-13|April 13, 2009]] <br />
*[[WeeklyUpdates/2009-04-06|April 06, 2009]] <br />
*[[WeeklyUpdates/2009-03-30|March 30, 2009]] <br />
*[[WeeklyUpdates/2009-03-23|March 23, 2009]] <br />
*[[WeeklyUpdates/2009-03-16|March 16, 2009]] <br />
*[[WeeklyUpdates/2009-03-09|March 09, 2009]] <br />
*[[WeeklyUpdates/2009-03-02|March 02, 2009]] <br />
*[[WeeklyUpdates/2009-02-23|February 23, 2009]] <br />
*February 16, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-02-09|February 09, 2009]] <br />
*[[WeeklyUpdates/2009-02-02|February 02, 2009]] <br />
*[[WeeklyUpdates/2009-01-26|January 26, 2009]] <br />
*January 19, 2009 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2009-01-12|January 12, 2009]] <br />
*[[WeeklyUpdates/2009-01-05|January 05, 2009]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2008 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2008-12-29|December 29, 2008]] <br />
*[[WeeklyUpdates/2008-12-22|December 22, 2008]] <br />
*[[WeeklyUpdates/2008-12-15|December 15, 2008]] <br />
*[[WeeklyUpdates/2008-12-08|December 08, 2008]] <br />
*[[WeeklyUpdates/2008-12-01|December 01, 2008]] <br />
*[[WeeklyUpdates/2008-11-24|November 24, 2008]] <br />
*[[WeeklyUpdates/2008-11-17|November 17, 2008]] <br />
*[[WeeklyUpdates/2008-11-10|November 10, 2008]] <br />
*[[WeeklyUpdates/2008-11-03|November 03, 2008]] <br />
*[[WeeklyUpdates/2008-10-27|October 27, 2008]] <br />
*[[WeeklyUpdates/2008-10-20|October 20, 2008]] <br />
*[[WeeklyUpdates/2008-10-13|October 13, 2008]] <br />
*[[WeeklyUpdates/2008-10-06|October 06, 2008]] <br />
*[[WeeklyUpdates/2008-09-29|September 29, 2008]] <br />
*[[WeeklyUpdates/2008-09-22|September 22, 2008]] <br />
*[[WeeklyUpdates/2008-09-15|September 15, 2008]] <br />
*[[WeeklyUpdates/2008-09-08|September 08, 2008]] <br />
*September 01, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-08-25|August 25, 2008]] <br />
*[[WeeklyUpdates/2008-08-18|August 18, 2008]] <br />
*[[WeeklyUpdates/2008-08-11|August 11, 2008]] <br />
*[[WeeklyUpdates/2008-08-04|August 04, 2008]] <br />
*July 28, 2008 - No Meeting due to Summit <br />
*[[WeeklyUpdates/2008-07-21|July 21, 2008]] <br />
*[[WeeklyUpdates/2008-07-14|July 14, 2008]] <br />
*[[WeeklyUpdates/2008-07-07|July 07, 2008]] <br />
*[[WeeklyUpdates/2008-06-30|June 30, 2008]] <br />
*[[WeeklyUpdates/2008-06-23|June 23, 2008]] <br />
*[[WeeklyUpdates/2008-06-16|June 16, 2008]] <br />
*[[WeeklyUpdates/2008-06-09|June 09, 2008]] <br />
*[[WeeklyUpdates/2008-06-02|June 02, 2008]] <br />
*May 26, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-05-19|May 19, 2008]] <br />
*[[WeeklyUpdates/2008-05-12|May 12, 2008]] <br />
*[[WeeklyUpdates/2008-05-05|May 05, 2008]] <br />
*[[WeeklyUpdates/2008-04-28|April 28, 2008]] <br />
*[[WeeklyUpdates/2008-04-21|April 21, 2008]] <br />
*[[WeeklyUpdates/2008-04-14|April 14, 2008]] <br />
*[[WeeklyUpdates/2008-04-07|April 07, 2008]] <br />
*[[WeeklyUpdates/2008-03-31|March 31, 2008]] <br />
*[[WeeklyUpdates/2008-03-24|March 24, 2008]] <br />
*[[WeeklyUpdates/2008-03-17|March 17, 2008]] <br />
*[[WeeklyUpdates/2008-03-10|March 10, 2008]] <br />
*[[WeeklyUpdates/2008-03-03|March 03, 2008]] <br />
*[[WeeklyUpdates/2008-02-25|February 25, 2008]] <br />
*February 18, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-02-11|February 11, 2008]] <br />
*[[WeeklyUpdates/2008-02-04|February 04, 2008]] <br />
*[[WeeklyUpdates/2008-01-28|January 28, 2008]] <br />
*January 21, 2008 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2008-01-14|January 14, 2008]] <br />
*[[WeeklyUpdates/2008-01-07|January 07, 2008]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2007 <br />
|-<br />
|<br />
*December 31, 2007 - No Meeting due to US holiday season <br />
*December 24, 2007 - No Meeting due to US holiday season <br />
*[[WeeklyUpdates/2007-12-17|December 17, 2007]] <br />
*[[WeeklyUpdates/2007-12-10|December 10, 2007]] <br />
*[[WeeklyUpdates/2007-12-03|December 03, 2007]] <br />
*[[WeeklyUpdates/2007-11-26|November 26, 2007]] <br />
*[[WeeklyUpdates/2007-11-19|November 19, 2007]] <br />
*November 12, 2007 - No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2007-11-05|November 05, 2007]] <br />
*[[WeeklyUpdates/2007-10-29|October 29, 2007]] <br />
*[[WeeklyUpdates/2007-10-22|October 22, 2007]] <br />
*[[WeeklyUpdates/2007-10-15|October 15, 2007]] <br />
*[[WeeklyUpdates/2007-10-08|October 08, 2007]] <br />
*[[WeeklyUpdates/2007-10-01|October 01, 2007]] <br />
*[[WeeklyUpdates/2007-09-24|September 24, 2007]] <br />
*[[WeeklyUpdates/2007-09-17|September 17, 2007]] <br />
*[[WeeklyUpdates/2007-09-10|September 10, 2007]] <br />
*[[WeeklyUpdates/2007-08-27|August 27, 2007]] <br />
*[[WeeklyUpdates/2007-08-20|August 20, 2007]] <br />
*[[WeeklyUpdates/2007-08-13|August 13, 2007]] <br />
*[[WeeklyUpdates/2007-08-06|August 6, 2007]] <br />
*[[WeeklyUpdates/2007-07-30|July 30, 2007]] <br />
*[[WeeklyUpdates/2007-07-23|July 23, 2007]] <br />
*[[WeeklyUpdates/2007-07-16|July 16, 2007]] <br />
*[[WeeklyUpdates/2007-07-09|July 9, 2007]] <br />
*[[WeeklyUpdates/2007-07-02|July 2, 2007]] <br />
*[[WeeklyUpdates/2007-06-25|June 25, 2007]] <br />
*[[WeeklyUpdates/2007-06-18|June 18, 2007]] <br />
*[[WeeklyUpdates/2007-06-11|June 11, 2007]] <br />
*[[WeeklyUpdates/2007-06-04|June 4, 2007]] <br />
*[[WeeklyUpdates/2007-05-21|May 21, 2007]] <br />
*[[WeeklyUpdates/2007-05-14|May 14, 2007]] <br />
*[[WeeklyUpdates/2007-05-07|May 7, 2007]] <br />
*[[WeeklyUpdates/2007-04-30|April 30, 2007]] <br />
*[[WeeklyUpdates/2007-04-23|April 23, 2007]] <br />
*[[WeeklyUpdates/2007-04-16|April 16, 2007]] <br />
*[[WeeklyUpdates/2007-04-09|April 9, 2007]] <br />
*[[WeeklyUpdates/2007-04-02|April 2, 2007]] <br />
*[[WeeklyUpdates/2007-03-26|March 26, 2007]] <br />
*[[WeeklyUpdates/2007-03-19|March 19, 2007]] <br />
*[[WeeklyUpdates/2007-03-12|March 12, 2007]] <br />
*[[WeeklyUpdates/2007-03-05|March 5, 2007]] <br />
*[[WeeklyUpdates/2007-02-26|February 26, 2007]] <br />
*[[WeeklyUpdates/2007-02-12|February 12, 2007]] <br />
*[[WeeklyUpdates/2007-02-05|February 5, 2007]] <br />
*[[WeeklyUpdates/2007-01-29|January 29, 2007]] <br />
*[[WeeklyUpdates/2007-01-22|January 22, 2007]] <br />
*[[WeeklyUpdates/2007-01-08|January 08, 2007]] <br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2006 <br />
|-<br />
|<br />
*[[WeeklyUpdates/2006-12-18|December 18, 2006]] <br />
*[[WeeklyUpdates/2006-12-11|December 11, 2006]] <br />
*[[WeeklyUpdates/2006-12-04|December 4, 2006]] <br />
*[[WeeklyUpdates/2006-11-27|November 27, 2006]] <br />
*[[WeeklyUpdates/2006-11-13|November 13, 2006]] <br />
*[[WeeklyUpdates/2006-11-06|November 6, 2006]] <br />
*[[WeeklyUpdates/2006-10-30|October 30, 2006]] <br />
*[[WeeklyUpdates/2006-10-23|October 23, 2006]] <br />
*[[WeeklyUpdates/2006-10-16|October 16, 2006]] <br />
*[[WeeklyUpdates/2006-10-09|October 9, 2006]] <br />
*[[WeeklyUpdates/2006-10-02|October 2, 2006]] <br />
*[[WeeklyUpdates/2006-09-25|September 25, 2006]] <br />
*[[WeeklyUpdates/2006-09-18|September 18, 2006]] <br />
*[[WeeklyUpdates/2006-09-11|September 11, 2006]] <br />
*September 4, 2006 - No Meeting due to US and Canadian Holiday <br />
*[[WeeklyUpdates/2006-08-28|August 28, 2006]] <br />
*[[WeeklyUpdates/2006-08-21|August 21, 2006]] <br />
*[[WeeklyUpdates/2006-08-14|August 14, 2006]] <br />
*[[WeeklyUpdates/2006-08-07|August 07, 2006]] <br />
*[[WeeklyUpdates/2006-07-31|July 31, 2006]] <br />
*[[WeeklyUpdates/2006-07-24|July 24, 2006]] <br />
*[[WeeklyUpdates/2006-07-17|July 17, 2006]] <br />
*[[WeeklyUpdates/2006-07-10|July 10, 2006]] <br />
*July 3, 2006 - No Meeting due to US Holiday <br />
*June 26, 2006 - No Meeting <br />
*[[WeeklyUpdates/2006-06-19|June 19, 2006]] <br />
*[[WeeklyUpdates/2006-06-12|June 12, 2006]] <br />
*[[WeeklyUpdates/2006-06-05|June 05, 2006]] <br />
*May 29, 2006 -- No Meeting due to US Holiday <br />
*[[WeeklyUpdates/2006-05-22|May 22, 2006]] <br />
*May 15, 2006 -- No Meeting due to XTech 2006 Conference <br />
*[[WeeklyUpdates/2006-05-08|May 08, 2006]] <br />
*[[WeeklyUpdates/2006-05-01|May 01, 2006]] <br />
*[[WeeklyUpdates/2006-04-24|April 24, 2006]] <br />
*[[WeeklyUpdates/2006-04-17|April 17, 2006]] <br />
*[[WeeklyUpdates/2006-04-10|April 10, 2006]] <br />
*[[WeeklyUpdates/2006-04-03|April 03, 2006]] <br />
*[[WeeklyUpdates/2006-03-27|March 27, 2006]]<br />
|}<br />
<br />
''Note: Older [http://www-archive.mozilla.org/status/minutes.html meeting minutes] and [http://www-archive.mozilla.org/status/ status updates] are available on the www.mozilla.org archive site.''<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Dholbert