Background:
To fix the recent add-on certificate issue, which broke all add-ons: Certificate issue causing add-ons to be disabled or fail to install
I enabled studies for the hotfix.
Observations:
- Firefox installs studies without informing you that a new study was installed
- Studies get installed without opt-in / opt-out (the current opt-out option is a joke, because you never were informed of its installation - currently the only option for opt-out would be to constantly check about:studies for new ones)
- Very little information about some studies (study with cryptic name, description âsets variable x to yâ)
- Mozilla has already made an effort to make studies transparent (shield study guidelines), but none of this makes its way to the end user.
Suggestions for privacy:
Privacy aware users might want to participate in studies, but a few things that should change:
- Opt-in as a user setting. Only studies can set opt-in. This means if you enable studies you are automatically subscribed to opt-out studies.
Replace the checkbox âAllow Firefox to install and run studiesâ to a radiobutton (those are the round single choice selections) with the title âAllow Firefox to install studies and share study relevant informationâ and options âAlwaysâ, âAsk for each new studyâ, âNeverâ - Make studies independent from âAllow Firefox to send technical and interaction data to Mozillaâ.
This is why I added the âshare study relevant informationâ above. This would allow people to participate in studies while having a higher privacy setting. - Show by text or by example which information is shared/sent by keeping a study enabled (opt-out), or enabling a study (opt-in). Always display this extra information to the user, even if it is âNoneâ. (This would be a new field required for every new study in the study/normandy-API.)
Suggestions for study transparency:
Apologies in advance - in this lengthy section I make a few points, which are basically identical and can be summarized as:
Put more focus on the end user.
This means making study information human readable by the average user and making it available within firefox.
-
Inform the end user when a new study has been installed.
If you enable studies you can only opt-out when you are aware of the study being on your computer. -
Show (more) study information in about:studies (and in a potential future opt-in dialog). - The information provided for some studies is only along the lines of "This study sets
variable
tovalue
" with a cryptic name. -
The shield study guidelines (https://wiki.mozilla.org/Firefox/Shield/Shield_Studies#Guiding_Principles) state:
All Shield Studies must be designed to answer a specific question
Make this a requirement for all studies to formulate a specific, average user readable, goal.
Two examples (these are elaborated further down):
- âFix all add-ons disabled and marked as legacy in Firefox 63.0.3 (Certificate issue, [Bug 1548973])â (https://normandy.cdn.mozilla.net/api/v1/recipe/761/)
- âHelp Mozilla test their servers for the load by many clients requesting push notificationsâ (https://normandy.cdn.mozilla.net/api/v1/recipe/597/)
The original information displayed to the end user for this study shows almost no information.
-
To create a shield study you need to provide a lot of information (Example study application, push notification study: https://bugzilla.mozilla.org/show_bug.cgi?id=1491171) - none of this information is displayed in about:studies and even when the API provides a link to the bugtracker, where a lot of this information can be found, (âexperimentDocumentUrlâ in https://normandy.cdn.mozilla.net/api/v1/recipe/597/) it is not displayed to the user.
-
Information displayed in about:studies reads more like it was written for mozilla/developer internal record-keeping with no regard to the end user.
For example the study to add a hotfix for add-ons:"name": "Hotfix: Update XPI signing intermediate [Bug 1548973]", "arguments": { "name": "hotfix-update-xpi-signing-intermediate-bug-1548973",
In about:studies this shows as âhotfix-update-xpi-signing-intermediate-bug-1548973â. The study-name, âHotfix: Update [âŚ]â, is not shown. From the point of view of the average user either name is a whole lot of nothing. This one has at least a somewhat reasonable description ("[âŚ]updates an intermediate certificate used for signing add-ons[âŚ]" - not perfect for an end user, but it mentions that itâs a hotfix for some add-on issue). But there are worse examples:
"id": 597, [âŚ]"name": "Pref Flip: Push Performance Shield Study, release 62 and 63 [Bug 1491171]", [âŚ]"arguments": { [âŚ]"slug": "prefflip-push-performance-1491171",
All of the information about this study displays in about:study as:
prefflip-push-performance-1491171 This study sets `dom.push.alwaysConnect` to `true`
Hardly something an end user can be expected to understand.
In the API for these studies I saw that you can attach a URL with more information to the studies, but despite there being a post about this study (https://blog.mozilla.org/services/2018/10/03/upcoming-push-shield-study/) and despite there being more information about this study in the bugtracker (https://bugzilla.mozilla.org/show_bug.cgi?id=1491171) neither was attached as information visible to the end user - the API provided a âexperimentDocumentUrlâ to the bugtracker where detailed information about the study can be read, but it was not displayed to the user.
Semi-related, show all studies:
Using the normandy api at https://normandy.cdn.mozilla.net/api/v1/recipe/ to list all studies is guesswork as to how it would be displayed to the user.
Can you view all studies in about:studies (is there a developer switch to do this)? If the transparency towards the end user would be improved in the future allowing developers/users to view all studies (without being allowed to enable them) could help in improving the quality of the way studies are displayed to the end user (as good examples can be seen and bad examples improved).
I hope these suggestions inspired some people in charge to change some study-policies to make studies more transparent to the end user and/or allow for opt-in studies and inform the end user when a new study was installed.