ExposureGuidelines: Difference between revisions

Add links for intenttoship bot
(Link to webkit's standards-positions repo)
(Add links for intenttoship bot)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<span style="float:right">__TOC__</span>
'''Always ask: ''Is this good for the web?'''''
'''Always ask: ''Is this good for the web?'''''


=Adding or changing features=
=Adding or changing features=


This process applies to all new features that change how the web platform operates.
This process applies to all code contributions to Firefox that introduce, modify, or remove features that change how the web platform operates.


If you aim to expose a new feature to the web or change an existing feature, please follow these steps:
If you aim to expose a new feature to the web or change an existing feature, please follow these steps:


# [[#New features|Evaluate the new feature]] or [[#Changing or evolving features|change to an existing features]].
# [[#New features|Evaluate the new feature]] or [[#Changing or evolving features|change to an existing features]].
# 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.)
# 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*.)
# Implement as normal. Code review rounds will take place, [https://github.com/w3c/web-platform-tests web-platform-tests] will be written, etc.
# Implement as normal. Code review rounds will take place, [https://github.com/w3c/web-platform-tests web-platform-tests] will be written, etc.
# 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]].
# 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]].
# If there's no negative feedback, ship it!
# If there's no negative feedback, ship it!
<nowiki>*</nowiki>If you’re not sure, it’s unlikely to be a small change.


=New features=
=New features=
Line 88: Line 91:
''Preference'': if applicable, how can interested parties test this before it ships pref'd on by default?<br />
''Preference'': if applicable, how can interested parties test this before it ships pref'd on by default?<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 />
''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 />
''Other browsers'': address with "shipped" (since version X, behind what flags if any), "intent emailed" (mailing list URL), or "considering" (citation).<br />
''Link to standards-positions discussion'': Link to an issue in [https://github.com/mozilla/standards-positions/ mozilla/standards-positions] about what we think about the specification.<br />
''Other browsers'':
* Blink: address with "shipped" (since version X, behind what flags if any), "intent emailed" (mailing list URL), or "considering" (citation).
* WebKit: address with "shipped" (since version X, behind what flags if any), "intent emailed" (mailing list URL), or "considering" (citation).
''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:
''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:
* A web-platform-tests issue explaining why a certain thing cannot be tested ([https://github.com/w3c/web-platform-tests/issues/3867 example]).
* A web-platform-tests issue explaining why a certain thing cannot be tested ([https://github.com/w3c/web-platform-tests/issues/3867 example]).
Line 100: Line 106:


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).
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).
* ''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.
 
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** +1 [[User:Evilpie|Tom Schuster]] I forgot to request a standards-position before submitting an intent before.
** +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.
* ''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.
* ''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.
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** +1 [[User:Tantek|Tantek]] ([https://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** ... add yourself
* ''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.
* ''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.
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** +1 [[User:Tantek|Tantek]] ([https://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** ... add yourself
* ''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.
* ''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.
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** +1 [[User:Tantek|Tantek]] ([https://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** ... add yourself
* ''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.
* ''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.
** +1 [[User:Tantek|Tantek]] ([http://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** +1 [[User:Tantek|Tantek]] ([https://tantek.com/ tantek.com]) 14:21, 12 August 2022 (UTC)
** ... add yourself


==Intent to ship==
==Intent to ship==
Line 125: Line 132:
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]])
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]])


This feature was previously discussed in this "Intent to prototype" thread:  <https://groups.google.com/forum/#!forum/mozilla.dev.platform>. '''If anything changed since that thread please include that information in this email'''.
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'''.
</blockquote>
</blockquote>


It's acceptable to merge the "intent to prototype" into the "intent to ship" email as long as all the relevant requirements are met.
It's acceptable to merge the "intent to prototype" into the "intent to ship" email as long as all the relevant requirements are met.


===Suggested additions===
* ''TAG Review'': link to TAG review of the feature/spec. Note: Blink requires this in their intent process.
** +1 [[User:Zcorpan]] (proposed)
** +1 [[User:Tantek]]
** ... add yourself


=Removing features=
=Removing features=
Line 161: Line 173:
** [https://www.chromium.org/blink/launching-features Chrome/Blink process for Launching Features] in particular
** [https://www.chromium.org/blink/launching-features Chrome/Blink process for Launching Features] in particular
** [https://bit.ly/blink-signals Signals from other implementations]
** [https://bit.ly/blink-signals Signals from other implementations]
 
* Intent To Ship bot: [https://botsin.space/@intenttoship Mastodon] [https://twitter.com/intenttoship Twitter] [https://github.com/autonome/intenttoship-bot Source code]


=FAQ=
=FAQ=
Line 175: Line 187:
* By asking!
* By asking!
** WebKit (Apple) can be asked on their [https://github.com/WebKit/standards-positions standards-positions repo]
** WebKit (Apple) can be asked on their [https://github.com/WebKit/standards-positions standards-positions repo]
** Chrome: [https://source.chromium.org/chromium/chromium/src/+/main:docs/standards/positions/GoogleChrome/README.md Positions from Google Chrome Teams on Web Standards]


==How do we let other browser engines know what we think?==
==How do we let other browser engines know what we think?==
4

edits