Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update amphtml to 2202230359001 and add to latest-extension-versions #6956

Merged
merged 4 commits into from
Mar 4, 2022

Conversation

westonruter
Copy link
Member

@westonruter westonruter commented Mar 3, 2022

Previously #6803.

  • Run ./bin/amphtml-update.sh (lando ssh -c 'bash ./bin/amphtml-update.sh vendor/amphtml').
  • Examine diff for changelog.
  • Examine upstream diff to ensure nothing was missed.
  • Update spec generator as needed based on spec format changes.
  • Modify validating sanitizer based on changes to spec, if needed.
  • Add tests for key changes, if needed.

Changelog

Details

(
    PREV_VERSION=2112170012000;
    THIS_VERSION=2202230359001;
    git checkout $THIS_VERSION;
    git diff $PREV_VERSION...$THIS_VERSION -w -- build-system/compile/bundles.config.extensions.json build-system/compile/bundles.config.bento.json $( git ls-files | grep '.protoascii' );
    git checkout - > /dev/null
)
Diff 2112170012000...2202230359001
diff --git a/build-system/compile/bundles.config.bento.json b/build-system/compile/bundles.config.bento.json
new file mode 100644
index 0000000000..994e47e508
--- /dev/null
+++ b/build-system/compile/bundles.config.bento.json
@@ -0,0 +1,65 @@
+[
+  {
+    "name": "bento-accordion",
+    "version": "1.0",
+    "options": {
+      "hasCss": true,
+      "npm": true
+    }
+  },
+  {
+    "name": "bento-brightcove",
+    "version": "1.0",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "bento-dailymotion",
+    "version": "1.0",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "bento-jwplayer",
+    "version": "1.0",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "bento-video",
+    "version": "1.0",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "bento-video-iframe",
+    "version": "1.0",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "bento-vimeo",
+    "version": "1.0",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "bento-youtube",
+    "version": "1.0",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  }
+]
diff --git a/build-system/compile/bundles.config.extensions.json b/build-system/compile/bundles.config.extensions.json
index 85dffbb1ff..27b7aea878 100644
--- a/build-system/compile/bundles.config.extensions.json
+++ b/build-system/compile/bundles.config.extensions.json
@@ -1,15 +1,26 @@
 [
   {
     "name": "amp-3d-gltf",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-3q-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-access",
     "version": "0.1",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "amp-access-fewcents",
+    "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -20,17 +31,20 @@
       "0.1",
       "0.2"
     ],
+    "latestVersion": "0.2",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-access-poool",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-access-scroll",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -38,6 +52,7 @@
   {
     "name": "amp-accordion",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -45,85 +60,106 @@
   {
     "name": "amp-accordion",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
-      "hasCss": true,
-      "npm": true,
-      "bento": true
+      "hasCss": true
     }
   },
   {
     "name": "amp-action-macro",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-ad-custom",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-exit",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-network-adsense-impl",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-network-adzerk-impl",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-network-dianomi-impl",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-network-doubleclick-impl",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-network-fake-impl",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-network-nws-impl",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
+  },
+  {
+    "name": "amp-ad-network-smartadserver-impl",
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ad-network-valueimpression-impl",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-addthis",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-analytics",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-anim",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-animation",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-animation-polyfill",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-apester-media",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -131,25 +167,39 @@
   {
     "name": "amp-app-banner",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
+  {
+    "name": "amp-app-banner",
+    "version": "1.0",
+    "options": {
+      "hasCss": true,
+      "npm": true,
+      "bento": true
+    }
+  },
   {
     "name": "amp-audio",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-auto-ads",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-auto-lightbox",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-autocomplete",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -157,6 +207,7 @@
   {
     "name": "amp-base-carousel",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -164,6 +215,7 @@
   {
     "name": "amp-base-carousel",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -172,47 +224,54 @@
   },
   {
     "name": "amp-beopinion",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-bind",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-bodymovin-animation",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-brid-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-brightcove",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-brightcove",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
-      "hasCss": true,
-      "npm": true,
-      "bento": true
+      "hasCss": true
     }
   },
   {
     "name": "amp-byside-content",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-cache-url",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-call-tracking",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-carousel",
@@ -220,36 +279,51 @@
       "0.1",
       "0.2"
     ],
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-connatix-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-consent",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-crypto-polyfill",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-dailymotion",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
+  },
+  {
+    "name": "amp-dailymotion",
+    "version": "1.0",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
   },
   {
     "name": "amp-date-countdown",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-date-countdown",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "npm": true,
       "bento": true,
@@ -258,11 +332,13 @@
   },
   {
     "name": "amp-date-display",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-date-display",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "npm": true,
       "bento": true,
@@ -272,6 +348,7 @@
   {
     "name": "amp-date-picker",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -279,21 +356,25 @@
   {
     "name": "amp-delight-player",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-dynamic-css-classes",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-embedly-card",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-embedly-card",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -305,15 +386,18 @@
     "version": [
       "0.1",
       "1.0"
-    ]
+    ],
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-facebook",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-facebook",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -322,19 +406,23 @@
   },
   {
     "name": "amp-facebook-comments",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-facebook-like",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-facebook-page",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-fit-text",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -342,6 +430,7 @@
   {
     "name": "amp-fit-text",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -350,60 +439,85 @@
   },
   {
     "name": "amp-font",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-form",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-fx-collection",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-fx-flying-carpet",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-geo",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-gfycat",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-gist",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
+  },
+  {
+    "name": "amp-gist",
+    "version": "1.0",
+    "options": {
+      "hasCss": true,
+      "bento": true,
+      "npm": true
+    }
   },
   {
     "name": "amp-google-document-embed",
+    "version": "0.1",
+    "latestVersion": "0.1"
+  },
+  {
+    "name": "amp-google-read-aloud-player",
     "version": "0.1"
   },
   {
     "name": "amp-gwd-animation",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-hulu",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-iframe",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-iframe",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -412,15 +526,18 @@
   },
   {
     "name": "amp-iframely",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-ima-video",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-image-lightbox",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -428,6 +545,7 @@
   {
     "name": "amp-image-slider",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -435,17 +553,20 @@
   {
     "name": "amp-image-viewer",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-imgur",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-inline-gallery",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -453,6 +574,7 @@
   {
     "name": "amp-inline-gallery",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -461,11 +583,13 @@
   },
   {
     "name": "amp-inputmask",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-instagram",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -473,6 +597,7 @@
   {
     "name": "amp-instagram",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -481,36 +606,41 @@
   },
   {
     "name": "amp-install-serviceworker",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-intersection-observer-polyfill",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-izlesene",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-jwplayer",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-jwplayer",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
-      "hasCss": true,
-      "bento": true,
-      "npm": true
+      "hasCss": true
     }
   },
   {
     "name": "amp-kaltura-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-lightbox",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -518,6 +648,7 @@
   {
     "name": "amp-lightbox",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -527,6 +658,7 @@
   {
     "name": "amp-lightbox-gallery",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -534,6 +666,7 @@
   {
     "name": "amp-lightbox-gallery",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -542,11 +675,13 @@
   },
   {
     "name": "amp-link-rewriter",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-list",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -554,6 +689,7 @@
   {
     "name": "amp-live-list",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -561,6 +697,7 @@
   {
     "name": "amp-loader",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -568,6 +705,7 @@
   {
     "name": "amp-mathml",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -575,6 +713,7 @@
   {
     "name": "amp-mathml",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "bento": true,
@@ -584,36 +723,43 @@
   {
     "name": "amp-mega-menu",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-megaphone",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-minute-media-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-mowplayer",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-mraid",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-mustache",
     "version": [
       "0.1",
       "0.2"
-    ]
+    ],
+    "latestVersion": "0.2"
   },
   {
     "name": "amp-nested-menu",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -624,36 +770,43 @@
       "0.1",
       "1.0"
     ],
+    "latestVersion": "1.0",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-nexxtv-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-o2-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-onetap-google",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-ooyala-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-orientation-observer",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-pan-zoom",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -661,6 +814,7 @@
   {
     "name": "amp-pinterest",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -668,52 +822,63 @@
   {
     "name": "amp-playbuzz",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-position-observer",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-powr-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-reach-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-recaptcha-input",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-redbull-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-reddit",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-render",
-    "version": "1.0"
+    "version": "1.0",
+    "latestVersion": "1.0"
   },
   {
     "name": "amp-resize-observer-polyfill",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-riddle-quiz",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-script",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -721,6 +886,7 @@
   {
     "name": "amp-selector",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -728,6 +894,7 @@
   {
     "name": "amp-selector",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -737,6 +904,7 @@
   {
     "name": "amp-shadow-dom-polyfill",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "wrapper": "none"
     }
@@ -747,6 +915,7 @@
       "0.1",
       "0.2"
     ],
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -754,6 +923,7 @@
   {
     "name": "amp-sidebar",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -762,21 +932,25 @@
   },
   {
     "name": "amp-skimlinks",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "// 1": "`amp-slides` is deprecated",
     "// 2": "Please use `<amp-carousel type=slides>` instead.",
     "name": "amp-slides",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-smartlinks",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-social-share",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -784,6 +958,7 @@
   {
     "name": "amp-social-share",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -792,11 +967,13 @@
   },
   {
     "name": "amp-soundcloud",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-soundcloud",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -805,15 +982,18 @@
   },
   {
     "name": "amp-springboard-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-standalone",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-sticky-ad",
     "version": "1.0",
+    "latestVersion": "1.0",
     "options": {
       "hasCss": true
     }
@@ -821,6 +1001,7 @@
   {
     "name": "amp-story",
     "version": "1.0",
+    "latestVersion": "1.0",
     "options": {
       "hasCss": true
     }
@@ -828,6 +1009,7 @@
   {
     "name": "amp-story-360",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -835,17 +1017,20 @@
   {
     "name": "amp-story-auto-ads",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-story-auto-analytics",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-story-captions",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -853,6 +1038,7 @@
   {
     "name": "amp-story-dev-tools",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -860,6 +1046,7 @@
   {
     "name": "amp-story-education",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -867,6 +1054,14 @@
   {
     "name": "amp-story-interactive",
     "version": "0.1",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "amp-story-page-attachment",
+    "version": "0.1",
     "options": {
       "hasCss": true
     }
@@ -874,6 +1069,7 @@
   {
     "name": "amp-story-panning-media",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -881,6 +1077,7 @@
   {
     "name": "amp-story-player",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -896,6 +1093,14 @@
   {
     "name": "amp-story-shopping",
     "version": "0.1",
+    "latestVersion": "0.1",
+    "options": {
+      "hasCss": true
+    }
+  },
+  {
+    "name": "amp-story-subscriptions",
+    "version": "0.1",
     "options": {
       "hasCss": true
     }
@@ -903,6 +1108,7 @@
   {
     "name": "amp-stream-gallery",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -910,6 +1116,7 @@
   {
     "name": "amp-stream-gallery",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -919,6 +1126,7 @@
   {
     "name": "amp-subscriptions",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -926,6 +1134,7 @@
   {
     "name": "amp-subscriptions-google",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
@@ -933,17 +1142,20 @@
   {
     "name": "amp-tiktok",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-timeago",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-timeago",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -953,17 +1165,20 @@
   {
     "name": "amp-truncate-text",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-twitter",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-twitter",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -973,46 +1188,49 @@
   {
     "name": "amp-user-notification",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-video",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-video",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
-      "hasCss": true,
-      "npm": true,
-      "bento": true
+      "hasCss": true
     }
   },
   {
     "name": "amp-video-docking",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-video-iframe",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-video-iframe",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
-      "hasCss": true,
-      "npm": true,
-      "bento": true
+      "hasCss": true
     }
   },
   {
     "name": "amp-viewer-integration",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "// 1": "The viewer integration code needs to run asap, so that viewers",
       "// 2": "can influence document state asap. Otherwise the document may ",
@@ -1023,43 +1241,49 @@
   },
   {
     "name": "amp-vimeo",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-vimeo",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
-      "hasCss": true,
-      "npm": true,
-      "bento": true
+      "hasCss": true
     }
   },
   {
     "name": "amp-vine",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-viqeo-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-vk",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-web-push",
     "version": "0.1",
+    "latestVersion": "0.1",
     "options": {
       "hasCss": true
     }
   },
   {
     "name": "amp-wistia-player",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-wordpress-embed",
     "version": "1.0",
+    "latestVersion": "1.0",
     "options": {
       "hasCss": true,
       "npm": true,
@@ -1068,19 +1292,20 @@
   },
   {
     "name": "amp-yotpo",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-youtube",
-    "version": "0.1"
+    "version": "0.1",
+    "latestVersion": "0.1"
   },
   {
     "name": "amp-youtube",
     "version": "1.0",
+    "latestVersion": "0.1",
     "options": {
-      "hasCss": true,
-      "npm": true,
-      "bento": true
+      "hasCss": true
     }
   }
 ]
diff --git a/extensions/amp-access-fewcents/validator-amp-access-fewcents.protoascii b/extensions/amp-access-fewcents/validator-amp-access-fewcents.protoascii
new file mode 100644
index 0000000000..34cbfcc3bb
--- /dev/null
+++ b/extensions/amp-access-fewcents/validator-amp-access-fewcents.protoascii
@@ -0,0 +1,11 @@
+tags: {  # amp-access-fewcents
+  html_format: AMP
+  tag_name: "SCRIPT"
+  requires_extension: "amp-access"
+  extension_spec: {
+    name: "amp-access-fewcents"
+    version: "0.1"
+    requires_usage: NONE
+  }
+  attr_lists: "common-extension-attrs"
+}
diff --git a/extensions/amp-base-carousel/validator-amp-base-carousel.protoascii b/extensions/amp-base-carousel/validator-amp-base-carousel.protoascii
index 8a597cdff9..f6c9542117 100644
--- a/extensions/amp-base-carousel/validator-amp-base-carousel.protoascii
+++ b/extensions/amp-base-carousel/validator-amp-base-carousel.protoascii
@@ -162,6 +162,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-BASE-CAROUSEL lightbox [lightbox-exclude]"
+  descriptive_name: "amp-base-carousel [lightbox-exclude] child"
   attrs: {
     name: "lightbox-exclude"
     mandatory: true
@@ -171,6 +172,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-BASE-CAROUSEL lightbox [child]"
+  descriptive_name: "amp-base-carousel [lightbox-thumbnail-id] child"
   attrs: {
     name: "lightbox-thumbnail-id"
     value_regex_casei: "^[a-z][a-z\\d_-]*"
diff --git a/extensions/amp-carousel/validator-amp-carousel.protoascii b/extensions/amp-carousel/validator-amp-carousel.protoascii
index b5b4aad540..e983419d14 100644
--- a/extensions/amp-carousel/validator-amp-carousel.protoascii
+++ b/extensions/amp-carousel/validator-amp-carousel.protoascii
@@ -119,6 +119,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-CAROUSEL lightbox [lightbox-exclude]"
+  descriptive_name: "amp-carousel lightbox [lightbox-exclude] child"
   attrs: {
     name: "lightbox-exclude"
     mandatory: true
@@ -128,6 +129,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-CAROUSEL lightbox [child]"
+  descriptive_name: "amp-carousel lightbox [lightbox-thumbnail-id] child"
   attrs: {
     name: "lightbox-thumbnail-id"
     value_regex_casei: "^[a-z][a-z\\d_-]*"
diff --git a/extensions/amp-dailymotion/validator-amp-dailymotion.protoascii b/extensions/amp-dailymotion/validator-amp-dailymotion.protoascii
index 336b9bd8e4..e9e3b6a28e 100644
--- a/extensions/amp-dailymotion/validator-amp-dailymotion.protoascii
+++ b/extensions/amp-dailymotion/validator-amp-dailymotion.protoascii
@@ -1,8 +1,24 @@
-tags: {  # amp-dailymotion
+tags: {  # amp-dailymotion 1.0
   html_format: AMP
   tag_name: "SCRIPT"
+  satisfies: "amp-dailymotion 1.0"
+  excludes: "amp-dailymotion 0.1"
   extension_spec: {
     name: "amp-dailymotion"
+    version_name: "v1.0"
+    version: "1.0"
+    bento_supported_version: "1.0"
+  }
+  attr_lists: "common-extension-attrs"
+}
+tags: {  # amp-dailymotion 0.1 and latest
+  html_format: AMP
+  tag_name: "SCRIPT"
+  satisfies: "amp-dailymotion 0.1"
+  excludes: "amp-dailymotion 1.0"
+  extension_spec: {
+    name: "amp-dailymotion"
+    version_name: "v0.1"
     version: "0.1"
     version: "latest"
     requires_usage: EXEMPTED
diff --git a/extensions/amp-google-read-aloud-player/validator-amp-google-read-aloud-player.protoascii b/extensions/amp-google-read-aloud-player/validator-amp-google-read-aloud-player.protoascii
new file mode 100644
index 0000000000..99fd261c12
--- /dev/null
+++ b/extensions/amp-google-read-aloud-player/validator-amp-google-read-aloud-player.protoascii
@@ -0,0 +1,73 @@
+tags: {  # amp-google-read-aloud-player
+  html_format: AMP
+  tag_name: "SCRIPT"
+  extension_spec: {
+    name: "amp-google-read-aloud-player"
+    version: "0.1"
+    version: "latest"
+  }
+  attr_lists: "common-extension-attrs"
+}
+tags: {  # <amp-google-read-aloud-player>
+  html_format: AMP
+  tag_name: "AMP-GOOGLE-READ-ALOUD-PLAYER"
+  requires_extension: "amp-google-read-aloud-player"
+  attrs: {
+    name: "data-api-key"
+    mandatory: true
+  }
+  attrs: {
+    name: "data-tracking-ids"
+    mandatory: true;
+    value_regex_casei: "^UA-\\d+-\\d+(\\s*,\\s*UA-\\d+-\\d+)*$";
+  }
+  attrs: {
+    name: "data-voice"
+    mandatory: true;
+  }
+  attrs: {
+    name: "data-url"
+    value_url {
+      protocol: 'https';
+      allow_relative: false;
+    }
+  }
+  attrs: {
+    name: "data-speakable"
+    value: ""
+  }
+  attrs: {
+    name: "data-call-to-action-label"
+  }
+  attrs: {
+    name: "data-locale"
+    value_regex_casei: "[a-z]{2}";
+  }
+  attrs: {
+    name: "data-intro"
+    value_url {
+      protocol: 'https';
+      allow_relative: false;
+    }
+  }
+  attrs: {
+    name: "data-outro"
+    value_url {
+      protocol: 'https';
+      allow_relative: false;
+    }
+  }
+  attrs: {
+    name: "data-ad-tag-url"
+    value_url {
+      protocol: 'https';
+      allow_relative: false;
+    }
+  }
+  spec_url: "https://amp.dev/documentation/components/amp-google-read-aloud-player"
+  attr_lists: "extended-amp-global"
+  amp_layout: {
+    supported_layouts: FIXED
+    supported_layouts: FIXED_HEIGHT
+  }
+}
diff --git a/extensions/amp-live-list/validator-amp-live-list.protoascii b/extensions/amp-live-list/validator-amp-live-list.protoascii
index 1329ddfbea..d3d0210eb2 100644
--- a/extensions/amp-live-list/validator-amp-live-list.protoascii
+++ b/extensions/amp-live-list/validator-amp-live-list.protoascii
@@ -56,7 +56,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name : "AMP-LIVE-LIST [update]"
-  descriptive_name : "amp-live-list [update]"
+  descriptive_name : "amp-live-list [update] child"
   attrs: {
     name: "update"
     mandatory: true
@@ -67,7 +67,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-LIVE-LIST [items]"
-  descriptive_name : "amp-live-list [items]"
+  descriptive_name : "amp-live-list [items] child"
   attrs: {
     name: "items"
     mandatory: true
@@ -81,7 +81,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name : "AMP-LIVE-LIST [pagination]"
-  descriptive_name : "amp-live-list [pagination]"
+  descriptive_name : "amp-live-list [pagination] child"
   attrs: {
     name: "pagination"
     mandatory: true
@@ -92,7 +92,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name : "AMP-LIVE-LIST [items] item"
-  descriptive_name : "amp-live-list [items] item"
+  descriptive_name : "amp-live-list [data-sort-time] child"
   attrs: {
     name: "data-sort-time"
     mandatory: true
diff --git a/extensions/amp-mustache/validator-amp-mustache.protoascii b/extensions/amp-mustache/validator-amp-mustache.protoascii
index eb09c06455..ae755d8a6b 100644
--- a/extensions/amp-mustache/validator-amp-mustache.protoascii
+++ b/extensions/amp-mustache/validator-amp-mustache.protoascii
@@ -219,7 +219,8 @@ tags: {
   disallowed_ancestor: "FORM DIV [submit-error][template]"
   disallowed_ancestor: "FORM DIV [submitting][template]"
   disallowed_ancestor: "FORM DIV [verify-error][template]"
-  # AMP4EMAIL addition.
+  # AMP4EMAIL addition. See the comment for AMP4EMAIL for the spec named
+  # "FORM DIV [submitting][template]".
   disallowed_ancestor: "FORM DIV [submitting]"
   requires_extension: "amp-mustache"
   attrs: {
@@ -536,7 +537,8 @@ tags: {
   disallowed_ancestor: "FORM DIV [submit-error][template]"
   disallowed_ancestor: "FORM DIV [submitting][template]"
   disallowed_ancestor: "FORM DIV [verify-error][template]"
-  # AMP4EMAIL addition.
+  # AMP4EMAIL addition. See the comment for AMP4EMAIL for the spec named
+  # "FORM DIV [submitting][template]".
   disallowed_ancestor: "FORM DIV [submitting]"
   requires_extension: "amp-mustache"
   attrs: {
diff --git a/extensions/amp-next-page/validator-amp-next-page.protoascii b/extensions/amp-next-page/validator-amp-next-page.protoascii
index 9a21938fbe..e1392f3a7f 100644
--- a/extensions/amp-next-page/validator-amp-next-page.protoascii
+++ b/extensions/amp-next-page/validator-amp-next-page.protoascii
@@ -27,6 +27,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-NEXT-PAGE > [separator]"
+  descriptive_name : "amp-next-page [separator] child"
   mandatory_parent: "AMP-NEXT-PAGE"
   attrs: {
     name: "separator"
@@ -37,6 +38,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-NEXT-PAGE > [recommendation-box]"
+  descriptive_name : "amp-next-page [recommendation-box] child"
   mandatory_parent: "AMP-NEXT-PAGE"
   attrs: {
     name: "recommendation-box"
@@ -47,6 +49,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-NEXT-PAGE > [footer]"
+  descriptive_name : "amp-next-page [footer] child"
   mandatory_parent: "AMP-NEXT-PAGE"
   attrs: {
     name: "footer"
diff --git a/extensions/amp-render/validator-amp-render.protoascii b/extensions/amp-render/validator-amp-render.protoascii
index abe1ef597f..f754227a05 100644
--- a/extensions/amp-render/validator-amp-render.protoascii
+++ b/extensions/amp-render/validator-amp-render.protoascii
@@ -5,7 +5,6 @@ tags: {  # amp-render
     name: "amp-render"
     version: "1.0"
     version: "latest"
-    bento_supported_version: "1.0"
   }
   attr_lists: "common-extension-attrs"
 }
diff --git a/extensions/amp-selector/validator-amp-selector.protoascii b/extensions/amp-selector/validator-amp-selector.protoascii
index 2dd9d59312..aa455fcfcd 100644
--- a/extensions/amp-selector/validator-amp-selector.protoascii
+++ b/extensions/amp-selector/validator-amp-selector.protoascii
@@ -99,6 +99,7 @@ tags: {
   html_format: AMP4EMAIL
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-SELECTOR option"
+  descriptive_name : "amp-selector [option] descendant"
   attrs: {
     name: "disabled"
     value: ""
@@ -119,6 +120,9 @@ tags: {
   html_format: AMP4EMAIL
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-SELECTOR child"
+  descriptive_name : "amp-selector child"
+  # This is used recursively so that the "AMP-SELECTOR option" can be any
+  # depth below the main <amp-sepector>:
   reference_points: {
     tag_spec_name: "AMP-SELECTOR option"
   }
diff --git a/extensions/amp-story-subscriptions/validator-amp-story-subscriptions.protoascii b/extensions/amp-story-subscriptions/validator-amp-story-subscriptions.protoascii
new file mode 100644
index 0000000000..b9d77326a2
--- /dev/null
+++ b/extensions/amp-story-subscriptions/validator-amp-story-subscriptions.protoascii
@@ -0,0 +1,18 @@
+tags: {  # amp-story-subscriptions
+  html_format: AMP
+  tag_name: "SCRIPT"
+  extension_spec: {
+    name: "amp-story-subscriptions"
+    version: "0.1"
+  }
+  attr_lists: "common-extension-attrs"
+}
+tags: {  # <amp-story-subscriptions>
+  html_format: AMP
+  tag_name: "AMP-STORY-SUBSCRIPTIONS"
+  requires_extension: "amp-story-subscriptions"
+  attr_lists: "extended-amp-global"
+  amp_layout: {
+    supported_layouts: CONTAINER
+  }
+}
diff --git a/extensions/amp-story/validator-amp-story.protoascii b/extensions/amp-story/validator-amp-story.protoascii
index 3c83d36ce1..2de8d71ae0 100644
--- a/extensions/amp-story/validator-amp-story.protoascii
+++ b/extensions/amp-story/validator-amp-story.protoascii
@@ -182,6 +182,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-STORY-GRID-LAYER default"
+  descriptive_name: "amp-story-grid-layer child"
   attrs: {
     name: "align-content"
     value: "center"
@@ -299,6 +300,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-STORY-GRID-LAYER animate-in"
+  descriptive_name: "amp-story-grid-layer [animate-in] child"
   # Attribute grid-area is not allowed in this tag. That's what makes this
   # reference point different than the grid-area reference point.
   attrs: {
@@ -520,6 +522,7 @@ tags: {
   html_format: AMP
   tag_name: "$REFERENCE_POINT"
   spec_name: "AMP-STORY-CTA-LAYER animate-in"
+  descriptive_name: "amp-story-cta-layer [animate-in] child"
   attrs: {
     name: "animate-in"
     value: "drop"
diff --git a/validator/validator-css.protoascii b/validator/validator-css.protoascii
index 9128f391a8..a888200e82 100644
--- a/validator/validator-css.protoascii
+++ b/validator/validator-css.protoascii
@@ -464,16 +464,7 @@ declaration_list {
   declaration: { name: "pitch" }
   declaration: { name: "pitch-range" }
   declaration: { name: "place-items" }
-  # CSS property `position` with values `fixed` and `sticky` are not allowed.
-  # From https://www.w3schools.com/cssref/pr_class_position.asp
-  declaration: {
-    name: "position"
-    value_casei: "absolute"
-    value_casei: "inherit"
-    value_casei: "initial"
-    value_casei: "relative"
-    value_casei: "static"
-  }
+  declaration: { name: "position" }
   declaration: { name: "quotes" }
   declaration: { name: "resize" }
   declaration: { name: "richness" }
@@ -1364,6 +1355,7 @@ tags: {  # <style amp-noscript>, [AMP]
     "https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#maximum-size"
 
     css_spec: {
+      allow_important: true
       at_rule_spec: {
          name: 'media'
          media_query_spec: {
diff --git a/validator/validator-main.protoascii b/validator/validator-main.protoascii
index 3869dc6503..c3b93c9496 100644
--- a/validator/validator-main.protoascii
+++ b/validator/validator-main.protoascii
@@ -1377,6 +1377,8 @@ tags: {
       protocol: "intent"
       # Line messenger (https://media.line.me/howto/en/)
       protocol: "line"
+      # (https://docs.microsoft.com/en-us/windows/uwp/launch-resume/launch-default-app#microsoft-edge-uri-scheme)
+      protocol: "microsoft-edge"
       protocol: "skype"
       protocol: "sms"
       protocol: "snapchat"
@@ -1850,6 +1852,9 @@ tags: {
     name: "decoding"
     value_casei: "async"
   }
+  attrs: {
+    name: "sizes"
+  }
   attr_lists: "img-attrs"
   attr_lists: "mandatory-src-or-srcset"
 }
@@ -1900,6 +1905,9 @@ tags: {
     name: "decoding"
     value_casei: "async"
   }
+  attrs: {
+    name: "sizes"
+  }
   attr_lists: "img-attrs"
   attr_lists: "mandatory-src-or-srcset"
 }
@@ -2934,6 +2942,35 @@ tags: {
   mandatory_ancestor: "FORM [method=POST]"
   spec_url: "https://amp.dev/documentation/components/amp-form/"
 }
+tags: {
+  html_format: AMP
+  tag_name: "INPUT"
+  spec_name: "INPUT [type=image]"
+  attrs: {
+    name: "type"
+    value_casei: "image"
+    mandatory: true
+    dispatch_key: NAME_VALUE_DISPATCH
+  }
+  attrs: {
+    disabled_by: "amp4email"
+    name: "[type]"
+  }
+  attrs: {
+    name: "src"
+    mandatory: true
+    value_url: {
+      protocol: "data"
+      protocol: "http"
+      protocol: "https"
+    }
+    disallowed_value_regex: "__amp_source_origin"
+  }
+  attr_lists: "input-common-attr"
+  attr_lists: "name-attr"
+  mandatory_ancestor: "FORM [method=POST]"
+  spec_url: "https://amp.dev/documentation/components/amp-form/"
+}
 # 4.10.6 The button element
 tags: {
   html_format: AMP
@@ -3869,6 +3906,13 @@ tags: {  # <amp-img>
   attrs: { name: "alt" }
   attrs: { name: "attribution" }
   attrs: { name: "crossorigin" }
+  # https://developers.google.com/web/updates/2019/02/priority-hints
+  attrs: {
+    name: "importance"
+    value_casei: "high"
+    value_casei: "low"
+    value_casei: "auto"
+  }
   attrs: { name: "object-fit" }
   attrs: { name: "object-position" }
   attrs: { name: "placeholder" }
@@ -3908,6 +3952,13 @@ tags: {  # <amp-img i-amphtml-ssr>
   }
   attrs: { name: "alt" }
   attrs: { name: "attribution" }
+  # https://developers.google.com/web/updates/2019/02/priority-hints
+  attrs: {
+    name: "importance"
+    value_casei: "high"
+    value_casei: "low"
+    value_casei: "auto"
+  }
   attrs: { name: "object-fit" }
   attrs: { name: "object-position" }
   attrs: { name: "placeholder" }
@@ -4108,6 +4159,13 @@ tags: {
   attrs: { name: "alt" }
   attrs: { name: "attribution" }
   attrs: { name: "height" }
+  # https://developers.google.com/web/updates/2019/02/priority-hints
+  attrs: {
+    name: "importance"
+    value_casei: "high"
+    value_casei: "low"
+    value_casei: "auto"
+  }
   attrs: { name: "object-fit" }
   attrs: { name: "object-position" }
   attrs: { name: "referrerpolicy" }
@@ -5160,6 +5218,7 @@ attr_lists: {
   attrs: { name: "aria-labelledby" }
   attrs: { name: "aria-level" }
   attrs: { name: "aria-live" }
+  attrs: { name: "aria-modal" }
   attrs: { name: "aria-multiline" }
   attrs: { name: "aria-multiselectable" }
   attrs: { name: "aria-orientation" }

@westonruter westonruter added this to the v2.2.2 milestone Mar 3, 2022
@westonruter westonruter marked this pull request as ready for review March 4, 2022 00:42
@github-actions
Copy link
Contributor

github-actions bot commented Mar 4, 2022

Plugin builds for fab6569 are ready 🛎️!

@westonruter
Copy link
Member Author

@swissspidy FYI: amp-story-subscriptions is included here.

@westonruter westonruter merged commit 7e2c58f into develop Mar 4, 2022
@westonruter westonruter deleted the update/amphtml-2202230359001 branch March 4, 2022 00:58
@westonruter westonruter added the Changelogged Whether the issue/PR has been added to release notes. label Apr 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelogged Whether the issue/PR has been added to release notes. Validation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant