Bug 1682995 - Enable AVIF support by default. r=jrmuizel,necko-reviewers,preferences-reviewers,valentin,Gijs
authorJon Bauman <jbauman@mozilla.com>
Thu, 05 Aug 2021 15:48:00 +0000
changeset 587953 bb07fcce356745addfc703bc043963f0abe7dea5
parent 587952 2782c77c195003cd4fb20642aa6b62492eb9f3f3
child 587954 b2f9093f6f11f04c1ef746eea4a39309363d2492
push id147566
push userjbauman@mozilla.com
push dateThu, 05 Aug 2021 15:50:30 +0000
treeherderautoland@bb07fcce3567 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel, necko-reviewers, preferences-reviewers, valentin, Gijs
bugs1682995
milestone92.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 1682995 - Enable AVIF support by default. r=jrmuizel,necko-reviewers,preferences-reviewers,valentin,Gijs Differential Revision: https://phabricator.services.mozilla.com/D121819
browser/base/content/test/favicons/accept.sjs
browser/components/preferences/tests/head.js
devtools/client/netmonitor/test/browser_net_copy_headers.js
image/test/mochitest/bug496292-1.sjs
modules/libpref/init/StaticPrefList.yaml
netwerk/test/mochitests/test_accept_header.html
toolkit/components/featuregates/Features.toml
toolkit/locales/en-US/toolkit/featuregates/features.ftl
--- a/browser/base/content/test/favicons/accept.sjs
+++ b/browser/base/content/test/favicons/accept.sjs
@@ -1,15 +1,15 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
 function handleRequest(request, response) {
   // Doesn't seem any way to get the value from prefs from here. :(
-  let expected = "image/webp,*/*";
+  let expected = "image/avif,image/webp,*/*";
   if (expected != request.getHeader("Accept")) {
     response.setStatusLine(request.httpVersion, 404, "Not Found");
     return;
   }
 
   response.setStatusLine(request.httpVersion, 302, "Moved Temporarily");
   response.setHeader("Location", "moz.png");
 }
--- a/browser/components/preferences/tests/head.js
+++ b/browser/components/preferences/tests/head.js
@@ -192,17 +192,17 @@ class DefinitionServer {
     const { primaryScheme, primaryHost, primaryPort } = this.server.identity;
     return `${primaryScheme}://${primaryHost}:${primaryPort}/definitions.json`;
   }
 
   addDefinition(overrides = {}) {
     const definition = {
       id: "test-feature",
       // These l10n IDs are just random so we have some text to display
-      title: "experimental-features-media-avif",
+      title: "experimental-features-media-jxl",
       description: "pane-experimental-description2",
       restartRequired: false,
       type: "boolean",
       preference: "test.feature",
       defaultValue: false,
       isPublic: false,
       ...overrides,
     };
--- a/devtools/client/netmonitor/test/browser_net_copy_headers.js
+++ b/devtools/client/netmonitor/test/browser_net_copy_headers.js
@@ -37,17 +37,17 @@ add_task(async function() {
 
   const selectedRequest = getSelectedRequest(store.getState());
   is(selectedRequest, requestItem, "Proper request is selected");
 
   const EXPECTED_REQUEST_HEADERS = [
     `${method} ${SIMPLE_URL} ${httpVersion}`,
     "Host: example.com",
     "User-Agent: " + navigator.userAgent + "",
-    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
     "Accept-Language: " + navigator.languages.join(",") + ";q=0.5",
     "Accept-Encoding: gzip, deflate",
     "Connection: keep-alive",
     "Upgrade-Insecure-Requests: 1",
     "Pragma: no-cache",
     "Cache-Control: no-cache",
   ].join("\n");
 
--- a/image/test/mochitest/bug496292-1.sjs
+++ b/image/test/mochitest/bug496292-1.sjs
@@ -4,17 +4,17 @@ function handleRequest(request, response
              .getService(Components.interfaces.nsIProperties)
              .get("CurWorkD", Components.interfaces.nsIFile);
 
   file.append("tests");
   file.append("image");
   file.append("test");
   file.append("mochitest");
 
-  if (request.getHeader("Accept") == "image/webp,*/*") {
+  if (request.getHeader("Accept") == "image/avif,image/webp,*/*") {
     file.append('blue.png');
   } else {
     file.append('red.png');
   }
   response.setStatusLine(request.httpVersion, 200, "OK");
   response.setHeader("Content-Type", "image/png", false);
   response.setHeader("Cache-Control", "no-cache", false);
 
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -5633,17 +5633,17 @@
   type: RelaxedAtomicBool
   value: true
   mirror: always
 
 # Whether we attempt to decode AVIF images or not.
 - name: image.avif.enabled
   type: RelaxedAtomicBool
 #if defined(MOZ_AV1)
-  value: false
+  value: true
 #else
   value: false
 #endif
   mirror: always
 
 # How strict we are in accepting/rejecting AVIF inputs according to whether they
 # conform to the specification
 # 0 = Permissive: accept whatever we can simply, unambiguously interpret
--- a/netwerk/test/mochitests/test_accept_header.html
+++ b/netwerk/test/mochitests/test_accept_header.html
@@ -21,27 +21,27 @@ function test_last_request_and_continue(
     next();
   });
 }
 
 function test_iframe() {
   let ifr = document.createElement("iframe");
   ifr.src = "test_accept_header.sjs?iframe";
   ifr.onload = () => {
-    test_last_request_and_continue("iframe", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
+    test_last_request_and_continue("iframe", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8");
   };
   document.body.appendChild(ifr);
 }
 
 function test_image() {
   let i = new Image();
   i.src = "test_accept_header.sjs?image";
   i.onload = function() {
     // Fetch spec says we should have: "image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5"
-    test_last_request_and_continue("image", "image/webp,*/*");
+    test_last_request_and_continue("image", "image/avif,image/webp,*/*");
   }
 }
 
 function test_style() {
   let head = document.getElementsByTagName("head")[0];
   let link = document.createElement("link");
   link.rel = "stylesheet";
   link.type = "text/css";
--- a/toolkit/components/featuregates/Features.toml
+++ b/toolkit/components/featuregates/Features.toml
@@ -15,27 +15,16 @@ description = "experimental-features-web
 description-links = {wikipedia = "https://en.wikipedia.org/wiki/Graphics%20Processing%20Unit", spec = "https://gpuweb.github.io/gpuweb/", bugzilla = "https://bugzilla.mozilla.org/show_bug.cgi?id=1602129"}
 restart-required = true
 preference = "dom.webgpu.enabled"
 type = "boolean"
 bug-numbers = [1602129]
 is-public = {default = false, nightly = true}
 default-value = false
 
-[media-avif]
-title = "experimental-features-media-avif"
-description = "experimental-features-media-avif-description"
-description-links = {bugzilla = "https://bugzilla.mozilla.org/show_bug.cgi?id=1443863"}
-restart-required = false
-preference = "image.avif.enabled"
-type = "boolean"
-bug-numbers = [1443863]
-is-public = {default = false, nightly = true}
-default-value = {default = false, nightly = false}
-
 [media-jxl]
 title = "experimental-features-media-jxl"
 description = "experimental-features-media-jxl-description"
 description-links = {bugzilla = "https://bugzilla.mozilla.org/show_bug.cgi?id=1539075"}
 restart-required = false
 preference = "image.jxl.enabled"
 type = "boolean"
 bug-numbers = [1539075]
--- a/toolkit/locales/en-US/toolkit/featuregates/features.ftl
+++ b/toolkit/locales/en-US/toolkit/featuregates/features.ftl
@@ -11,22 +11,16 @@ experimental-features-css-masonry-descri
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-web-gpu2 =
     .label = Web API: WebGPU
 experimental-features-web-gpu-description2 = This new API provides low-level support for performing computation and graphics rendering using the <a data-l10n-name="wikipedia">Graphics Processing Unit (GPU)</a> of the user’s device or computer. The <a data-l10n-name="spec">specification</a> is still a work-in-progress. See <a data-l10n-name="bugzilla">bug 1602129</a> for more details.
 
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
-experimental-features-media-avif =
-    .label = Media: AVIF
-experimental-features-media-avif-description = With this feature enabled, { -brand-short-name } supports the AV1 Image File (AVIF) format. This is a still image file format that leverages the capabilities of the AV1 video compression algorithms to reduce image size. See <a data-l10n-name="bugzilla">bug 1443863</a> for more details.
-
-# The title of the experiment should be kept in English as it may be referenced
-# by various online articles and is technical in nature.
 experimental-features-media-jxl =
     .label = Media: JPEG XL
 experimental-features-media-jxl-description = With this feature enabled, { -brand-short-name } supports the JPEG XL (JXL) format. This is an enhanced image file format that supports lossless transition from traditional JPEG files. See <a data-l10n-name="bugzilla">bug 1539075</a> for more details.
 
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-web-api-inputmode =
     .label = Web API: inputmode