Bug 1513854 - Read Normandy recipes from Remote Settings on Nightly r=mythmon
☠☠ backed out by 4b50c89ff7cf ☠ ☠
authorMathieu Leplatre <mathieu@mozilla.com>
Tue, 30 Apr 2019 13:51:00 +0000
changeset 531060 9b66e9b91074633d49ca0c1d1624effd82b40ea3
parent 531059 a8fcad5870bad1bc7d9b355e2b3348753f7385c7
child 531061 f5eea37066364577b76579f6671398cadc0f98f4
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmythmon
bugs1513854
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1513854 - Read Normandy recipes from Remote Settings on Nightly r=mythmon Read Normandy recipes from Remote Settings on Nightly Differential Revision: https://phabricator.services.mozilla.com/D24055
toolkit/components/featuregates/Features.toml
toolkit/components/normandy/docs/index.rst
toolkit/components/normandy/test/browser/browser_RecipeRunner.js
--- a/toolkit/components/featuregates/Features.toml
+++ b/toolkit/components/featuregates/Features.toml
@@ -2,9 +2,9 @@
 title = "Normandy: Remote Settings transport"
 description = """
 When enabled, the Normandy client will fetch recipes from Remote Settings \
 instead of directly from the Normandy API."""
 restart-required = false
 type = "boolean"
 bug-numbers = [1519276]
 is-public = true
-default-value = false
\ No newline at end of file
+default-value: true
--- a/toolkit/components/normandy/docs/index.rst
+++ b/toolkit/components/normandy/docs/index.rst
@@ -1,18 +1,29 @@
 .. _components/normandy:
 
 ====================
 Shield Recipe Client
 ====================
 
 Normandy (aka the Shield Recipe Client) is a targeted change control
 system, allowing small changes to be made within a release of Firefox,
-such as studies. It downloads recipes and actions from the `recipe
-server`_, verifies their cryptographic signatures, and then executes
-them.
+such as studies.
+
+It downloads recipes and actions from :ref:`Remote Settings <services/remotesettings>`
+and then executes them.
+
+.. note::
+
+   Originally, the recipes were fetched from the `recipe server`_, but in `Bug 1513854`_
+   the source was changed to *Remote Settings*. The cryptographic signatures are verified
+   at the *Remote Settings* level (integrity) and at the *Normandy* level
+   (authenticity of publisher).
+
+   The source can still be controlled by :ref:`Feature Gates <components/featuregates>`.
 
 .. _recipe server: https://github.com/mozilla/normandy/
+.. _Bug 1513854: https://bugzilla.mozilla.org/show_bug.cgi?id=1513854
 
 .. toctree::
    :maxdepth: 1
 
    data-collection
--- a/toolkit/components/normandy/test/browser/browser_RecipeRunner.js
+++ b/toolkit/components/normandy/test/browser/browser_RecipeRunner.js
@@ -123,16 +123,21 @@ decorate_task(
     getStub.reset();
     ok(!getStub.called, "getClientClassification hasn't been called");
     await RecipeRunner.run();
     ok(!getStub.called, "getClientClassification was not called eagerly");
   }
 );
 
 decorate_task(
+  withPrefEnv({
+    set: [
+      ["features.normandy-remote-settings.enabled", false],
+    ],
+  }),
   withStub(Uptake, "reportRunner"),
   withStub(NormandyApi, "fetchRecipes"),
   withStub(ActionsManager.prototype, "runRecipe"),
   withStub(ActionsManager.prototype, "finalize"),
   withStub(Uptake, "reportRecipe"),
   async function testRun(
     reportRunnerStub,
     fetchRecipesStub,