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

amp-script: sandboxed implies nodom #34025

Merged
merged 5 commits into from
May 13, 2021
Merged

Conversation

samouri
Copy link
Member

@samouri samouri commented Apr 27, 2021

summary
There are complications that could arise when trying to use sandboxed amp-script without nodom.

  • Any exported functions used would hang until the amp-script was close enough to viewport to be laid out.
  • Potential unpleasant ramifications for allowing 3p scripts to have control over part of the DOM.

This PR skirts the whole issue for now by forcing nodom for any amp-script using sandboxed mode, and we can revisit this later. It is easier to loosen restrictions than to lock them down.

@samouri samouri self-assigned this Apr 28, 2021
@samouri samouri marked this pull request as ready for review May 12, 2021 18:39
Copy link
Contributor

@rcebulko rcebulko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but probably get buy-in from someone more familiar with amp-script / sandboxed to be sure

extensions/amp-script/0.1/amp-script.js Outdated Show resolved Hide resolved
@samouri samouri merged commit 162d754 into ampproject:main May 13, 2021
vincentditlevinz added a commit to teads-graveyard/amphtml that referenced this pull request Jun 1, 2021
* 📦 Update dependency @types/node to v14.14.44 (ampproject#34219)

* 📦 Update dependency eslint-plugin-jsdoc to v33.1.0 (ampproject#34225)

* 📦 Update dependency puppeteer to v9.1.1 (ampproject#34226)

* 🐛 amp-youtube 1.0: forward mute method (ampproject#34221)

Previous oversight.

* ✅ Validator rules for amp-vimeo 1.0 (ampproject#34199)

* ✨ added support for consent for Taboola amp-analytics (ampproject#34166)

* added support for consent for Taboola amp-analytics

* fixed the consent substitution variable name

* fixed the consent substitution name

* fixed unit tests

* Types: fix all type parse errors and ensure no new ones crop up (ampproject#34105)

* Types: fix all type parse errors

* self nits

* run prettier

* fix a new parse error, make low-bar target

* Update panning-media-docs (ampproject#34236)

* resources: rename V1 to R1, to clear up ambiguity (ampproject#34227)

* allow http and relative for amp-story-page-attachment (ampproject#34234)

* ♻️  Types: opt for null shorthand (ampproject#34233)

* types: shorthand for |null

* a few more

* fix test

* 📦 Update core dependencies (ampproject#34146)

Co-authored-by: Raghu Simha <[email protected]>

* ♻️ Enable type-checking src/polyfills in CI (ampproject#34239)

* Clean up directory globs

* Move src/core srcs+externs to const arrays

* Exclude fetch/get-bounding-client-rect for now

* Provide extern for promise-pjs polyfill

* Fix types and add comments in abort-controller

* Fix types and add comments in intersection-observer-stub

* Remove @Suppress {checkTypes} from promise

* Fix @this type for document.contains() polyfill

* Remove unneeded typecast to unknown

* Fix types and add comments in resize-observer-stub

* Fix types and add comments in custom-elements

* Add !

* Fix types in get-bounding-client-rect

* Add more !

* Lint fixes

* Allow custom-element.externs.js to use window

* Revert no-op JSDoc changes

* Remove connected callback externs and typecast instead

* Clean up typedefs for observer stubs

* Fix typo

* Dedupe typedef

* 🐛 amp-brightcove: improve autoplay handling (ampproject#34207)

Following an update to the Brightcove Player's AMP support plugin, this update makes sure autoplay is handled correctly in all cases.

- Removes any autoplay query param, including the interim autoplay=false
- Distinguishes play messages sent through postmessage which are autoplay requests

* ♻️📖 Provide a Storybook wrapper to execute video actions (ampproject#34222)

Extract a wrapper to add video action buttons to an AMP Storybook.

https://user-images.githubusercontent.com/254946/117086191-c4e6d700-ad00-11eb-95ff-f9e3b51caf2b.png

* [bento][npm] Add package.json for all bento components with npm definition (ampproject#34087)

* Add package.json for all bento components with npm definition

* Add newline at end of file

* Fix indentation

* Newline at end of file

* Fix newline

* Add recently published timeago, update NPM definitions

* Remove package for render, sidebar, twitter which are not published

* Update version for amp-timeago package

* ♻️ Name amp-ima-video methods uniformly for Bento (ampproject#34246)

Rename `postMessage` method names so that they're uniform with `VideoIframe`'s. This simplifies the upcoming Bento implementation.

* Remove consent storage limit for viewer (ampproject#34054)

* 🐛 Fix bad type (ampproject#34254)

* Noticed these changes while refactoring on another branch (ampproject#34250)

* update amp-script console error to mention data-ampdevmode (ampproject#34235)

* ♻️ Move `imaVideo.js` so it can be owned by Bento and Components (ampproject#34247)

* ♻️ 📖 Global dep-check rule for Bento video (ampproject#34252)

We can more simply allow `extensions/**` files to import specific files from `amp-video/1.0`. It should be ok in any case.

* 🏗  runtime: allow for iterator polyfill (ampproject#34249)

* runtime: allow for iterator polyfill

* Empty commit

* lint!

* Bento: Prepare Twitter Preact implementation (ampproject#34194)

* Do not override user given height until message gives one

* Support tweetid directly

* Support bootstrap directly

* Add unit tests

* Support momentid directly

* Add Storybook samples for additional options

* Use Sinon syntax for spying on setter

* Log output when onError set (ampproject#34259)

* ✅ ♻️  `<amp-ima-video>` test is not an AMP element test (ampproject#34230)

The existing file `test-amp-ima-video.js` is a misnomer since it does not actually test the `<amp-ima-video>` element, only what it loads inside the frame.

Accordingly, rename `test-amp-ima-video.js` as `test-ima-video-internal.js`. Also remove stubs specific to the AMP runtime, since it doesn't run inside the iframe.

* 🚀 Remove Error classification (ampproject#34257)

* Remove Error classification

* Left over let declaration

* Remove jse error field

* 🏗  amp-subscriptions* owners update (ampproject#34261)

* Update OWNERS

* Update OWNERS

* SwG Release 5/5/21 (ampproject#34238)

* 🏗️ Simplify enabling npm bundle for components (ampproject#34262)

* Simplify enabling npm bundle

* %s/const/let/

* 🏗 Add `wg-components` as bundle size approver of dist.3p/ (ampproject#34267)

* ♻️  refactor: move builtin components to their own folders (ampproject#34237)

* refactor: move builtin components to their own folders. organization++

* fix imports / and references in md files.

* closure glob include

* ✨ [Amp story] Add `amp-story-page-outlink` component (ampproject#34171)

* Fix conflicts.

* Advancement, test and comment.

* querySelector

* Fix conflicts.

* Validator, component and template.

* Fix merge conflicts.

* Remove duplicate code.

* Outlink validator rule.

* Alphabetize

* amp-twitter: Add Storybook samples (ampproject#34273)

* Add comprehensive Storybook samples for amp-twitter

* Add deleted and invalid tweet-id cases

* Name exported functions in PascalCase

* 📖 Update LTS release docs to indicate supported AMP flavors (ampproject#34258)

* Update lts-release.md

* Update lts-release.md

* 📦 Update dependency mocha to v8.4.0 (ampproject#34270)

* 🏗 Disable JSDoc requirement on Storybook files (ampproject#34255)

Disable `require-jsdoc` since it auto-fixes, and we don't need JSDoc in these locations.

We preserve the following rules since they ensure correctness, like type-check already does.

jsdoc/check-param-names
jsdoc/check-tag-names
jsdoc/check-types
jsdoc/require-param
jsdoc/require-param-name
jsdoc/require-param-type
jsdoc/require-returns
jsdoc/require-returns-type

* 📦 Update dependency google-closure-compiler to v20210505 (ampproject#34269)

* 📦 Update dependency @ampproject/worker-dom to v0.29.3 (ampproject#34242)

* 📦 Update core devDependencies (ampproject#34240)

* 🖍 [Amp story] [Page attachments] Style adjustments (ampproject#34275)

* SVG edit

* SVG adjustment.

* Drop shadows.

* Prevent clipping of decenders. Drop shadow.

* ♻️  [bento][amp-stream-gallery] Split component files for NPM Packaging (ampproject#34208)

* Split amp-stream-gallery

* Rename jss and type files

* Review comments

* Add package.json file

* Fix indentation

* Update npm and latest version in config

* Update dependency config

* Update zindex doc

* Update npm definition

* [bento][amp-sidebar] SSR compatible design for Sidebar Toolbar (ampproject#34158)

* SSR compatible design for Toolbar

* Various code review comments from Caroline

* Additional review comments

* Review comments

* Remove unused import

* Add sanitation

* Update sanitization method

* Update return type for helper function

* Remove truthiness checks that are redundant

* Add unit tests

* ♻️ 🏗  Fix type errors in runtime-test-base (ampproject#34161)

* fix types in runtime-test-base

* ♻️  🏗  Create proxy for kleur/colors to expand typing. (ampproject#34243)

* references to kleur/colors now pass through build-system/common/colors

Co-authored-by: Raghu Simha <[email protected]>

* update babel.config

* 📦 Update com_googlesource_code_re2 commit hash to aa45633 (ampproject#34290)

* Check video duration when setting AutoAdvance default (ampproject#34153)

* Handle AutoAdvance duration

* Update extensions/amp-story/1.0/amp-story-page.js

Co-authored-by: Enrique Marroquin <[email protected]>

* Update extensions/amp-story/1.0/page-advancement.js

Co-authored-by: Enrique Marroquin <[email protected]>

Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Enrique Marroquin <[email protected]>

* 📦 Update dependency postcss-import to v14.0.2 (ampproject#34297)

* 📦 Update dependency eslint to v7.26.0 (ampproject#34289)

* ❄️ Skip flaky stories tests (ampproject#34303)

* 🏗 Improve usability of `describes` by making it configurable (ampproject#34286)

* 📦 Update dependency postcss to v8.2.15 (ampproject#34301)

* ✅ Validator rules for amp-video-iframe 1.0 (ampproject#34200)

* amp-twitter:1.0 - Allow binding to data-tweetid and other configuration attrs (ampproject#34296)

* Add Storybooks for mutation

* Reload iframe when context (via name) changes

* Add unit test

* PascalCase

* Named vars in test

* 🚮 Remove unused font from examples (ampproject#34309)

* 🚮 Remove unused font from examples

* Remove CSS uses without <link>

* update validator files

* ✨ Add parameter to configure amp-story-player animation (ampproject#34204)

* added animation options

* Removed animation from behaviordef

* Added newline on player

* Added documentation on options

* Use next to toggle animation

* Use transitionend

* Using classes for CSS

* Reverted requestAnimationFrame promise

* Added tests

* Apply suggestions from code review

Co-authored-by: Enrique Marroquin <[email protected]>

* Use true instead of property

Co-authored-by: Enrique Marroquin <[email protected]>

Co-authored-by: Enrique Marroquin <[email protected]>

* 🐛 [amp-lightbox-gallery] Use declared amp-carousel extension to build carousel (ampproject#34292)

* init

* nit

* Get reference to win. (ampproject#34299)

* ♻️  `<amp-ima-video>`: Serialize children (ampproject#34229)

`<amp-ima-video>` takes children like:

```
<amp-ima-video>
  <source data-foo="bar" src="src" />
  <track src="src" />
</amp-ima-video>
```

These were previously serialized as HTML on `buildCallback` to be pass to the iframe to (unsafely) write onto `innerHTML`:

```
<amp-ima-video
  data-child-elements='<source data-foo="bar" src="src" /><track src="src" />'
></amp-ima-video>
```

To prepare for a Bento implementation, we serialize into a JSON format that a Preact component can build more simply and safely:

```
[
  ["SOURCE", {"data-foo": "bar", "src": "src"}],
  ["TRACK", {"src": "src"}]
]
```

This change only affects the interface between the `<amp-ima-video>` element and its own proxy `<iframe>`. It does not affect anything author-facing since they will continue to write children `<source>` and `<track>` elements as such.

* 📦 Update dependency eslint-plugin-jsdoc to v34 (ampproject#34304)

* 🏗✅ Sandbox all unit and integration tests (ampproject#34305)

* Bento: Assign placeholder and fallback elements to service slot (ampproject#34310)

* Pass placeholder and fallback to shadow

* Add unit test

* Type annotation

* Remove auto import

* 📦 Update linting devDependencies (ampproject#34288)

Co-authored-by: Raghu Simha <[email protected]>

* 📦 Update dependency esbuild to v0.11.19 (ampproject#34147)

* 📦 Update dependency esbuild to v0.11.19

* Add workaround for evanw/esbuild#1202

* Hack: leave .mjs as esm

* cleanup

* experiment with excluding all of node_modules instead of just .mjs files.

* update comment

* nit:hoist

Co-authored-by: Raghu Simha <[email protected]>
Co-authored-by: Jake Fried <[email protected]>

* Update tests of updateTimeDelay to be more fuzzy (ampproject#34313)

* 📦 Update dependency esbuild to v0.11.20 (ampproject#34322)

* 🐛✨ [amp-ad] [amp-auto-ads] Firstimpression.io: more debug options,  (ampproject#34170)

* FirstImpression.io: debug parameters also as query search parameters

* FirstImpression.io: use pageViewId64, more debug options

* 🏗 Sandbox `describes.repeated` and get rid of the global `window.sandbox` (ampproject#34329)

* amp-render a11y (ampproject#34320)

* 🐛 [Amp story] [Page attachments] [Outlink] Split outlink codepaths for open attachment (ampproject#34330)

* Split outlink codepaths.

* Lint.

* ♻️ Modernize some core code (ampproject#34280)

* Use null coalesce and deferred

* Use for...of instead of forEach

* Simplify Deferred class

* Tweak Observable to use removeItem, for..of, ??

* Fix typo

* %s/break/continue/

* ✨  Text fragments support on amp viewer (ampproject#34074)

* Initialize Logs in web-push's helper frame endpoint (ampproject#34326)

* Find existing element by attr not tagName (ampproject#34325)

* cl/372175665 amp-vimeo: prioritize v0.1 over v1.0 in tagspec ordering (ampproject#34339)

* Add unit tests for amp-facebook-comments:0.1 (ampproject#34331)

* Add unit tests for amp-facebook-comments

* Fix unit tests in 1.0

* Lint

* Let GitHub Actions write package jsons for bento (ampproject#34311)

* wnode script

* error handle

* log

* move files

* pr comments

* 🏗 Add OWNERS for `src/preact` (ampproject#34298)

* Create OWNERS file for src/preact

* Add jridgewell

* carolineliu -> caroqliu

* 📦 Update com_googlesource_code_re2 commit hash to bc42365 (ampproject#34341)

* Add additional wording to tests (ampproject#34334)

Closes ampproject#34260


Adds additional language around using `_top` in swipe up links (opening the link in the parent window for viewers).

(Follow up for ampproject#34030)

* 📦 Update dependency eslint-plugin-jsdoc to v34.0.2 (ampproject#34336)

* 📦 Update dependency jest-progress-bar-reporter to v1.0.21 (ampproject#34338)

* 📦 Update babel devDependencies to v7.14.2 (ampproject#34344)

* 📦 Update core devDependencies (ampproject#34353)

* Solve dumb CC type inference bug (ampproject#34355)

* Upgrade Preact to 10.5.13 (ampproject#30043)

* Upgrade Preact to 10.4.8

* update preact to latest

Co-authored-by: Jake Fried <[email protected]>

* ♻️ Start updating assertions to use core/assert instead of src/log (ampproject#34284)

* Prefix user/dev assert fns

* Update renamed imports

* Update imports to drop "pure"

* Update src/utils assert imports

* Update src/{polyfills,preact,purifier,web-worker} assert imports

* Update src/{inabox,amp-story-player} assert imports

* Fix merge breakage

* Fix merge breakage

* 🏗♻️ Refactor and simplify initialization / clean up of unit and integration tests (ampproject#34346)

* ♻️ Provide core `tryCallback` helper (ampproject#34348)

* Provide tryCallback helper

* Import shared helper where relevant

* Remove spread param

* Fix missing import

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* ♻️ Clean up extern typedefs (ampproject#34345)

* Un-extern AssertionFunction typedef

* Un-extern Timestamp

* Move UnlistenDef to function.extern.js

* %s/Timestamp/TimestampDef/ for linter

* Fix typo

* Fix log type decl

* ♻️ Modernize polyfills (ampproject#34342)

* dedupe rethrowAsync

* modernize fetch polyfill

* modernize custom-elements polyfill

* modernize polyfill stubs

* modernize object-assign polyfill

* update straggler

* Fix typo

* typecast elements_

* Revert changes to fetch polyfill

* Revert changes to fetch object-assign

* Clean up stub types by removing nullability

* Update polyfill stub tests

* Fix test change

* ♻️ Consolidating more core type helpers (ampproject#34253)

* Move time.js types into src/core/types/date

* Move finite-state-machine to core/data-structures

* Make core/types/string a submodule

* Move base64 and bytes tests with core

* Move curve.js to core/data-structures

* Make src/core/function a submodule

* Update dep-check and conformance configs for string.js

* Fix legacy tests

* Move tests for exponential backoff

* Standardize data structures tests

* Update test file structure

* Make curve map side-effect-free

* Use map and isString helpers

* Tweak test names

* Fix import

* Fix types

* Update imports of finite-state-machine

* Update imports of bytes and base64

* Update imports of curve

* Update imports of exponential-backoff

* make lerp static

* make getPointX/Y static

* make solvePositionFromXValue static

* make Bezier fully static

* Use Bezier not static this

* Fix typo

* Use static solver in Curves map

* Fix type decls

* tweak comments

* Remove unused import

* Fix imports from merge

* Move normtimedef to curve

* ♻️  Simplify rendering <amp-ima-video> with CSS and static templates (ampproject#34248)

Use static templates and standalone CSS to simplify how we render a modify `<amp-ima-video>`'s internal tree.

This change is unrelated to the Bento effort. Communication between iframe and host is intact.

* Update npm definition and package file for publishing (ampproject#34333)

* 🐛Fix lint error in test-ima-video-internal.js (ampproject#34365)

* amp-script: sandboxed implies nodom (ampproject#34025)

* ✨ [amp-render] `placeholder` and `fallback` support (ampproject#34294)

* 📦 Update com_google_googletest commit hash to 662fe38 (ampproject#34373)

* ✅ Add unit tests for amp-facebook-like (ampproject#34361)

* Add unit tests for amp-facebook-like

* Lint

* fix layout bug (ampproject#34360)

* 📖 Pressboard vendor updates (ampproject#34188)

Update Pressboard analytics config and documentation link.

* ✨ amp-auto-ads extension: Denakop (ampproject#34215)

* feat: Custom style

* Revert "feat: Custom style"

This reverts commit 2e886ec.

* feat: Add custom style

* test: Change tests

* fix: Fix lint issues

* feat: Custom style

* Revert "feat: Custom style"

This reverts commit 2e886ec.

* feat: Add custom style

* test: Change tests

* fix: Fix lint issues

* Revert "fix: Fix lint issues"

This reverts commit 386df3f.

* fix: Fix lint issues

* Forbid private properties inside BaseElement (ampproject#34376)

This fixes a cross binary issue with private properties being mangled to, ie., `lc` inside `BaseElement` base class. The issue is that a subclass extending it in another binary (eg, `amp-a4a`) can reuse that mangled name for something entirely different, because Closure isn't aware of what the base class is at that point.

* SwG release 0.1.22.165 (ampproject#34352)

* SwG release 0.1.22.165

* unbreaks amp test

* ✅ Add unit tests for amp-facebook-page (ampproject#34351)

* Add unit tests for amp-facebook-page

* Move amp-facebook-page test to correct location

* 📖 Disable deadlink checking for Infoline (ampproject#34384)

* 📦 Update dependency esbuild to v0.11.21 (ampproject#34381)

* 📦 Update linting devDependencies (ampproject#34377)

* 🚮 Clean up obsolete npm resolutions (ampproject#34388)

* ♻️ 🏗  Fix typing in the build-system (ampproject#34162)

* fix type errors

* make suggested changes

* Update build-system/test-configs/jscodeshift/index.js

Co-authored-by: Raghu Simha <[email protected]>

* Update build-system/tasks/serve.js

* add empty passing check to visual-diff tests when they are not needed (ampproject#34371)

* Remove FunctionalTestController, make ControllerPromise extend Promise (ampproject#33844)

* remove functionaltestcontroller, rename functional-test-controller file

* rename functional-test-types to e2e-types

Co-authored-by: Enrique Marroquin <[email protected]>

* ✅ [Story player] Fix animation unit test flakiness (ampproject#34382)

* added animation options

* Removed animation from behaviordef

* Added newline on player

* Added documentation on options

* Use next to toggle animation

* Use transitionend

* Using classes for CSS

* Reverted requestAnimationFrame promise

* Added tests

* Apply suggestions from code review

Co-authored-by: Enrique Marroquin <[email protected]>

* Use true instead of property

Co-authored-by: Enrique Marroquin <[email protected]>

* Removed trailing whitespace

* Fixed linting

* Wait for transitionend

Co-authored-by: Enrique Marroquin <[email protected]>

* 🏗 Switch AMP's main bug template to a yaml-based form (ampproject#34393)

* Adding Blue Triangle to amp-analytics list✨ (ampproject#34012)

* added blue triangle AMP integration info

* fixed minor nitpicks for AMP integration

* added client ID instead of random substring for guid and session id

* added new lines at end of file

* amp prettify command changes

* Revert "amp prettify command changes"

This reverts commit 1c489b2.

* reverted last changed, only have the needed changes

* got rid of not needed extra url params

* changed to endpoint from base

* remove question mark

* made sure web vitals were present, changed format of client id in vendor example

* more changes

* 🏗 Allow Performance WG to manage check-types (ampproject#34395)

* Allow Performance WG to manage check-types

* Lint fixes

* Fix nits in ampproject#34376 (ampproject#34392)

* 📦 Update dependency karma-esbuild to v2.2.0 (ampproject#34396)

* ♻️ Extract json helpers to core/types/object/json (ampproject#34367)

* Make types/object submodule

* Update path in presubmit/lint configs

* Move json externs

* Move json to core

* Shift generic helpers from json to object

* Fix test files

* Fix types excluding json

* Fix types in json

* Clean up and remove dupe code

* Update imports of json

* Remove newlines between imports

* Fix dep-check-config

* Null chaining for [] and ()

* Typo

* Fix callback

* Expand AMP issue template intro text (ampproject#34397)

* ♻️ Enable passing type-checking on src/experiments and src/examiner (ampproject#34394)

* mv src/experiments.js -> src/experiments/index.js

* Make src/experiments pass type-checking

* Allow use of window in extern files

* Remove unused import

* Allow AMP_CONFIG in extern

* Modernize experiments code

* Enable passing type-checking on src/examiner + modernize

* Use assert via logger

* un-hoist

* Clean up extra type annotations

* Fix tests passing object instead of array

* 📖 Convert feature request issue template to a form (ampproject#34398)

* PubMatic OpenWrap to pass consent strings (ampproject#34403)

* use storyNextUp (ampproject#34285)

* 📖 Improve references to the AMP plugin for WordPress in bug report template (ampproject#34401)

* Improve references to the AMP plugin for WordPress

* Fix text to fit on one line and apply to FR template

Co-authored-by: Raghu Simha <[email protected]>

* 📖 Consolidate all AMP documentation in `docs/` (ampproject#34047)

* 📦 Update dependency geckodriver to v2 (ampproject#34404)

* 📦 Update linting devDependencies (ampproject#34409)

* 📖 Move AMP documentation from `spec/` to `docs/spec/` (ampproject#34160)

* 🚮  [Story bookend] Disabled bookend and related tests (ampproject#34354)

* Disabled bookend and related tests

* Removed checks to bookend

* Linted

* Made bookend an alias of social-share

* Removed bookend test since it's not showing

* Removed bookend tests

* Fixed linting

* Cleanup

* Fixed linting again

* Removed visual tests

* Fixed test

* 📦 Update dependency open to v8.0.9 (ampproject#34408)

* 📦 Update dependency esbuild to v0.11.23 (ampproject#34407)

Co-authored-by: Raghu Simha <[email protected]>

* ♻️ [bento][amp-base-carousel] Split component files for NPM Packaging (ampproject#34283)

* Initial commit for base-carousel conversion

* Additional updates

* Add npm files

* Update z-index doc

* Update z-index

* 📦 Update dependency rollup to v2.48.0 (ampproject#34410)

* ♻️ Enable passing type-checking on src/context (ampproject#34387)

* enable src-context type-check target

* Fix type errors in src/context

* export ContextPropDef

* for...of in scan

* clean up scheduler types

* Update ContextPropDef in subscriber

* update types in index

* update types in index

* update types in contextprops

* update types and for...of in node

* Drastically narrow types in values

* Add DEP template type to contextpropdef

* type-narrow subscriber

* Clean up scheduler type decl

* use templates in scan

* Update index prop and setter types

* Allow subscriber ID template type

* Add deps template arg for contextprops

* Add SID for return type

* Assert non-null subscriber IDs

* Code review tweak

* Remove template type from static function

* forEach -> for..of

* Revert forEach changes to Maps

* 🐛 amp-ima-video: Fix pause button jamming on autoplay (ampproject#34307)

When autoplaying a video with a preroll ad, the pause button will not work the first time. This is because we haven't tracked the `PlayerState`. This change keeps track of `PlayerState` on ad events, as meant initially.

* ♻️ Start moving URL helpers into core (ampproject#34399)

* Move query string parsing into core

* Update dep-check config

* Move query string parsing helper tests

* Fix typo

* Restore deleted forbidden-terms rule

* Update single imports of helpers

* Update multi-imports of url helpers

* Fix straggler imports

* Lint fixes

* 🐛  [Story devtools] Toggle devtools on mjs build (ampproject#34372)

* IsDevelopmentMode

* return boolean jsdoc

* Use include since we polyfill

Co-authored-by: Ryan Cebulko <[email protected]>

* Removed useless comment

Co-authored-by: Ryan Cebulko <[email protected]>

* 🚮  [Story bookend] Remove bookend extended code (ampproject#34343)

* Started removing bookend

* Finished removing bookend from files

* Fixed linting

* Updated validation tests

* Updated validation tests 2

* Removed bookend strings

* Disabled bookend and related tests

* Removed checks to bookend

* Linted

* Made bookend an alias of social-share

* Removed bookend test since it's not showing

* Removed bookend tests

* Fixed linting

* Cleanup

* Fixed linting again

* Removed visual tests

* Fixed test

* Fixed test

* Fixed request service tests

* Fixed visual tests

* Bring back validation tests for bookend

* persist playing state on config (ampproject#34356)

* Fix invisible merge conflict (ampproject#34420)

* cl/373617376 Make the process of auto-generating validator.pb.go compatible with protoc v3.16.0. (ampproject#34428)

Co-authored-by: Michael Rybak <[email protected]>

* 📖 Migrate `Intent-to-*` issue templates to yaml forms (ampproject#34431)

* Use validator_wasm.js as default validator (ampproject#34213)

* 📖 Delete the manual error report issue template (ampproject#34435)

* 📦 Update validator devDependencies to eb6e927 (ampproject#34436)

* 📦 Update dependency esbuild to v0.12.1 (ampproject#34421)

* 📦 Update babel devDependencies to v7.14.3 (ampproject#34418)

* ✅  [Story video] Add e2e tests for Bitrate Manager (ampproject#33660)

* Created e2e test

* Added tests

* Fixed e2e tests

* Removed comment

* Removed unused import

* Addede e2es

* Moved field to html

* More work on e2e

* Added load unload fixture

* Fixed tests

* Added more tests and cleaned up hooks

* Added multiple sources on first videos to test flexible-bitrate

* Changed e2es to work

* Removed whitespaces

* Adding cache fetch test

* Add e2e fixture to disallowlist for validate

* fixed host_url in e2e

* Updated tests

* Changed order of test conditions for consistency

* Update extensions/amp-video/0.1/test-e2e/test-amp-video-flexible-bitrate.js

* Update extensions/amp-video/0.1/test-e2e/test-amp-video-flexible-bitrate.js

Co-authored-by: Gabriel Majoulet <[email protected]>

* 📖 Migrate the release tracker template to a yaml form (ampproject#34440)

* 📦 Update dependency @types/node to v14.17.0 (ampproject#34429)

* 📦 Update dependency eslint-plugin-jsdoc to v34.8.2 (ampproject#34415)

* Check if documentHeight has changed after all elements initially built (ampproject#34434)

* SwG release 0.1.22.166 (ampproject#34444)

* ✨[amp-form] allow `form` attributes for form elements outside of `amp-form` (ampproject#33095)

* Init

* init

* handler => service

* Tests

* ServiceForDoc no promise

* Validator, WeakMap of Array, nits

* Update build-system/test-configs/forbidden-terms.js

Co-authored-by: Alan Orozco <[email protected]>

* Update extensions/amp-form/0.1/amp-form.js

Co-authored-by: Alan Orozco <[email protected]>

* Update extensions/amp-form/0.1/amp-form.js

Co-authored-by: Alan Orozco <[email protected]>

* Account for amp-selectors (in and out)

* fix test

* Update build-system/test-configs/forbidden-terms.js

Co-authored-by: Raghu Simha <[email protected]>

Co-authored-by: Alan Orozco <[email protected]>
Co-authored-by: Raghu Simha <[email protected]>

* Add adoptedCallback to work around Firefox Native CE bug (ampproject#34455)

See https://output.jsbin.com/yuwojok/29/quiet for a working demo of the bug. When we construct a CustomElement in one document, then insert it into another document (as we do with A4A ads), Firefox incorrectly resets the prototype of our CE instance to `HTMLElement.prototype`.

Luckily, we can fix this by listening for the `adoptedCallback`, which fires just after Firefox resets the prototype. If we detect a broken prototype chain, we can correct it before any other code can notice. See https://output.jsbin.com/datajos/5/quiet for a demo of the fix.

* ✨ Update npm amphtml-validator to v1.0.35 (ampproject#34454)

* Update npm amphtml-validator to v1.0.35

* Update readme

* ♻️ Cleaning up Log error code in preparation for core (ampproject#34458)

* Move core/error.js -> core/error/index.js

* Move user error helpers to error-message-helpers

* Move error-message-helpers to error/message-helpers

* spread args in log where slicing

* Use loglevel enum in msg_

* Add TODO

* string.includes

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error/message-helpers.js

Co-authored-by: Justin Ridgewell <[email protected]>

* 📦 Update com_google_googletest commit hash to aa9b44a (ampproject#34452)

* ♻️ Create plain `<img>` placeholders (ampproject#34379)

Where extensions would previously create `<amp-img>` placeholders, now create a plain `<img>` element with `loading="lazy"`

* remove brotli check as these files do not exist on cdn anymore (ampproject#34457)

* remove brotli check as these files do not exist on cdn anymore

* prettier

* ♻️ Support img element (ampproject#34028)

* Allow IMG so long as it contains a loading attribute

* Make width and height mandatory

* Move method from within AMP.BaseElement to src/core/dom since it must act on native elements and extended AMP elements now

* Update validator output

* Mid way stopping point on amp-lightbox-gallery cloneLightboxableElement_

* Lightbox gallery now supports image elements

* Use Sets instead of objects

* PR feedback on name of utility and usage of other utilities

* lightbox had a bad reference

* Spy on the right thing now

* Remove validator changes for a later step

* Carriage returns at the end of the out files for the validator

* Updated carriage returns at end of files

* Update comments

* Move auto lightbox to loadPromise

* Remove Set in amp-auto-lightbox

* Remove set in amp-image-lightbox

* Remove logic specific to amp-img for the img path

* Additional fixes for Set usage

* test for supporting img on amp-image-lightbox

* Add tests for propagate attributes helper and fix usage in iframe-video

* Additional fixes for propagateAttributes from AMPElements

* Bad merge

* pass ampdoc in Criteria so its not obtained from an HTMLElement

* change order of arguments to reduce test rewriting for Criteria

* Fix types in propagate attributes

* Prettier formatting

* different prettier versions

* update core utility with improved typing from below

* Address part of Alans feedback

* types

* remove toLowerCase on tagName

* Test changes from PR feedback (and applied elsewhere in the file)

* Add support for native HTMLImageElements to amp-image-slider

* Add test using HTMLImageElements

* Revert changes to gestures for a later PR

* Continued progress, pan zoom works and lightbox gallery is underway

* LayoutScheduled for amp-carousel 0.1 when unlayout happening

* Remove image support for amp-image-viewer for a future PR

* Image Viewer no longer needs to exclude itself from using loadPromise directly

* Remove console logging for carousel debugging:

* Remove breaks in parsing of children for amp-image-slider

* No need to provide an empty array for the Set constructor

* Remaining console

* Nit

* Remove more intermediary state changes

* Naming nit

* prettier formatting in test

* support loading indicator and no-loading attribute (ampproject#34467)

* 📦 Update dependency amphtml-validator to v1.0.35 (ampproject#34472)

* 📖 Migrate the cherry-pick request template to a yaml form (ampproject#34463)

* 📦 Update build-system devDependencies (ampproject#34231)

* 📖 Assorted issue and PR template fixes (ampproject#34473)

* amp-list: Support diffable with single-item (ampproject#33249)

* Revert "Revert "amp-list: Fix Bind.rescan vs. diffing race condition (ampproject#32650)" (ampproject#33232)"

This reverts commit 60adca7.

* Support diffable with single-item.

* Fix test.

* Fix lint.

* 📦 Update com_googlesource_code_re2 commit hash to 4244cd1 (ampproject#34476)

* ✨Update amp-analytics provider bluetriangle.json to change the triggers and transport (ampproject#34423)

* added blue triangle AMP integration info

* fixed minor nitpicks for AMP integration

* added client ID instead of random substring for guid and session id

* added new lines at end of file

* amp prettify command changes

* Revert "amp prettify command changes"

This reverts commit 1c489b2.

* reverted last changed, only have the needed changes

* got rid of not needed extra url params

* changed to endpoint from base

* remove question mark

* made sure web vitals were present, changed format of client id in vendor example

* more changes

* changed blue triangle trigger to ini-load, added test variable to vendors example page, changed blue triangle transport to xhrpost

* 📦 Update com_google_googletest commit hash to 9741c42 (ampproject#34483)

* 🏗 Enable VSCode auto-formatting and prettier checks for `.yml` files (ampproject#34478)

* [Amp story] [Page attachments] [Outlink] Remove open attachment delay and animation (ampproject#34477)

* Remove open attachment delay.

* Revise preview animation duration.

* 📦 Update linting devDependencies (ampproject#34474)

* 📦 Update subpackage devDependencies (ampproject#34486)

* 📦 Update dependency eslint-plugin-jsdoc to v35 (ampproject#34494)

* 📖 amp-animation: Clarify prefers-reduced-motion (ampproject#34442)

* Adding Tail as rtc vendor (ampproject#34481)

* 🖍 Prevent native `img` elements from being styled by `ampshared.css` (ampproject#34482)

* Prevent `[width][height][sizes]` selectors from inadvertently matching `img` elements

* Allow `height` and `width` on `amp-img > img (transformed)`

* Unlaunch auto-ads-no-insertion-above holdback experiment (ampproject#34425)

* ✅ [AMP Story] [Page attachments] Update visual tests for new UIs (ampproject#34223)

* visual tests

* make pages look same

* nit

* revert nit

* remove references to inline-dark-theme visual test

* adding images and extra tests

* moving tests for v2 to a diff file

* documenting v2 tests

* adding cover id

* adding snapshots and experiment

* change IDs

* adding js test navigation

* adding js test navigation

* formatting

* edit tests

* format

* format

* format

* adding next page

* adding next page

* adding rest of pages

* lint

* testing adding active on openAttachmentEl

* changing selector

* typo

* adding important

* Improve targeting of img in remote-content.

* Refactor go to page

Removes tap simulation to navigate to page. Removes timeout. Improves selector to be sure page is visible.

* Use same interactive tests for desktop.

* Remove desktop.js

JS can be re-used for desktop and mobile.

Co-authored-by: Philip Bell <[email protected]>

* ✨Use WebAssembly validator for chrome extension (ampproject#34502)

* Use WebAssembly validator for chrome extension

* Use es5 for popup.html

* Init wasm before polymer code

* 🏗 Move default PR template to `.github` directory (ampproject#34506)

* 🏗 Consolidate glob expansion while determining build targets (ampproject#34509)

* 📦 Update dependency @percy/core to v1.0.0-beta.51 (ampproject#34508)

* Use isModeDevelopment for validator integration (ampproject#34503)

* Use isModeDevelopment

* fix test failures

* update related test

* 🏗  ♻️  Fix ALMOST all type issues in /build-system (ampproject#34438)

* patched all fixable type errors

Co-authored-by: Raghu Simha <[email protected]>

* 📦 Update dependency esbuild to v0.12.2 (ampproject#34518)

* 📖 Add bug report fields for OSs and Devices (ampproject#34522)

* 📖 Use `n/a` instead of `/all` in the OS and device fields (ampproject#34524)

* 🏗 Enable a lint rule to auto-sort destructure keys (ampproject#34523)

* Added attributes to adpushup amp-ad (ampproject#34459)

Added data-jsontargeting and data-extras attributes to adpushup amp-ad
vendor integration

Co-authored-by: Rahul Ranjan <[email protected]>

* 🏗  Update build-system subpackages before checking types (ampproject#34525)

* 🏗 Include dotfiles while expanding globs during the CI check for valid URLs (ampproject#34510)

* 📦 Update com_google_googletest commit hash to a3460d1 (ampproject#34530)

* ✨ [bento][npm] Support react modules in NPM Bento components (ampproject#34528)

* Updates for react npm

* Ignore eslint rule

* add amp-onerror validation for v0.js or v0.mjs (ampproject#34531)

* Sync for validator/cpp/engine (ampproject#34534)

* Don't populate spec_file_revision field in ValidationResult. The field is deprecated.

PiperOrigin-RevId: 373462878

* Delete ParsedValidatorRules::SpecFileRevision().

PiperOrigin-RevId: 373688076

* Allow i-amphtml-layout-awaiting-size class in FLUID layout

PiperOrigin-RevId: 375586004

Co-authored-by: Googler <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>

* cl/375586004 Allow i-amphtml-layout-awaiting-size class in FLUID layout (ampproject#34533)

Co-authored-by: Justin Ridgewell <[email protected]>

* Sync for validator/cpp/htmlparser (ampproject#34536)

* Fix out of memory errors for a particular fuzzer test case which end up in
parsing entire contents of a binary blob as attributes.

Defined a flag for maximum attributes a node may contain. This value is
reasonably large to cover all real world documents.

PiperOrigin-RevId: 375586875

* Update CONTRIBUTING.md

* Update README.md

* Update amp4ads-parse-css.h

* Add missing dependency

Co-authored-by: Amaltas Bohra <[email protected]>

* 🐛 [Amp story] [Page attachments] [Outlink] Open remote from light dom (ampproject#34535)

* Element child

* Revert regression

* Trigger click from light dom

* Revert.

* revert

* revert

* Revert

* Ramp up 3p vendor splitting to 50% (ampproject#34468)

* 🏗  Automate bento publishing with a GitHub Action (ampproject#34430)

* Skip "should render correctly" (ampproject#34541)

* 🏗 Don't type-check server transform output (ampproject#34537)

* ✨  [amp-render] validator changes (ampproject#34366)

* 📦 Update core devDependencies (ampproject#34451)

* ✨  [amp-render] documentation (ampproject#34391)

* 📖 Make a few bug report fields optional (ampproject#34547)

* 📦 Update dependency esbuild to v0.12.3 (ampproject#34555)

* 📦 Update dependency core-js to v3.13.0 (ampproject#34538)

* 🏗 Auto-format dev dashboard tests (ampproject#34546)

* cl/375855105 Extract AMP Cache Domain validation, part 1 (ampproject#34558)

Co-authored-by: honeybadgerdontcare <[email protected]>

* ♻️ Migrate math and some DOM logic into core w/ type-checking (ampproject#34550)

* Move utils/dom-fingerprint to core/dom/fingerprint

* Fix imports in fingerprint.js

* Move utils/date to core/dom/parse-date-attributes

* Improve types in parse-date-attributes

* Move utils/dom-based-weakref to core/dom/weakref

* Update test names

* Add __AMP_WEAKREF_ID extern

* Move math, id-gen, layout-rect to core/math

* Update types for layout-rect

* Move get-html into core/dom

* Move isFiniteNumber into core/types

* Move document-ready to core

* Move web-components to core/dom

* Fix types in web-components

* Move dom streaming helpers to core/dom/stream

* Update imports of dom-fingerprint

* Update imports of parseDateAttrs

* Update (only) import of DomBasedWeakRef

* Update imports of math helpers

* Update imports of get-html

* Update imports of isFiniteNumber

* Update imports of document-ready

* Update imports of web-components

* Update imports of dom stream helpers

* Update forbidden-terms

* Not nullable type

* Launch flexible-bitrate experiment to 10%. (ampproject#34549)

* 🏗 Skip NPM checks while type-checking build-system (ampproject#34557)

* Sync for validator/cpp/engine (ampproject#34560)

* Add SSR support for FLUID layout

PiperOrigin-RevId: 375756231

* Extract AMP Cache Domain validation, part 1

Adds method isAmpCacheDomain_ (JS) / IsAmpCacheDomain (C++)

PiperOrigin-RevId: 375855105

Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>

* 📦 Update dependency rollup to v2.50.1 (ampproject#34519)

* 🏗  Add check-build-system to pr-checks (ampproject#34544)

* add check-build-system to pr checks

* fix more type errors

* disable incremental builds

Co-authored-by: Raghu Simha <[email protected]>

* Add unit tests (ampproject#34563)

* 📦 Update core devDependencies (ampproject#34561)

* Track flexible-bitrate experiment through CSI pipeline. (ampproject#34548)

* ✨ [bento][npm] Update file naming from mjs to module (ampproject#34568)

* Update file naming from mjs to module

* import exports should be in alphabetical order

* Rename helper function

* (nit) Replace NPM with npm (ampproject#34573)

* 🏗 Optimize linting during PR builds (ampproject#34567)

* ♿  [amp-render] a11y change (ampproject#34540)

* 📦 Update dependency @sinonjs/fake-timers to v7.1.1 (ampproject#34578)

* 📦 Update dependency rollup to v2.50.2 (ampproject#34579)

* 📦 Update dependency @types/eslint to v7.2.12 (ampproject#34574)

* Facebook: Render embedded type via `data-embed-as` versus element `tagName` (ampproject#34312)

* Switch based on data-embed-as versus tag name

* Update tests

* Update FacebookComments

* Allow dependency on enum

* Remove staticProps

* Update all the tests

* Remove dupe

* Import userAssert

* Allow dependency on enum

* 📦 Update dependency esbuild to v0.12.4 (ampproject#34576)

* ✨ Supports locale options for localeString in amp-date-display. (ampproject#34359)

* ✨ Supports locale options for localeString in amp-date-display.

* Allow user to customize locale options for localeString, the options setting is same as [Date.toLocaleString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString#syntax) parameter.

* [amp-date-display] Moves localeOptions from json type to data-options-*.

* [amp-date-display] Tests and content imporvements.

- Added invalid test cases.
- Throws user error if invalid data-options-* param is provided.
- Updated data-options-* readme doc.
- Added new lines to .out validator files.
- Applied reviewer suggestions.

* 🏗📖 Clean up AMP setup documentation + infrastructure (ampproject#34582)

* Don't block Story render on a fallback media load. (ampproject#34583)

* 🏗 Update bento package.json template (ampproject#34584)

* 📖 Add explanatory text to the LTS and cherry-pick sections of the release tracker (ampproject#34575)

* Run through all actions for each distFlavor in `amp release` before the next (ampproject#34569)

Co-authored-by: Raghu Simha <[email protected]>

* 🏗 Make new typecheck targets simpler (ampproject#34559)

* Remove the need to explicitly specify extern globs

* Add clarifying comment

* Allow type-check target to just be a list of globs

* Update type

* More explanatory comments

* More comments

* Video cache for amp-video[src]. (ampproject#34570)

* Video cache for amp-video[src].

* Update extensions/amp-video/0.1/video-cache.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update extensions/amp-video/0.1/video-cache.js

* Import iterateCursor.

* Reviews.

Co-authored-by: Justin Ridgewell <[email protected]>

* 🐛 Bug fix allowing set height and fixing Ad position (ampproject#34092)

* allowing add data-attributes

* using dataset for shorter code

* fixing error use of style to style elements is forbidden

* fixing default attribute values

* removing sizes

* allowing use min height

* fixing banner alignment

* fixing test

* fixing prettier validation

* fixing prettier validation

* SwG Release 0.1.22.167 (ampproject#34572)

* 🏗  Automatically write react.js files for bento components when publishing (ampproject#34586)

* update node script

* lint

* pr comments

* lint

* Lazy load AMP cache URL and make it optional. (ampproject#34588)

* Revert "♻️ Support img element (ampproject#34028)" (ampproject#34589)

This reverts commit 5a0936f.

* 🏗 Enforce JSDoc across `build-system/` for complete type-checking (ampproject#34591)

* Minimum duration for auto-advance-after. (ampproject#34592)

* Fix time based auto-advance-after. (ampproject#34598)

* Add missing bundles entry for amp-iframely (ampproject#34602)

* 🐛 [no-signing] fix ads using amp-gwd-animation (ampproject#34593)

Co-authored-by: WhiteSource Renovate <[email protected]>
Co-authored-by: Alan Orozco <[email protected]>
Co-authored-by: udaya-m-taboola <[email protected]>
Co-authored-by: Jake Fried <[email protected]>
Co-authored-by: Philip Bell <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>
Co-authored-by: Raghu Simha <[email protected]>
Co-authored-by: Ryan Cebulko <[email protected]>
Co-authored-by: mister-ben <[email protected]>
Co-authored-by: Kevin Dwan <[email protected]>
Co-authored-by: Micajuine Ho <[email protected]>
Co-authored-by: Kristofer Baxter <[email protected]>
Co-authored-by: patrick kettner <[email protected]>
Co-authored-by: Caroline Liu <[email protected]>
Co-authored-by: John Pettitt <[email protected]>
Co-authored-by: Elijah Soria <[email protected]>
Co-authored-by: Jon Newmuis <[email protected]>
Co-authored-by: Riley Jones <[email protected]>
Co-authored-by: Zach P <[email protected]>
Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Enrique Marroquin <[email protected]>
Co-authored-by: Matias Szylkowski <[email protected]>
Co-authored-by: Zer0Divis0r <[email protected]>
Co-authored-by: dmanek <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: Esther Kim <[email protected]>
Co-authored-by: Dima Voytenko <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: Caleb Cordry <[email protected]>
Co-authored-by: Tiam <[email protected]>
Co-authored-by: Edmilson Silva <[email protected]>
Co-authored-by: henel677 <[email protected]>
Co-authored-by: AdrianPerry <[email protected]>
Co-authored-by: Harshad Mane <[email protected]>
Co-authored-by: Weston Ruter <[email protected]>
Co-authored-by: Allan Banaag <[email protected]>
Co-authored-by: Michael Rybak <[email protected]>
Co-authored-by: Boxiao Cao <[email protected]>
Co-authored-by: qidonna <[email protected]>
Co-authored-by: William Chou <[email protected]>
Co-authored-by: dulpneto <[email protected]>
Co-authored-by: Shihua Zheng <[email protected]>
Co-authored-by: Raksha Muthukumar <[email protected]>
Co-authored-by: Philip Bell <[email protected]>
Co-authored-by: madan-mayank <[email protected]>
Co-authored-by: Rahul Ranjan <[email protected]>
Co-authored-by: Googler <[email protected]>
Co-authored-by: Amaltas Bohra <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>
Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Jingfei <[email protected]>
Co-authored-by: Daniel Rozenberg <[email protected]>
Co-authored-by: Pablo <[email protected]>
Co-authored-by: Chris Antaki <[email protected]>
vincentditlevinz added a commit to teads-graveyard/amphtml that referenced this pull request Jun 1, 2021
* 🐛 amp-youtube 1.0: forward mute method (ampproject#34221)

Previous oversight.

* ✅ Validator rules for amp-vimeo 1.0 (ampproject#34199)

* ✨ added support for consent for Taboola amp-analytics (ampproject#34166)

* added support for consent for Taboola amp-analytics

* fixed the consent substitution variable name

* fixed the consent substitution name

* fixed unit tests

* Types: fix all type parse errors and ensure no new ones crop up (ampproject#34105)

* Types: fix all type parse errors

* self nits

* run prettier

* fix a new parse error, make low-bar target

* Update panning-media-docs (ampproject#34236)

* resources: rename V1 to R1, to clear up ambiguity (ampproject#34227)

* allow http and relative for amp-story-page-attachment (ampproject#34234)

* ♻️  Types: opt for null shorthand (ampproject#34233)

* types: shorthand for |null

* a few more

* fix test

* 📦 Update core dependencies (ampproject#34146)

Co-authored-by: Raghu Simha <[email protected]>

* ♻️ Enable type-checking src/polyfills in CI (ampproject#34239)

* Clean up directory globs

* Move src/core srcs+externs to const arrays

* Exclude fetch/get-bounding-client-rect for now

* Provide extern for promise-pjs polyfill

* Fix types and add comments in abort-controller

* Fix types and add comments in intersection-observer-stub

* Remove @Suppress {checkTypes} from promise

* Fix @this type for document.contains() polyfill

* Remove unneeded typecast to unknown

* Fix types and add comments in resize-observer-stub

* Fix types and add comments in custom-elements

* Add !

* Fix types in get-bounding-client-rect

* Add more !

* Lint fixes

* Allow custom-element.externs.js to use window

* Revert no-op JSDoc changes

* Remove connected callback externs and typecast instead

* Clean up typedefs for observer stubs

* Fix typo

* Dedupe typedef

* 🐛 amp-brightcove: improve autoplay handling (ampproject#34207)

Following an update to the Brightcove Player's AMP support plugin, this update makes sure autoplay is handled correctly in all cases.

- Removes any autoplay query param, including the interim autoplay=false
- Distinguishes play messages sent through postmessage which are autoplay requests

* ♻️📖 Provide a Storybook wrapper to execute video actions (ampproject#34222)

Extract a wrapper to add video action buttons to an AMP Storybook.

https://user-images.githubusercontent.com/254946/117086191-c4e6d700-ad00-11eb-95ff-f9e3b51caf2b.png

* [bento][npm] Add package.json for all bento components with npm definition (ampproject#34087)

* Add package.json for all bento components with npm definition

* Add newline at end of file

* Fix indentation

* Newline at end of file

* Fix newline

* Add recently published timeago, update NPM definitions

* Remove package for render, sidebar, twitter which are not published

* Update version for amp-timeago package

* ♻️ Name amp-ima-video methods uniformly for Bento (ampproject#34246)

Rename `postMessage` method names so that they're uniform with `VideoIframe`'s. This simplifies the upcoming Bento implementation.

* Remove consent storage limit for viewer (ampproject#34054)

* 🐛 Fix bad type (ampproject#34254)

* Noticed these changes while refactoring on another branch (ampproject#34250)

* update amp-script console error to mention data-ampdevmode (ampproject#34235)

* ♻️ Move `imaVideo.js` so it can be owned by Bento and Components (ampproject#34247)

* ♻️ 📖 Global dep-check rule for Bento video (ampproject#34252)

We can more simply allow `extensions/**` files to import specific files from `amp-video/1.0`. It should be ok in any case.

* 🏗  runtime: allow for iterator polyfill (ampproject#34249)

* runtime: allow for iterator polyfill

* Empty commit

* lint!

* Bento: Prepare Twitter Preact implementation (ampproject#34194)

* Do not override user given height until message gives one

* Support tweetid directly

* Support bootstrap directly

* Add unit tests

* Support momentid directly

* Add Storybook samples for additional options

* Use Sinon syntax for spying on setter

* Log output when onError set (ampproject#34259)

* ✅ ♻️  `<amp-ima-video>` test is not an AMP element test (ampproject#34230)

The existing file `test-amp-ima-video.js` is a misnomer since it does not actually test the `<amp-ima-video>` element, only what it loads inside the frame.

Accordingly, rename `test-amp-ima-video.js` as `test-ima-video-internal.js`. Also remove stubs specific to the AMP runtime, since it doesn't run inside the iframe.

* 🚀 Remove Error classification (ampproject#34257)

* Remove Error classification

* Left over let declaration

* Remove jse error field

* 🏗  amp-subscriptions* owners update (ampproject#34261)

* Update OWNERS

* Update OWNERS

* SwG Release 5/5/21 (ampproject#34238)

* 🏗️ Simplify enabling npm bundle for components (ampproject#34262)

* Simplify enabling npm bundle

* %s/const/let/

* 🏗 Add `wg-components` as bundle size approver of dist.3p/ (ampproject#34267)

* ♻️  refactor: move builtin components to their own folders (ampproject#34237)

* refactor: move builtin components to their own folders. organization++

* fix imports / and references in md files.

* closure glob include

* ✨ [Amp story] Add `amp-story-page-outlink` component (ampproject#34171)

* Fix conflicts.

* Advancement, test and comment.

* querySelector

* Fix conflicts.

* Validator, component and template.

* Fix merge conflicts.

* Remove duplicate code.

* Outlink validator rule.

* Alphabetize

* amp-twitter: Add Storybook samples (ampproject#34273)

* Add comprehensive Storybook samples for amp-twitter

* Add deleted and invalid tweet-id cases

* Name exported functions in PascalCase

* 📖 Update LTS release docs to indicate supported AMP flavors (ampproject#34258)

* Update lts-release.md

* Update lts-release.md

* 📦 Update dependency mocha to v8.4.0 (ampproject#34270)

* 🏗 Disable JSDoc requirement on Storybook files (ampproject#34255)

Disable `require-jsdoc` since it auto-fixes, and we don't need JSDoc in these locations.

We preserve the following rules since they ensure correctness, like type-check already does.

jsdoc/check-param-names
jsdoc/check-tag-names
jsdoc/check-types
jsdoc/require-param
jsdoc/require-param-name
jsdoc/require-param-type
jsdoc/require-returns
jsdoc/require-returns-type

* 📦 Update dependency google-closure-compiler to v20210505 (ampproject#34269)

* 📦 Update dependency @ampproject/worker-dom to v0.29.3 (ampproject#34242)

* 📦 Update core devDependencies (ampproject#34240)

* 🖍 [Amp story] [Page attachments] Style adjustments (ampproject#34275)

* SVG edit

* SVG adjustment.

* Drop shadows.

* Prevent clipping of decenders. Drop shadow.

* ♻️  [bento][amp-stream-gallery] Split component files for NPM Packaging (ampproject#34208)

* Split amp-stream-gallery

* Rename jss and type files

* Review comments

* Add package.json file

* Fix indentation

* Update npm and latest version in config

* Update dependency config

* Update zindex doc

* Update npm definition

* [bento][amp-sidebar] SSR compatible design for Sidebar Toolbar (ampproject#34158)

* SSR compatible design for Toolbar

* Various code review comments from Caroline

* Additional review comments

* Review comments

* Remove unused import

* Add sanitation

* Update sanitization method

* Update return type for helper function

* Remove truthiness checks that are redundant

* Add unit tests

* ♻️ 🏗  Fix type errors in runtime-test-base (ampproject#34161)

* fix types in runtime-test-base

* ♻️  🏗  Create proxy for kleur/colors to expand typing. (ampproject#34243)

* references to kleur/colors now pass through build-system/common/colors

Co-authored-by: Raghu Simha <[email protected]>

* update babel.config

* 📦 Update com_googlesource_code_re2 commit hash to aa45633 (ampproject#34290)

* Check video duration when setting AutoAdvance default (ampproject#34153)

* Handle AutoAdvance duration

* Update extensions/amp-story/1.0/amp-story-page.js

Co-authored-by: Enrique Marroquin <[email protected]>

* Update extensions/amp-story/1.0/page-advancement.js

Co-authored-by: Enrique Marroquin <[email protected]>

Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Enrique Marroquin <[email protected]>

* 📦 Update dependency postcss-import to v14.0.2 (ampproject#34297)

* 📦 Update dependency eslint to v7.26.0 (ampproject#34289)

* ❄️ Skip flaky stories tests (ampproject#34303)

* 🏗 Improve usability of `describes` by making it configurable (ampproject#34286)

* 📦 Update dependency postcss to v8.2.15 (ampproject#34301)

* ✅ Validator rules for amp-video-iframe 1.0 (ampproject#34200)

* amp-twitter:1.0 - Allow binding to data-tweetid and other configuration attrs (ampproject#34296)

* Add Storybooks for mutation

* Reload iframe when context (via name) changes

* Add unit test

* PascalCase

* Named vars in test

* 🚮 Remove unused font from examples (ampproject#34309)

* 🚮 Remove unused font from examples

* Remove CSS uses without <link>

* update validator files

* ✨ Add parameter to configure amp-story-player animation (ampproject#34204)

* added animation options

* Removed animation from behaviordef

* Added newline on player

* Added documentation on options

* Use next to toggle animation

* Use transitionend

* Using classes for CSS

* Reverted requestAnimationFrame promise

* Added tests

* Apply suggestions from code review

Co-authored-by: Enrique Marroquin <[email protected]>

* Use true instead of property

Co-authored-by: Enrique Marroquin <[email protected]>

Co-authored-by: Enrique Marroquin <[email protected]>

* 🐛 [amp-lightbox-gallery] Use declared amp-carousel extension to build carousel (ampproject#34292)

* init

* nit

* Get reference to win. (ampproject#34299)

* ♻️  `<amp-ima-video>`: Serialize children (ampproject#34229)

`<amp-ima-video>` takes children like:

```
<amp-ima-video>
  <source data-foo="bar" src="src" />
  <track src="src" />
</amp-ima-video>
```

These were previously serialized as HTML on `buildCallback` to be pass to the iframe to (unsafely) write onto `innerHTML`:

```
<amp-ima-video
  data-child-elements='<source data-foo="bar" src="src" /><track src="src" />'
></amp-ima-video>
```

To prepare for a Bento implementation, we serialize into a JSON format that a Preact component can build more simply and safely:

```
[
  ["SOURCE", {"data-foo": "bar", "src": "src"}],
  ["TRACK", {"src": "src"}]
]
```

This change only affects the interface between the `<amp-ima-video>` element and its own proxy `<iframe>`. It does not affect anything author-facing since they will continue to write children `<source>` and `<track>` elements as such.

* 📦 Update dependency eslint-plugin-jsdoc to v34 (ampproject#34304)

* 🏗✅ Sandbox all unit and integration tests (ampproject#34305)

* Bento: Assign placeholder and fallback elements to service slot (ampproject#34310)

* Pass placeholder and fallback to shadow

* Add unit test

* Type annotation

* Remove auto import

* 📦 Update linting devDependencies (ampproject#34288)

Co-authored-by: Raghu Simha <[email protected]>

* 📦 Update dependency esbuild to v0.11.19 (ampproject#34147)

* 📦 Update dependency esbuild to v0.11.19

* Add workaround for evanw/esbuild#1202

* Hack: leave .mjs as esm

* cleanup

* experiment with excluding all of node_modules instead of just .mjs files.

* update comment

* nit:hoist

Co-authored-by: Raghu Simha <[email protected]>
Co-authored-by: Jake Fried <[email protected]>

* Update tests of updateTimeDelay to be more fuzzy (ampproject#34313)

* 📦 Update dependency esbuild to v0.11.20 (ampproject#34322)

* 🐛✨ [amp-ad] [amp-auto-ads] Firstimpression.io: more debug options,  (ampproject#34170)

* FirstImpression.io: debug parameters also as query search parameters

* FirstImpression.io: use pageViewId64, more debug options

* 🏗 Sandbox `describes.repeated` and get rid of the global `window.sandbox` (ampproject#34329)

* amp-render a11y (ampproject#34320)

* 🐛 [Amp story] [Page attachments] [Outlink] Split outlink codepaths for open attachment (ampproject#34330)

* Split outlink codepaths.

* Lint.

* ♻️ Modernize some core code (ampproject#34280)

* Use null coalesce and deferred

* Use for...of instead of forEach

* Simplify Deferred class

* Tweak Observable to use removeItem, for..of, ??

* Fix typo

* %s/break/continue/

* ✨  Text fragments support on amp viewer (ampproject#34074)

* Initialize Logs in web-push's helper frame endpoint (ampproject#34326)

* Find existing element by attr not tagName (ampproject#34325)

* cl/372175665 amp-vimeo: prioritize v0.1 over v1.0 in tagspec ordering (ampproject#34339)

* Add unit tests for amp-facebook-comments:0.1 (ampproject#34331)

* Add unit tests for amp-facebook-comments

* Fix unit tests in 1.0

* Lint

* Let GitHub Actions write package jsons for bento (ampproject#34311)

* wnode script

* error handle

* log

* move files

* pr comments

* 🏗 Add OWNERS for `src/preact` (ampproject#34298)

* Create OWNERS file for src/preact

* Add jridgewell

* carolineliu -> caroqliu

* 📦 Update com_googlesource_code_re2 commit hash to bc42365 (ampproject#34341)

* Add additional wording to tests (ampproject#34334)

Closes ampproject#34260


Adds additional language around using `_top` in swipe up links (opening the link in the parent window for viewers).

(Follow up for ampproject#34030)

* 📦 Update dependency eslint-plugin-jsdoc to v34.0.2 (ampproject#34336)

* 📦 Update dependency jest-progress-bar-reporter to v1.0.21 (ampproject#34338)

* 📦 Update babel devDependencies to v7.14.2 (ampproject#34344)

* 📦 Update core devDependencies (ampproject#34353)

* Solve dumb CC type inference bug (ampproject#34355)

* Upgrade Preact to 10.5.13 (ampproject#30043)

* Upgrade Preact to 10.4.8

* update preact to latest

Co-authored-by: Jake Fried <[email protected]>

* ♻️ Start updating assertions to use core/assert instead of src/log (ampproject#34284)

* Prefix user/dev assert fns

* Update renamed imports

* Update imports to drop "pure"

* Update src/utils assert imports

* Update src/{polyfills,preact,purifier,web-worker} assert imports

* Update src/{inabox,amp-story-player} assert imports

* Fix merge breakage

* Fix merge breakage

* 🏗♻️ Refactor and simplify initialization / clean up of unit and integration tests (ampproject#34346)

* ♻️ Provide core `tryCallback` helper (ampproject#34348)

* Provide tryCallback helper

* Import shared helper where relevant

* Remove spread param

* Fix missing import

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* ♻️ Clean up extern typedefs (ampproject#34345)

* Un-extern AssertionFunction typedef

* Un-extern Timestamp

* Move UnlistenDef to function.extern.js

* %s/Timestamp/TimestampDef/ for linter

* Fix typo

* Fix log type decl

* ♻️ Modernize polyfills (ampproject#34342)

* dedupe rethrowAsync

* modernize fetch polyfill

* modernize custom-elements polyfill

* modernize polyfill stubs

* modernize object-assign polyfill

* update straggler

* Fix typo

* typecast elements_

* Revert changes to fetch polyfill

* Revert changes to fetch object-assign

* Clean up stub types by removing nullability

* Update polyfill stub tests

* Fix test change

* ♻️ Consolidating more core type helpers (ampproject#34253)

* Move time.js types into src/core/types/date

* Move finite-state-machine to core/data-structures

* Make core/types/string a submodule

* Move base64 and bytes tests with core

* Move curve.js to core/data-structures

* Make src/core/function a submodule

* Update dep-check and conformance configs for string.js

* Fix legacy tests

* Move tests for exponential backoff

* Standardize data structures tests

* Update test file structure

* Make curve map side-effect-free

* Use map and isString helpers

* Tweak test names

* Fix import

* Fix types

* Update imports of finite-state-machine

* Update imports of bytes and base64

* Update imports of curve

* Update imports of exponential-backoff

* make lerp static

* make getPointX/Y static

* make solvePositionFromXValue static

* make Bezier fully static

* Use Bezier not static this

* Fix typo

* Use static solver in Curves map

* Fix type decls

* tweak comments

* Remove unused import

* Fix imports from merge

* Move normtimedef to curve

* ♻️  Simplify rendering <amp-ima-video> with CSS and static templates (ampproject#34248)

Use static templates and standalone CSS to simplify how we render a modify `<amp-ima-video>`'s internal tree.

This change is unrelated to the Bento effort. Communication between iframe and host is intact.

* Update npm definition and package file for publishing (ampproject#34333)

* 🐛Fix lint error in test-ima-video-internal.js (ampproject#34365)

* amp-script: sandboxed implies nodom (ampproject#34025)

* ✨ [amp-render] `placeholder` and `fallback` support (ampproject#34294)

* 📦 Update com_google_googletest commit hash to 662fe38 (ampproject#34373)

* ✅ Add unit tests for amp-facebook-like (ampproject#34361)

* Add unit tests for amp-facebook-like

* Lint

* fix layout bug (ampproject#34360)

* 📖 Pressboard vendor updates (ampproject#34188)

Update Pressboard analytics config and documentation link.

* ✨ amp-auto-ads extension: Denakop (ampproject#34215)

* feat: Custom style

* Revert "feat: Custom style"

This reverts commit 2e886ec.

* feat: Add custom style

* test: Change tests

* fix: Fix lint issues

* feat: Custom style

* Revert "feat: Custom style"

This reverts commit 2e886ec.

* feat: Add custom style

* test: Change tests

* fix: Fix lint issues

* Revert "fix: Fix lint issues"

This reverts commit 386df3f.

* fix: Fix lint issues

* Forbid private properties inside BaseElement (ampproject#34376)

This fixes a cross binary issue with private properties being mangled to, ie., `lc` inside `BaseElement` base class. The issue is that a subclass extending it in another binary (eg, `amp-a4a`) can reuse that mangled name for something entirely different, because Closure isn't aware of what the base class is at that point.

* SwG release 0.1.22.165 (ampproject#34352)

* SwG release 0.1.22.165

* unbreaks amp test

* ✅ Add unit tests for amp-facebook-page (ampproject#34351)

* Add unit tests for amp-facebook-page

* Move amp-facebook-page test to correct location

* 📖 Disable deadlink checking for Infoline (ampproject#34384)

* 📦 Update dependency esbuild to v0.11.21 (ampproject#34381)

* 📦 Update linting devDependencies (ampproject#34377)

* 🚮 Clean up obsolete npm resolutions (ampproject#34388)

* ♻️ 🏗  Fix typing in the build-system (ampproject#34162)

* fix type errors

* make suggested changes

* Update build-system/test-configs/jscodeshift/index.js

Co-authored-by: Raghu Simha <[email protected]>

* Update build-system/tasks/serve.js

* add empty passing check to visual-diff tests when they are not needed (ampproject#34371)

* Remove FunctionalTestController, make ControllerPromise extend Promise (ampproject#33844)

* remove functionaltestcontroller, rename functional-test-controller file

* rename functional-test-types to e2e-types

Co-authored-by: Enrique Marroquin <[email protected]>

* ✅ [Story player] Fix animation unit test flakiness (ampproject#34382)

* added animation options

* Removed animation from behaviordef

* Added newline on player

* Added documentation on options

* Use next to toggle animation

* Use transitionend

* Using classes for CSS

* Reverted requestAnimationFrame promise

* Added tests

* Apply suggestions from code review

Co-authored-by: Enrique Marroquin <[email protected]>

* Use true instead of property

Co-authored-by: Enrique Marroquin <[email protected]>

* Removed trailing whitespace

* Fixed linting

* Wait for transitionend

Co-authored-by: Enrique Marroquin <[email protected]>

* 🏗 Switch AMP's main bug template to a yaml-based form (ampproject#34393)

* Adding Blue Triangle to amp-analytics list✨ (ampproject#34012)

* added blue triangle AMP integration info

* fixed minor nitpicks for AMP integration

* added client ID instead of random substring for guid and session id

* added new lines at end of file

* amp prettify command changes

* Revert "amp prettify command changes"

This reverts commit 1c489b2.

* reverted last changed, only have the needed changes

* got rid of not needed extra url params

* changed to endpoint from base

* remove question mark

* made sure web vitals were present, changed format of client id in vendor example

* more changes

* 🏗 Allow Performance WG to manage check-types (ampproject#34395)

* Allow Performance WG to manage check-types

* Lint fixes

* Fix nits in ampproject#34376 (ampproject#34392)

* 📦 Update dependency karma-esbuild to v2.2.0 (ampproject#34396)

* ♻️ Extract json helpers to core/types/object/json (ampproject#34367)

* Make types/object submodule

* Update path in presubmit/lint configs

* Move json externs

* Move json to core

* Shift generic helpers from json to object

* Fix test files

* Fix types excluding json

* Fix types in json

* Clean up and remove dupe code

* Update imports of json

* Remove newlines between imports

* Fix dep-check-config

* Null chaining for [] and ()

* Typo

* Fix callback

* Expand AMP issue template intro text (ampproject#34397)

* ♻️ Enable passing type-checking on src/experiments and src/examiner (ampproject#34394)

* mv src/experiments.js -> src/experiments/index.js

* Make src/experiments pass type-checking

* Allow use of window in extern files

* Remove unused import

* Allow AMP_CONFIG in extern

* Modernize experiments code

* Enable passing type-checking on src/examiner + modernize

* Use assert via logger

* un-hoist

* Clean up extra type annotations

* Fix tests passing object instead of array

* 📖 Convert feature request issue template to a form (ampproject#34398)

* PubMatic OpenWrap to pass consent strings (ampproject#34403)

* use storyNextUp (ampproject#34285)

* 📖 Improve references to the AMP plugin for WordPress in bug report template (ampproject#34401)

* Improve references to the AMP plugin for WordPress

* Fix text to fit on one line and apply to FR template

Co-authored-by: Raghu Simha <[email protected]>

* 📖 Consolidate all AMP documentation in `docs/` (ampproject#34047)

* 📦 Update dependency geckodriver to v2 (ampproject#34404)

* 📦 Update linting devDependencies (ampproject#34409)

* 📖 Move AMP documentation from `spec/` to `docs/spec/` (ampproject#34160)

* 🚮  [Story bookend] Disabled bookend and related tests (ampproject#34354)

* Disabled bookend and related tests

* Removed checks to bookend

* Linted

* Made bookend an alias of social-share

* Removed bookend test since it's not showing

* Removed bookend tests

* Fixed linting

* Cleanup

* Fixed linting again

* Removed visual tests

* Fixed test

* 📦 Update dependency open to v8.0.9 (ampproject#34408)

* 📦 Update dependency esbuild to v0.11.23 (ampproject#34407)

Co-authored-by: Raghu Simha <[email protected]>

* ♻️ [bento][amp-base-carousel] Split component files for NPM Packaging (ampproject#34283)

* Initial commit for base-carousel conversion

* Additional updates

* Add npm files

* Update z-index doc

* Update z-index

* 📦 Update dependency rollup to v2.48.0 (ampproject#34410)

* ♻️ Enable passing type-checking on src/context (ampproject#34387)

* enable src-context type-check target

* Fix type errors in src/context

* export ContextPropDef

* for...of in scan

* clean up scheduler types

* Update ContextPropDef in subscriber

* update types in index

* update types in index

* update types in contextprops

* update types and for...of in node

* Drastically narrow types in values

* Add DEP template type to contextpropdef

* type-narrow subscriber

* Clean up scheduler type decl

* use templates in scan

* Update index prop and setter types

* Allow subscriber ID template type

* Add deps template arg for contextprops

* Add SID for return type

* Assert non-null subscriber IDs

* Code review tweak

* Remove template type from static function

* forEach -> for..of

* Revert forEach changes to Maps

* 🐛 amp-ima-video: Fix pause button jamming on autoplay (ampproject#34307)

When autoplaying a video with a preroll ad, the pause button will not work the first time. This is because we haven't tracked the `PlayerState`. This change keeps track of `PlayerState` on ad events, as meant initially.

* ♻️ Start moving URL helpers into core (ampproject#34399)

* Move query string parsing into core

* Update dep-check config

* Move query string parsing helper tests

* Fix typo

* Restore deleted forbidden-terms rule

* Update single imports of helpers

* Update multi-imports of url helpers

* Fix straggler imports

* Lint fixes

* 🐛  [Story devtools] Toggle devtools on mjs build (ampproject#34372)

* IsDevelopmentMode

* return boolean jsdoc

* Use include since we polyfill

Co-authored-by: Ryan Cebulko <[email protected]>

* Removed useless comment

Co-authored-by: Ryan Cebulko <[email protected]>

* 🚮  [Story bookend] Remove bookend extended code (ampproject#34343)

* Started removing bookend

* Finished removing bookend from files

* Fixed linting

* Updated validation tests

* Updated validation tests 2

* Removed bookend strings

* Disabled bookend and related tests

* Removed checks to bookend

* Linted

* Made bookend an alias of social-share

* Removed bookend test since it's not showing

* Removed bookend tests

* Fixed linting

* Cleanup

* Fixed linting again

* Removed visual tests

* Fixed test

* Fixed test

* Fixed request service tests

* Fixed visual tests

* Bring back validation tests for bookend

* persist playing state on config (ampproject#34356)

* Fix invisible merge conflict (ampproject#34420)

* cl/373617376 Make the process of auto-generating validator.pb.go compatible with protoc v3.16.0. (ampproject#34428)

Co-authored-by: Michael Rybak <[email protected]>

* 📖 Migrate `Intent-to-*` issue templates to yaml forms (ampproject#34431)

* Use validator_wasm.js as default validator (ampproject#34213)

* 📖 Delete the manual error report issue template (ampproject#34435)

* 📦 Update validator devDependencies to eb6e927 (ampproject#34436)

* 📦 Update dependency esbuild to v0.12.1 (ampproject#34421)

* 📦 Update babel devDependencies to v7.14.3 (ampproject#34418)

* ✅  [Story video] Add e2e tests for Bitrate Manager (ampproject#33660)

* Created e2e test

* Added tests

* Fixed e2e tests

* Removed comment

* Removed unused import

* Addede e2es

* Moved field to html

* More work on e2e

* Added load unload fixture

* Fixed tests

* Added more tests and cleaned up hooks

* Added multiple sources on first videos to test flexible-bitrate

* Changed e2es to work

* Removed whitespaces

* Adding cache fetch test

* Add e2e fixture to disallowlist for validate

* fixed host_url in e2e

* Updated tests

* Changed order of test conditions for consistency

* Update extensions/amp-video/0.1/test-e2e/test-amp-video-flexible-bitrate.js

* Update extensions/amp-video/0.1/test-e2e/test-amp-video-flexible-bitrate.js

Co-authored-by: Gabriel Majoulet <[email protected]>

* 📖 Migrate the release tracker template to a yaml form (ampproject#34440)

* 📦 Update dependency @types/node to v14.17.0 (ampproject#34429)

* 📦 Update dependency eslint-plugin-jsdoc to v34.8.2 (ampproject#34415)

* Check if documentHeight has changed after all elements initially built (ampproject#34434)

* SwG release 0.1.22.166 (ampproject#34444)

* ✨[amp-form] allow `form` attributes for form elements outside of `amp-form` (ampproject#33095)

* Init

* init

* handler => service

* Tests

* ServiceForDoc no promise

* Validator, WeakMap of Array, nits

* Update build-system/test-configs/forbidden-terms.js

Co-authored-by: Alan Orozco <[email protected]>

* Update extensions/amp-form/0.1/amp-form.js

Co-authored-by: Alan Orozco <[email protected]>

* Update extensions/amp-form/0.1/amp-form.js

Co-authored-by: Alan Orozco <[email protected]>

* Account for amp-selectors (in and out)

* fix test

* Update build-system/test-configs/forbidden-terms.js

Co-authored-by: Raghu Simha <[email protected]>

Co-authored-by: Alan Orozco <[email protected]>
Co-authored-by: Raghu Simha <[email protected]>

* Add adoptedCallback to work around Firefox Native CE bug (ampproject#34455)

See https://output.jsbin.com/yuwojok/29/quiet for a working demo of the bug. When we construct a CustomElement in one document, then insert it into another document (as we do with A4A ads), Firefox incorrectly resets the prototype of our CE instance to `HTMLElement.prototype`.

Luckily, we can fix this by listening for the `adoptedCallback`, which fires just after Firefox resets the prototype. If we detect a broken prototype chain, we can correct it before any other code can notice. See https://output.jsbin.com/datajos/5/quiet for a demo of the fix.

* ✨ Update npm amphtml-validator to v1.0.35 (ampproject#34454)

* Update npm amphtml-validator to v1.0.35

* Update readme

* ♻️ Cleaning up Log error code in preparation for core (ampproject#34458)

* Move core/error.js -> core/error/index.js

* Move user error helpers to error-message-helpers

* Move error-message-helpers to error/message-helpers

* spread args in log where slicing

* Use loglevel enum in msg_

* Add TODO

* string.includes

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error/message-helpers.js

Co-authored-by: Justin Ridgewell <[email protected]>

* 📦 Update com_google_googletest commit hash to aa9b44a (ampproject#34452)

* ♻️ Create plain `<img>` placeholders (ampproject#34379)

Where extensions would previously create `<amp-img>` placeholders, now create a plain `<img>` element with `loading="lazy"`

* remove brotli check as these files do not exist on cdn anymore (ampproject#34457)

* remove brotli check as these files do not exist on cdn anymore

* prettier

* ♻️ Support img element (ampproject#34028)

* Allow IMG so long as it contains a loading attribute

* Make width and height mandatory

* Move method from within AMP.BaseElement to src/core/dom since it must act on native elements and extended AMP elements now

* Update validator output

* Mid way stopping point on amp-lightbox-gallery cloneLightboxableElement_

* Lightbox gallery now supports image elements

* Use Sets instead of objects

* PR feedback on name of utility and usage of other utilities

* lightbox had a bad reference

* Spy on the right thing now

* Remove validator changes for a later step

* Carriage returns at the end of the out files for the validator

* Updated carriage returns at end of files

* Update comments

* Move auto lightbox to loadPromise

* Remove Set in amp-auto-lightbox

* Remove set in amp-image-lightbox

* Remove logic specific to amp-img for the img path

* Additional fixes for Set usage

* test for supporting img on amp-image-lightbox

* Add tests for propagate attributes helper and fix usage in iframe-video

* Additional fixes for propagateAttributes from AMPElements

* Bad merge

* pass ampdoc in Criteria so its not obtained from an HTMLElement

* change order of arguments to reduce test rewriting for Criteria

* Fix types in propagate attributes

* Prettier formatting

* different prettier versions

* update core utility with improved typing from below

* Address part of Alans feedback

* types

* remove toLowerCase on tagName

* Test changes from PR feedback (and applied elsewhere in the file)

* Add support for native HTMLImageElements to amp-image-slider

* Add test using HTMLImageElements

* Revert changes to gestures for a later PR

* Continued progress, pan zoom works and lightbox gallery is underway

* LayoutScheduled for amp-carousel 0.1 when unlayout happening

* Remove image support for amp-image-viewer for a future PR

* Image Viewer no longer needs to exclude itself from using loadPromise directly

* Remove console logging for carousel debugging:

* Remove breaks in parsing of children for amp-image-slider

* No need to provide an empty array for the Set constructor

* Remaining console

* Nit

* Remove more intermediary state changes

* Naming nit

* prettier formatting in test

* support loading indicator and no-loading attribute (ampproject#34467)

* 📦 Update dependency amphtml-validator to v1.0.35 (ampproject#34472)

* 📖 Migrate the cherry-pick request template to a yaml form (ampproject#34463)

* 📦 Update build-system devDependencies (ampproject#34231)

* 📖 Assorted issue and PR template fixes (ampproject#34473)

* amp-list: Support diffable with single-item (ampproject#33249)

* Revert "Revert "amp-list: Fix Bind.rescan vs. diffing race condition (ampproject#32650)" (ampproject#33232)"

This reverts commit 60adca7.

* Support diffable with single-item.

* Fix test.

* Fix lint.

* 📦 Update com_googlesource_code_re2 commit hash to 4244cd1 (ampproject#34476)

* ✨Update amp-analytics provider bluetriangle.json to change the triggers and transport (ampproject#34423)

* added blue triangle AMP integration info

* fixed minor nitpicks for AMP integration

* added client ID instead of random substring for guid and session id

* added new lines at end of file

* amp prettify command changes

* Revert "amp prettify command changes"

This reverts commit 1c489b2.

* reverted last changed, only have the needed changes

* got rid of not needed extra url params

* changed to endpoint from base

* remove question mark

* made sure web vitals were present, changed format of client id in vendor example

* more changes

* changed blue triangle trigger to ini-load, added test variable to vendors example page, changed blue triangle transport to xhrpost

* 📦 Update com_google_googletest commit hash to 9741c42 (ampproject#34483)

* 🏗 Enable VSCode auto-formatting and prettier checks for `.yml` files (ampproject#34478)

* [Amp story] [Page attachments] [Outlink] Remove open attachment delay and animation (ampproject#34477)

* Remove open attachment delay.

* Revise preview animation duration.

* 📦 Update linting devDependencies (ampproject#34474)

* 📦 Update subpackage devDependencies (ampproject#34486)

* 📦 Update dependency eslint-plugin-jsdoc to v35 (ampproject#34494)

* 📖 amp-animation: Clarify prefers-reduced-motion (ampproject#34442)

* Adding Tail as rtc vendor (ampproject#34481)

* 🖍 Prevent native `img` elements from being styled by `ampshared.css` (ampproject#34482)

* Prevent `[width][height][sizes]` selectors from inadvertently matching `img` elements

* Allow `height` and `width` on `amp-img > img (transformed)`

* Unlaunch auto-ads-no-insertion-above holdback experiment (ampproject#34425)

* ✅ [AMP Story] [Page attachments] Update visual tests for new UIs (ampproject#34223)

* visual tests

* make pages look same

* nit

* revert nit

* remove references to inline-dark-theme visual test

* adding images and extra tests

* moving tests for v2 to a diff file

* documenting v2 tests

* adding cover id

* adding snapshots and experiment

* change IDs

* adding js test navigation

* adding js test navigation

* formatting

* edit tests

* format

* format

* format

* adding next page

* adding next page

* adding rest of pages

* lint

* testing adding active on openAttachmentEl

* changing selector

* typo

* adding important

* Improve targeting of img in remote-content.

* Refactor go to page

Removes tap simulation to navigate to page. Removes timeout. Improves selector to be sure page is visible.

* Use same interactive tests for desktop.

* Remove desktop.js

JS can be re-used for desktop and mobile.

Co-authored-by: Philip Bell <[email protected]>

* ✨Use WebAssembly validator for chrome extension (ampproject#34502)

* Use WebAssembly validator for chrome extension

* Use es5 for popup.html

* Init wasm before polymer code

* 🏗 Move default PR template to `.github` directory (ampproject#34506)

* 🏗 Consolidate glob expansion while determining build targets (ampproject#34509)

* 📦 Update dependency @percy/core to v1.0.0-beta.51 (ampproject#34508)

* Use isModeDevelopment for validator integration (ampproject#34503)

* Use isModeDevelopment

* fix test failures

* update related test

* 🏗  ♻️  Fix ALMOST all type issues in /build-system (ampproject#34438)

* patched all fixable type errors

Co-authored-by: Raghu Simha <[email protected]>

* 📦 Update dependency esbuild to v0.12.2 (ampproject#34518)

* 📖 Add bug report fields for OSs and Devices (ampproject#34522)

* 📖 Use `n/a` instead of `/all` in the OS and device fields (ampproject#34524)

* 🏗 Enable a lint rule to auto-sort destructure keys (ampproject#34523)

* Added attributes to adpushup amp-ad (ampproject#34459)

Added data-jsontargeting and data-extras attributes to adpushup amp-ad
vendor integration

Co-authored-by: Rahul Ranjan <[email protected]>

* 🏗  Update build-system subpackages before checking types (ampproject#34525)

* 🏗 Include dotfiles while expanding globs during the CI check for valid URLs (ampproject#34510)

* 📦 Update com_google_googletest commit hash to a3460d1 (ampproject#34530)

* ✨ [bento][npm] Support react modules in NPM Bento components (ampproject#34528)

* Updates for react npm

* Ignore eslint rule

* add amp-onerror validation for v0.js or v0.mjs (ampproject#34531)

* Sync for validator/cpp/engine (ampproject#34534)

* Don't populate spec_file_revision field in ValidationResult. The field is deprecated.

PiperOrigin-RevId: 373462878

* Delete ParsedValidatorRules::SpecFileRevision().

PiperOrigin-RevId: 373688076

* Allow i-amphtml-layout-awaiting-size class in FLUID layout

PiperOrigin-RevId: 375586004

Co-authored-by: Googler <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>

* cl/375586004 Allow i-amphtml-layout-awaiting-size class in FLUID layout (ampproject#34533)

Co-authored-by: Justin Ridgewell <[email protected]>

* Sync for validator/cpp/htmlparser (ampproject#34536)

* Fix out of memory errors for a particular fuzzer test case which end up in
parsing entire contents of a binary blob as attributes.

Defined a flag for maximum attributes a node may contain. This value is
reasonably large to cover all real world documents.

PiperOrigin-RevId: 375586875

* Update CONTRIBUTING.md

* Update README.md

* Update amp4ads-parse-css.h

* Add missing dependency

Co-authored-by: Amaltas Bohra <[email protected]>

* 🐛 [Amp story] [Page attachments] [Outlink] Open remote from light dom (ampproject#34535)

* Element child

* Revert regression

* Trigger click from light dom

* Revert.

* revert

* revert

* Revert

* Ramp up 3p vendor splitting to 50% (ampproject#34468)

* 🏗  Automate bento publishing with a GitHub Action (ampproject#34430)

* Skip "should render correctly" (ampproject#34541)

* 🏗 Don't type-check server transform output (ampproject#34537)

* ✨  [amp-render] validator changes (ampproject#34366)

* 📦 Update core devDependencies (ampproject#34451)

* ✨  [amp-render] documentation (ampproject#34391)

* 📖 Make a few bug report fields optional (ampproject#34547)

* 📦 Update dependency esbuild to v0.12.3 (ampproject#34555)

* 📦 Update dependency core-js to v3.13.0 (ampproject#34538)

* 🏗 Auto-format dev dashboard tests (ampproject#34546)

* cl/375855105 Extract AMP Cache Domain validation, part 1 (ampproject#34558)

Co-authored-by: honeybadgerdontcare <[email protected]>

* ♻️ Migrate math and some DOM logic into core w/ type-checking (ampproject#34550)

* Move utils/dom-fingerprint to core/dom/fingerprint

* Fix imports in fingerprint.js

* Move utils/date to core/dom/parse-date-attributes

* Improve types in parse-date-attributes

* Move utils/dom-based-weakref to core/dom/weakref

* Update test names

* Add __AMP_WEAKREF_ID extern

* Move math, id-gen, layout-rect to core/math

* Update types for layout-rect

* Move get-html into core/dom

* Move isFiniteNumber into core/types

* Move document-ready to core

* Move web-components to core/dom

* Fix types in web-components

* Move dom streaming helpers to core/dom/stream

* Update imports of dom-fingerprint

* Update imports of parseDateAttrs

* Update (only) import of DomBasedWeakRef

* Update imports of math helpers

* Update imports of get-html

* Update imports of isFiniteNumber

* Update imports of document-ready

* Update imports of web-components

* Update imports of dom stream helpers

* Update forbidden-terms

* Not nullable type

* Launch flexible-bitrate experiment to 10%. (ampproject#34549)

* 🏗 Skip NPM checks while type-checking build-system (ampproject#34557)

* Sync for validator/cpp/engine (ampproject#34560)

* Add SSR support for FLUID layout

PiperOrigin-RevId: 375756231

* Extract AMP Cache Domain validation, part 1

Adds method isAmpCacheDomain_ (JS) / IsAmpCacheDomain (C++)

PiperOrigin-RevId: 375855105

Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>

* 📦 Update dependency rollup to v2.50.1 (ampproject#34519)

* 🏗  Add check-build-system to pr-checks (ampproject#34544)

* add check-build-system to pr checks

* fix more type errors

* disable incremental builds

Co-authored-by: Raghu Simha <[email protected]>

* Add unit tests (ampproject#34563)

* 📦 Update core devDependencies (ampproject#34561)

* Track flexible-bitrate experiment through CSI pipeline. (ampproject#34548)

* ✨ [bento][npm] Update file naming from mjs to module (ampproject#34568)

* Update file naming from mjs to module

* import exports should be in alphabetical order

* Rename helper function

* (nit) Replace NPM with npm (ampproject#34573)

* 🏗 Optimize linting during PR builds (ampproject#34567)

* ♿  [amp-render] a11y change (ampproject#34540)

* 📦 Update dependency @sinonjs/fake-timers to v7.1.1 (ampproject#34578)

* 📦 Update dependency rollup to v2.50.2 (ampproject#34579)

* 📦 Update dependency @types/eslint to v7.2.12 (ampproject#34574)

* Facebook: Render embedded type via `data-embed-as` versus element `tagName` (ampproject#34312)

* Switch based on data-embed-as versus tag name

* Update tests

* Update FacebookComments

* Allow dependency on enum

* Remove staticProps

* Update all the tests

* Remove dupe

* Import userAssert

* Allow dependency on enum

* 📦 Update dependency esbuild to v0.12.4 (ampproject#34576)

* ✨ Supports locale options for localeString in amp-date-display. (ampproject#34359)

* ✨ Supports locale options for localeString in amp-date-display.

* Allow user to customize locale options for localeString, the options setting is same as [Date.toLocaleString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString#syntax) parameter.

* [amp-date-display] Moves localeOptions from json type to data-options-*.

* [amp-date-display] Tests and content imporvements.

- Added invalid test cases.
- Throws user error if invalid data-options-* param is provided.
- Updated data-options-* readme doc.
- Added new lines to .out validator files.
- Applied reviewer suggestions.

* 🏗📖 Clean up AMP setup documentation + infrastructure (ampproject#34582)

* Don't block Story render on a fallback media load. (ampproject#34583)

* 🏗 Update bento package.json template (ampproject#34584)

* 📖 Add explanatory text to the LTS and cherry-pick sections of the release tracker (ampproject#34575)

* Run through all actions for each distFlavor in `amp release` before the next (ampproject#34569)

Co-authored-by: Raghu Simha <[email protected]>

* 🏗 Make new typecheck targets simpler (ampproject#34559)

* Remove the need to explicitly specify extern globs

* Add clarifying comment

* Allow type-check target to just be a list of globs

* Update type

* More explanatory comments

* More comments

* Video cache for amp-video[src]. (ampproject#34570)

* Video cache for amp-video[src].

* Update extensions/amp-video/0.1/video-cache.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update extensions/amp-video/0.1/video-cache.js

* Import iterateCursor.

* Reviews.

Co-authored-by: Justin Ridgewell <[email protected]>

* 🐛 Bug fix allowing set height and fixing Ad position (ampproject#34092)

* allowing add data-attributes

* using dataset for shorter code

* fixing error use of style to style elements is forbidden

* fixing default attribute values

* removing sizes

* allowing use min height

* fixing banner alignment

* fixing test

* fixing prettier validation

* fixing prettier validation

* SwG Release 0.1.22.167 (ampproject#34572)

* 🏗  Automatically write react.js files for bento components when publishing (ampproject#34586)

* update node script

* lint

* pr comments

* lint

* Lazy load AMP cache URL and make it optional. (ampproject#34588)

* Revert "♻️ Support img element (ampproject#34028)" (ampproject#34589)

This reverts commit 5a0936f.

* 🏗 Enforce JSDoc across `build-system/` for complete type-checking (ampproject#34591)

* Minimum duration for auto-advance-after. (ampproject#34592)

* Fix time based auto-advance-after. (ampproject#34598)

* Add missing bundles entry for amp-iframely (ampproject#34602)

* 🐛 [no-signing] fix ads using amp-gwd-animation (ampproject#34593)

* Add teads test stack

* FOR-3929: Migrate a.teads.tv to s8t.teads.tv in amphtml E2E tooling

* fix testing

Co-authored-by: Alan Orozco <[email protected]>
Co-authored-by: udaya-m-taboola <[email protected]>
Co-authored-by: Jake Fried <[email protected]>
Co-authored-by: Philip Bell <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>
Co-authored-by: WhiteSource Renovate <[email protected]>
Co-authored-by: Raghu Simha <[email protected]>
Co-authored-by: Ryan Cebulko <[email protected]>
Co-authored-by: mister-ben <[email protected]>
Co-authored-by: Kevin Dwan <[email protected]>
Co-authored-by: Micajuine Ho <[email protected]>
Co-authored-by: Kristofer Baxter <[email protected]>
Co-authored-by: patrick kettner <[email protected]>
Co-authored-by: Caroline Liu <[email protected]>
Co-authored-by: John Pettitt <[email protected]>
Co-authored-by: Elijah Soria <[email protected]>
Co-authored-by: Jon Newmuis <[email protected]>
Co-authored-by: Riley Jones <[email protected]>
Co-authored-by: Zach P <[email protected]>
Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Enrique Marroquin <[email protected]>
Co-authored-by: Matias Szylkowski <[email protected]>
Co-authored-by: Zer0Divis0r <[email protected]>
Co-authored-by: dmanek <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: Esther Kim <[email protected]>
Co-authored-by: Dima Voytenko <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: Caleb Cordry <[email protected]>
Co-authored-by: Tiam <[email protected]>
Co-authored-by: Edmilson Silva <[email protected]>
Co-authored-by: henel677 <[email protected]>
Co-authored-by: AdrianPerry <[email protected]>
Co-authored-by: Harshad Mane <[email protected]>
Co-authored-by: Weston Ruter <[email protected]>
Co-authored-by: Allan Banaag <[email protected]>
Co-authored-by: Michael Rybak <[email protected]>
Co-authored-by: Boxiao Cao <[email protected]>
Co-authored-by: qidonna <[email protected]>
Co-authored-by: William Chou <[email protected]>
Co-authored-by: dulpneto <[email protected]>
Co-authored-by: Shihua Zheng <[email protected]>
Co-authored-by: Raksha Muthukumar <[email protected]>
Co-authored-by: Philip Bell <[email protected]>
Co-authored-by: madan-mayank <[email protected]>
Co-authored-by: Rahul Ranjan <[email protected]>
Co-authored-by: Googler <[email protected]>
Co-authored-by: Amaltas Bohra <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>
Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Jingfei <[email protected]>
Co-authored-by: Daniel Rozenberg <[email protected]>
Co-authored-by: Pablo <[email protected]>
Co-authored-by: Chris Antaki <[email protected]>
Co-authored-by: RonanDrouglazet <[email protected]>
vincentditlevinz added a commit to teads-graveyard/amphtml that referenced this pull request Jun 1, 2021
* 🐛 amp-youtube 1.0: forward mute method (ampproject#34221)

Previous oversight.

* ✅ Validator rules for amp-vimeo 1.0 (ampproject#34199)

* ✨ added support for consent for Taboola amp-analytics (ampproject#34166)

* added support for consent for Taboola amp-analytics

* fixed the consent substitution variable name

* fixed the consent substitution name

* fixed unit tests

* Types: fix all type parse errors and ensure no new ones crop up (ampproject#34105)

* Types: fix all type parse errors

* self nits

* run prettier

* fix a new parse error, make low-bar target

* Update panning-media-docs (ampproject#34236)

* resources: rename V1 to R1, to clear up ambiguity (ampproject#34227)

* allow http and relative for amp-story-page-attachment (ampproject#34234)

* ♻️  Types: opt for null shorthand (ampproject#34233)

* types: shorthand for |null

* a few more

* fix test

* 📦 Update core dependencies (ampproject#34146)

Co-authored-by: Raghu Simha <[email protected]>

* ♻️ Enable type-checking src/polyfills in CI (ampproject#34239)

* Clean up directory globs

* Move src/core srcs+externs to const arrays

* Exclude fetch/get-bounding-client-rect for now

* Provide extern for promise-pjs polyfill

* Fix types and add comments in abort-controller

* Fix types and add comments in intersection-observer-stub

* Remove @Suppress {checkTypes} from promise

* Fix @this type for document.contains() polyfill

* Remove unneeded typecast to unknown

* Fix types and add comments in resize-observer-stub

* Fix types and add comments in custom-elements

* Add !

* Fix types in get-bounding-client-rect

* Add more !

* Lint fixes

* Allow custom-element.externs.js to use window

* Revert no-op JSDoc changes

* Remove connected callback externs and typecast instead

* Clean up typedefs for observer stubs

* Fix typo

* Dedupe typedef

* 🐛 amp-brightcove: improve autoplay handling (ampproject#34207)

Following an update to the Brightcove Player's AMP support plugin, this update makes sure autoplay is handled correctly in all cases.

- Removes any autoplay query param, including the interim autoplay=false
- Distinguishes play messages sent through postmessage which are autoplay requests

* ♻️📖 Provide a Storybook wrapper to execute video actions (ampproject#34222)

Extract a wrapper to add video action buttons to an AMP Storybook.

https://user-images.githubusercontent.com/254946/117086191-c4e6d700-ad00-11eb-95ff-f9e3b51caf2b.png

* [bento][npm] Add package.json for all bento components with npm definition (ampproject#34087)

* Add package.json for all bento components with npm definition

* Add newline at end of file

* Fix indentation

* Newline at end of file

* Fix newline

* Add recently published timeago, update NPM definitions

* Remove package for render, sidebar, twitter which are not published

* Update version for amp-timeago package

* ♻️ Name amp-ima-video methods uniformly for Bento (ampproject#34246)

Rename `postMessage` method names so that they're uniform with `VideoIframe`'s. This simplifies the upcoming Bento implementation.

* Remove consent storage limit for viewer (ampproject#34054)

* 🐛 Fix bad type (ampproject#34254)

* Noticed these changes while refactoring on another branch (ampproject#34250)

* update amp-script console error to mention data-ampdevmode (ampproject#34235)

* ♻️ Move `imaVideo.js` so it can be owned by Bento and Components (ampproject#34247)

* ♻️ 📖 Global dep-check rule for Bento video (ampproject#34252)

We can more simply allow `extensions/**` files to import specific files from `amp-video/1.0`. It should be ok in any case.

* 🏗  runtime: allow for iterator polyfill (ampproject#34249)

* runtime: allow for iterator polyfill

* Empty commit

* lint!

* Bento: Prepare Twitter Preact implementation (ampproject#34194)

* Do not override user given height until message gives one

* Support tweetid directly

* Support bootstrap directly

* Add unit tests

* Support momentid directly

* Add Storybook samples for additional options

* Use Sinon syntax for spying on setter

* Log output when onError set (ampproject#34259)

* ✅ ♻️  `<amp-ima-video>` test is not an AMP element test (ampproject#34230)

The existing file `test-amp-ima-video.js` is a misnomer since it does not actually test the `<amp-ima-video>` element, only what it loads inside the frame.

Accordingly, rename `test-amp-ima-video.js` as `test-ima-video-internal.js`. Also remove stubs specific to the AMP runtime, since it doesn't run inside the iframe.

* 🚀 Remove Error classification (ampproject#34257)

* Remove Error classification

* Left over let declaration

* Remove jse error field

* 🏗  amp-subscriptions* owners update (ampproject#34261)

* Update OWNERS

* Update OWNERS

* SwG Release 5/5/21 (ampproject#34238)

* 🏗️ Simplify enabling npm bundle for components (ampproject#34262)

* Simplify enabling npm bundle

* %s/const/let/

* 🏗 Add `wg-components` as bundle size approver of dist.3p/ (ampproject#34267)

* ♻️  refactor: move builtin components to their own folders (ampproject#34237)

* refactor: move builtin components to their own folders. organization++

* fix imports / and references in md files.

* closure glob include

* ✨ [Amp story] Add `amp-story-page-outlink` component (ampproject#34171)

* Fix conflicts.

* Advancement, test and comment.

* querySelector

* Fix conflicts.

* Validator, component and template.

* Fix merge conflicts.

* Remove duplicate code.

* Outlink validator rule.

* Alphabetize

* amp-twitter: Add Storybook samples (ampproject#34273)

* Add comprehensive Storybook samples for amp-twitter

* Add deleted and invalid tweet-id cases

* Name exported functions in PascalCase

* 📖 Update LTS release docs to indicate supported AMP flavors (ampproject#34258)

* Update lts-release.md

* Update lts-release.md

* 📦 Update dependency mocha to v8.4.0 (ampproject#34270)

* 🏗 Disable JSDoc requirement on Storybook files (ampproject#34255)

Disable `require-jsdoc` since it auto-fixes, and we don't need JSDoc in these locations.

We preserve the following rules since they ensure correctness, like type-check already does.

jsdoc/check-param-names
jsdoc/check-tag-names
jsdoc/check-types
jsdoc/require-param
jsdoc/require-param-name
jsdoc/require-param-type
jsdoc/require-returns
jsdoc/require-returns-type

* 📦 Update dependency google-closure-compiler to v20210505 (ampproject#34269)

* 📦 Update dependency @ampproject/worker-dom to v0.29.3 (ampproject#34242)

* 📦 Update core devDependencies (ampproject#34240)

* 🖍 [Amp story] [Page attachments] Style adjustments (ampproject#34275)

* SVG edit

* SVG adjustment.

* Drop shadows.

* Prevent clipping of decenders. Drop shadow.

* ♻️  [bento][amp-stream-gallery] Split component files for NPM Packaging (ampproject#34208)

* Split amp-stream-gallery

* Rename jss and type files

* Review comments

* Add package.json file

* Fix indentation

* Update npm and latest version in config

* Update dependency config

* Update zindex doc

* Update npm definition

* [bento][amp-sidebar] SSR compatible design for Sidebar Toolbar (ampproject#34158)

* SSR compatible design for Toolbar

* Various code review comments from Caroline

* Additional review comments

* Review comments

* Remove unused import

* Add sanitation

* Update sanitization method

* Update return type for helper function

* Remove truthiness checks that are redundant

* Add unit tests

* ♻️ 🏗  Fix type errors in runtime-test-base (ampproject#34161)

* fix types in runtime-test-base

* ♻️  🏗  Create proxy for kleur/colors to expand typing. (ampproject#34243)

* references to kleur/colors now pass through build-system/common/colors

Co-authored-by: Raghu Simha <[email protected]>

* update babel.config

* 📦 Update com_googlesource_code_re2 commit hash to aa45633 (ampproject#34290)

* Check video duration when setting AutoAdvance default (ampproject#34153)

* Handle AutoAdvance duration

* Update extensions/amp-story/1.0/amp-story-page.js

Co-authored-by: Enrique Marroquin <[email protected]>

* Update extensions/amp-story/1.0/page-advancement.js

Co-authored-by: Enrique Marroquin <[email protected]>

Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Enrique Marroquin <[email protected]>

* 📦 Update dependency postcss-import to v14.0.2 (ampproject#34297)

* 📦 Update dependency eslint to v7.26.0 (ampproject#34289)

* ❄️ Skip flaky stories tests (ampproject#34303)

* 🏗 Improve usability of `describes` by making it configurable (ampproject#34286)

* 📦 Update dependency postcss to v8.2.15 (ampproject#34301)

* ✅ Validator rules for amp-video-iframe 1.0 (ampproject#34200)

* amp-twitter:1.0 - Allow binding to data-tweetid and other configuration attrs (ampproject#34296)

* Add Storybooks for mutation

* Reload iframe when context (via name) changes

* Add unit test

* PascalCase

* Named vars in test

* 🚮 Remove unused font from examples (ampproject#34309)

* 🚮 Remove unused font from examples

* Remove CSS uses without <link>

* update validator files

* ✨ Add parameter to configure amp-story-player animation (ampproject#34204)

* added animation options

* Removed animation from behaviordef

* Added newline on player

* Added documentation on options

* Use next to toggle animation

* Use transitionend

* Using classes for CSS

* Reverted requestAnimationFrame promise

* Added tests

* Apply suggestions from code review

Co-authored-by: Enrique Marroquin <[email protected]>

* Use true instead of property

Co-authored-by: Enrique Marroquin <[email protected]>

Co-authored-by: Enrique Marroquin <[email protected]>

* 🐛 [amp-lightbox-gallery] Use declared amp-carousel extension to build carousel (ampproject#34292)

* init

* nit

* Get reference to win. (ampproject#34299)

* ♻️  `<amp-ima-video>`: Serialize children (ampproject#34229)

`<amp-ima-video>` takes children like:

```
<amp-ima-video>
  <source data-foo="bar" src="src" />
  <track src="src" />
</amp-ima-video>
```

These were previously serialized as HTML on `buildCallback` to be pass to the iframe to (unsafely) write onto `innerHTML`:

```
<amp-ima-video
  data-child-elements='<source data-foo="bar" src="src" /><track src="src" />'
></amp-ima-video>
```

To prepare for a Bento implementation, we serialize into a JSON format that a Preact component can build more simply and safely:

```
[
  ["SOURCE", {"data-foo": "bar", "src": "src"}],
  ["TRACK", {"src": "src"}]
]
```

This change only affects the interface between the `<amp-ima-video>` element and its own proxy `<iframe>`. It does not affect anything author-facing since they will continue to write children `<source>` and `<track>` elements as such.

* 📦 Update dependency eslint-plugin-jsdoc to v34 (ampproject#34304)

* 🏗✅ Sandbox all unit and integration tests (ampproject#34305)

* Bento: Assign placeholder and fallback elements to service slot (ampproject#34310)

* Pass placeholder and fallback to shadow

* Add unit test

* Type annotation

* Remove auto import

* 📦 Update linting devDependencies (ampproject#34288)

Co-authored-by: Raghu Simha <[email protected]>

* 📦 Update dependency esbuild to v0.11.19 (ampproject#34147)

* 📦 Update dependency esbuild to v0.11.19

* Add workaround for evanw/esbuild#1202

* Hack: leave .mjs as esm

* cleanup

* experiment with excluding all of node_modules instead of just .mjs files.

* update comment

* nit:hoist

Co-authored-by: Raghu Simha <[email protected]>
Co-authored-by: Jake Fried <[email protected]>

* Update tests of updateTimeDelay to be more fuzzy (ampproject#34313)

* 📦 Update dependency esbuild to v0.11.20 (ampproject#34322)

* 🐛✨ [amp-ad] [amp-auto-ads] Firstimpression.io: more debug options,  (ampproject#34170)

* FirstImpression.io: debug parameters also as query search parameters

* FirstImpression.io: use pageViewId64, more debug options

* 🏗 Sandbox `describes.repeated` and get rid of the global `window.sandbox` (ampproject#34329)

* amp-render a11y (ampproject#34320)

* 🐛 [Amp story] [Page attachments] [Outlink] Split outlink codepaths for open attachment (ampproject#34330)

* Split outlink codepaths.

* Lint.

* ♻️ Modernize some core code (ampproject#34280)

* Use null coalesce and deferred

* Use for...of instead of forEach

* Simplify Deferred class

* Tweak Observable to use removeItem, for..of, ??

* Fix typo

* %s/break/continue/

* ✨  Text fragments support on amp viewer (ampproject#34074)

* Initialize Logs in web-push's helper frame endpoint (ampproject#34326)

* Find existing element by attr not tagName (ampproject#34325)

* cl/372175665 amp-vimeo: prioritize v0.1 over v1.0 in tagspec ordering (ampproject#34339)

* Add unit tests for amp-facebook-comments:0.1 (ampproject#34331)

* Add unit tests for amp-facebook-comments

* Fix unit tests in 1.0

* Lint

* Let GitHub Actions write package jsons for bento (ampproject#34311)

* wnode script

* error handle

* log

* move files

* pr comments

* 🏗 Add OWNERS for `src/preact` (ampproject#34298)

* Create OWNERS file for src/preact

* Add jridgewell

* carolineliu -> caroqliu

* 📦 Update com_googlesource_code_re2 commit hash to bc42365 (ampproject#34341)

* Add additional wording to tests (ampproject#34334)

Closes ampproject#34260


Adds additional language around using `_top` in swipe up links (opening the link in the parent window for viewers).

(Follow up for ampproject#34030)

* 📦 Update dependency eslint-plugin-jsdoc to v34.0.2 (ampproject#34336)

* 📦 Update dependency jest-progress-bar-reporter to v1.0.21 (ampproject#34338)

* 📦 Update babel devDependencies to v7.14.2 (ampproject#34344)

* 📦 Update core devDependencies (ampproject#34353)

* Solve dumb CC type inference bug (ampproject#34355)

* Upgrade Preact to 10.5.13 (ampproject#30043)

* Upgrade Preact to 10.4.8

* update preact to latest

Co-authored-by: Jake Fried <[email protected]>

* ♻️ Start updating assertions to use core/assert instead of src/log (ampproject#34284)

* Prefix user/dev assert fns

* Update renamed imports

* Update imports to drop "pure"

* Update src/utils assert imports

* Update src/{polyfills,preact,purifier,web-worker} assert imports

* Update src/{inabox,amp-story-player} assert imports

* Fix merge breakage

* Fix merge breakage

* 🏗♻️ Refactor and simplify initialization / clean up of unit and integration tests (ampproject#34346)

* ♻️ Provide core `tryCallback` helper (ampproject#34348)

* Provide tryCallback helper

* Import shared helper where relevant

* Remove spread param

* Fix missing import

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error.js

Co-authored-by: Justin Ridgewell <[email protected]>

* ♻️ Clean up extern typedefs (ampproject#34345)

* Un-extern AssertionFunction typedef

* Un-extern Timestamp

* Move UnlistenDef to function.extern.js

* %s/Timestamp/TimestampDef/ for linter

* Fix typo

* Fix log type decl

* ♻️ Modernize polyfills (ampproject#34342)

* dedupe rethrowAsync

* modernize fetch polyfill

* modernize custom-elements polyfill

* modernize polyfill stubs

* modernize object-assign polyfill

* update straggler

* Fix typo

* typecast elements_

* Revert changes to fetch polyfill

* Revert changes to fetch object-assign

* Clean up stub types by removing nullability

* Update polyfill stub tests

* Fix test change

* ♻️ Consolidating more core type helpers (ampproject#34253)

* Move time.js types into src/core/types/date

* Move finite-state-machine to core/data-structures

* Make core/types/string a submodule

* Move base64 and bytes tests with core

* Move curve.js to core/data-structures

* Make src/core/function a submodule

* Update dep-check and conformance configs for string.js

* Fix legacy tests

* Move tests for exponential backoff

* Standardize data structures tests

* Update test file structure

* Make curve map side-effect-free

* Use map and isString helpers

* Tweak test names

* Fix import

* Fix types

* Update imports of finite-state-machine

* Update imports of bytes and base64

* Update imports of curve

* Update imports of exponential-backoff

* make lerp static

* make getPointX/Y static

* make solvePositionFromXValue static

* make Bezier fully static

* Use Bezier not static this

* Fix typo

* Use static solver in Curves map

* Fix type decls

* tweak comments

* Remove unused import

* Fix imports from merge

* Move normtimedef to curve

* ♻️  Simplify rendering <amp-ima-video> with CSS and static templates (ampproject#34248)

Use static templates and standalone CSS to simplify how we render a modify `<amp-ima-video>`'s internal tree.

This change is unrelated to the Bento effort. Communication between iframe and host is intact.

* Update npm definition and package file for publishing (ampproject#34333)

* 🐛Fix lint error in test-ima-video-internal.js (ampproject#34365)

* amp-script: sandboxed implies nodom (ampproject#34025)

* ✨ [amp-render] `placeholder` and `fallback` support (ampproject#34294)

* 📦 Update com_google_googletest commit hash to 662fe38 (ampproject#34373)

* ✅ Add unit tests for amp-facebook-like (ampproject#34361)

* Add unit tests for amp-facebook-like

* Lint

* fix layout bug (ampproject#34360)

* 📖 Pressboard vendor updates (ampproject#34188)

Update Pressboard analytics config and documentation link.

* ✨ amp-auto-ads extension: Denakop (ampproject#34215)

* feat: Custom style

* Revert "feat: Custom style"

This reverts commit 2e886ec.

* feat: Add custom style

* test: Change tests

* fix: Fix lint issues

* feat: Custom style

* Revert "feat: Custom style"

This reverts commit 2e886ec.

* feat: Add custom style

* test: Change tests

* fix: Fix lint issues

* Revert "fix: Fix lint issues"

This reverts commit 386df3f.

* fix: Fix lint issues

* Forbid private properties inside BaseElement (ampproject#34376)

This fixes a cross binary issue with private properties being mangled to, ie., `lc` inside `BaseElement` base class. The issue is that a subclass extending it in another binary (eg, `amp-a4a`) can reuse that mangled name for something entirely different, because Closure isn't aware of what the base class is at that point.

* SwG release 0.1.22.165 (ampproject#34352)

* SwG release 0.1.22.165

* unbreaks amp test

* ✅ Add unit tests for amp-facebook-page (ampproject#34351)

* Add unit tests for amp-facebook-page

* Move amp-facebook-page test to correct location

* 📖 Disable deadlink checking for Infoline (ampproject#34384)

* 📦 Update dependency esbuild to v0.11.21 (ampproject#34381)

* 📦 Update linting devDependencies (ampproject#34377)

* 🚮 Clean up obsolete npm resolutions (ampproject#34388)

* ♻️ 🏗  Fix typing in the build-system (ampproject#34162)

* fix type errors

* make suggested changes

* Update build-system/test-configs/jscodeshift/index.js

Co-authored-by: Raghu Simha <[email protected]>

* Update build-system/tasks/serve.js

* add empty passing check to visual-diff tests when they are not needed (ampproject#34371)

* Remove FunctionalTestController, make ControllerPromise extend Promise (ampproject#33844)

* remove functionaltestcontroller, rename functional-test-controller file

* rename functional-test-types to e2e-types

Co-authored-by: Enrique Marroquin <[email protected]>

* ✅ [Story player] Fix animation unit test flakiness (ampproject#34382)

* added animation options

* Removed animation from behaviordef

* Added newline on player

* Added documentation on options

* Use next to toggle animation

* Use transitionend

* Using classes for CSS

* Reverted requestAnimationFrame promise

* Added tests

* Apply suggestions from code review

Co-authored-by: Enrique Marroquin <[email protected]>

* Use true instead of property

Co-authored-by: Enrique Marroquin <[email protected]>

* Removed trailing whitespace

* Fixed linting

* Wait for transitionend

Co-authored-by: Enrique Marroquin <[email protected]>

* 🏗 Switch AMP's main bug template to a yaml-based form (ampproject#34393)

* Adding Blue Triangle to amp-analytics list✨ (ampproject#34012)

* added blue triangle AMP integration info

* fixed minor nitpicks for AMP integration

* added client ID instead of random substring for guid and session id

* added new lines at end of file

* amp prettify command changes

* Revert "amp prettify command changes"

This reverts commit 1c489b2.

* reverted last changed, only have the needed changes

* got rid of not needed extra url params

* changed to endpoint from base

* remove question mark

* made sure web vitals were present, changed format of client id in vendor example

* more changes

* 🏗 Allow Performance WG to manage check-types (ampproject#34395)

* Allow Performance WG to manage check-types

* Lint fixes

* Fix nits in ampproject#34376 (ampproject#34392)

* 📦 Update dependency karma-esbuild to v2.2.0 (ampproject#34396)

* ♻️ Extract json helpers to core/types/object/json (ampproject#34367)

* Make types/object submodule

* Update path in presubmit/lint configs

* Move json externs

* Move json to core

* Shift generic helpers from json to object

* Fix test files

* Fix types excluding json

* Fix types in json

* Clean up and remove dupe code

* Update imports of json

* Remove newlines between imports

* Fix dep-check-config

* Null chaining for [] and ()

* Typo

* Fix callback

* Expand AMP issue template intro text (ampproject#34397)

* ♻️ Enable passing type-checking on src/experiments and src/examiner (ampproject#34394)

* mv src/experiments.js -> src/experiments/index.js

* Make src/experiments pass type-checking

* Allow use of window in extern files

* Remove unused import

* Allow AMP_CONFIG in extern

* Modernize experiments code

* Enable passing type-checking on src/examiner + modernize

* Use assert via logger

* un-hoist

* Clean up extra type annotations

* Fix tests passing object instead of array

* 📖 Convert feature request issue template to a form (ampproject#34398)

* PubMatic OpenWrap to pass consent strings (ampproject#34403)

* use storyNextUp (ampproject#34285)

* 📖 Improve references to the AMP plugin for WordPress in bug report template (ampproject#34401)

* Improve references to the AMP plugin for WordPress

* Fix text to fit on one line and apply to FR template

Co-authored-by: Raghu Simha <[email protected]>

* 📖 Consolidate all AMP documentation in `docs/` (ampproject#34047)

* 📦 Update dependency geckodriver to v2 (ampproject#34404)

* 📦 Update linting devDependencies (ampproject#34409)

* 📖 Move AMP documentation from `spec/` to `docs/spec/` (ampproject#34160)

* 🚮  [Story bookend] Disabled bookend and related tests (ampproject#34354)

* Disabled bookend and related tests

* Removed checks to bookend

* Linted

* Made bookend an alias of social-share

* Removed bookend test since it's not showing

* Removed bookend tests

* Fixed linting

* Cleanup

* Fixed linting again

* Removed visual tests

* Fixed test

* 📦 Update dependency open to v8.0.9 (ampproject#34408)

* 📦 Update dependency esbuild to v0.11.23 (ampproject#34407)

Co-authored-by: Raghu Simha <[email protected]>

* ♻️ [bento][amp-base-carousel] Split component files for NPM Packaging (ampproject#34283)

* Initial commit for base-carousel conversion

* Additional updates

* Add npm files

* Update z-index doc

* Update z-index

* 📦 Update dependency rollup to v2.48.0 (ampproject#34410)

* ♻️ Enable passing type-checking on src/context (ampproject#34387)

* enable src-context type-check target

* Fix type errors in src/context

* export ContextPropDef

* for...of in scan

* clean up scheduler types

* Update ContextPropDef in subscriber

* update types in index

* update types in index

* update types in contextprops

* update types and for...of in node

* Drastically narrow types in values

* Add DEP template type to contextpropdef

* type-narrow subscriber

* Clean up scheduler type decl

* use templates in scan

* Update index prop and setter types

* Allow subscriber ID template type

* Add deps template arg for contextprops

* Add SID for return type

* Assert non-null subscriber IDs

* Code review tweak

* Remove template type from static function

* forEach -> for..of

* Revert forEach changes to Maps

* 🐛 amp-ima-video: Fix pause button jamming on autoplay (ampproject#34307)

When autoplaying a video with a preroll ad, the pause button will not work the first time. This is because we haven't tracked the `PlayerState`. This change keeps track of `PlayerState` on ad events, as meant initially.

* ♻️ Start moving URL helpers into core (ampproject#34399)

* Move query string parsing into core

* Update dep-check config

* Move query string parsing helper tests

* Fix typo

* Restore deleted forbidden-terms rule

* Update single imports of helpers

* Update multi-imports of url helpers

* Fix straggler imports

* Lint fixes

* 🐛  [Story devtools] Toggle devtools on mjs build (ampproject#34372)

* IsDevelopmentMode

* return boolean jsdoc

* Use include since we polyfill

Co-authored-by: Ryan Cebulko <[email protected]>

* Removed useless comment

Co-authored-by: Ryan Cebulko <[email protected]>

* 🚮  [Story bookend] Remove bookend extended code (ampproject#34343)

* Started removing bookend

* Finished removing bookend from files

* Fixed linting

* Updated validation tests

* Updated validation tests 2

* Removed bookend strings

* Disabled bookend and related tests

* Removed checks to bookend

* Linted

* Made bookend an alias of social-share

* Removed bookend test since it's not showing

* Removed bookend tests

* Fixed linting

* Cleanup

* Fixed linting again

* Removed visual tests

* Fixed test

* Fixed test

* Fixed request service tests

* Fixed visual tests

* Bring back validation tests for bookend

* persist playing state on config (ampproject#34356)

* Fix invisible merge conflict (ampproject#34420)

* cl/373617376 Make the process of auto-generating validator.pb.go compatible with protoc v3.16.0. (ampproject#34428)

Co-authored-by: Michael Rybak <[email protected]>

* 📖 Migrate `Intent-to-*` issue templates to yaml forms (ampproject#34431)

* Use validator_wasm.js as default validator (ampproject#34213)

* 📖 Delete the manual error report issue template (ampproject#34435)

* 📦 Update validator devDependencies to eb6e927 (ampproject#34436)

* 📦 Update dependency esbuild to v0.12.1 (ampproject#34421)

* 📦 Update babel devDependencies to v7.14.3 (ampproject#34418)

* ✅  [Story video] Add e2e tests for Bitrate Manager (ampproject#33660)

* Created e2e test

* Added tests

* Fixed e2e tests

* Removed comment

* Removed unused import

* Addede e2es

* Moved field to html

* More work on e2e

* Added load unload fixture

* Fixed tests

* Added more tests and cleaned up hooks

* Added multiple sources on first videos to test flexible-bitrate

* Changed e2es to work

* Removed whitespaces

* Adding cache fetch test

* Add e2e fixture to disallowlist for validate

* fixed host_url in e2e

* Updated tests

* Changed order of test conditions for consistency

* Update extensions/amp-video/0.1/test-e2e/test-amp-video-flexible-bitrate.js

* Update extensions/amp-video/0.1/test-e2e/test-amp-video-flexible-bitrate.js

Co-authored-by: Gabriel Majoulet <[email protected]>

* 📖 Migrate the release tracker template to a yaml form (ampproject#34440)

* 📦 Update dependency @types/node to v14.17.0 (ampproject#34429)

* 📦 Update dependency eslint-plugin-jsdoc to v34.8.2 (ampproject#34415)

* Check if documentHeight has changed after all elements initially built (ampproject#34434)

* SwG release 0.1.22.166 (ampproject#34444)

* ✨[amp-form] allow `form` attributes for form elements outside of `amp-form` (ampproject#33095)

* Init

* init

* handler => service

* Tests

* ServiceForDoc no promise

* Validator, WeakMap of Array, nits

* Update build-system/test-configs/forbidden-terms.js

Co-authored-by: Alan Orozco <[email protected]>

* Update extensions/amp-form/0.1/amp-form.js

Co-authored-by: Alan Orozco <[email protected]>

* Update extensions/amp-form/0.1/amp-form.js

Co-authored-by: Alan Orozco <[email protected]>

* Account for amp-selectors (in and out)

* fix test

* Update build-system/test-configs/forbidden-terms.js

Co-authored-by: Raghu Simha <[email protected]>

Co-authored-by: Alan Orozco <[email protected]>
Co-authored-by: Raghu Simha <[email protected]>

* Add adoptedCallback to work around Firefox Native CE bug (ampproject#34455)

See https://output.jsbin.com/yuwojok/29/quiet for a working demo of the bug. When we construct a CustomElement in one document, then insert it into another document (as we do with A4A ads), Firefox incorrectly resets the prototype of our CE instance to `HTMLElement.prototype`.

Luckily, we can fix this by listening for the `adoptedCallback`, which fires just after Firefox resets the prototype. If we detect a broken prototype chain, we can correct it before any other code can notice. See https://output.jsbin.com/datajos/5/quiet for a demo of the fix.

* ✨ Update npm amphtml-validator to v1.0.35 (ampproject#34454)

* Update npm amphtml-validator to v1.0.35

* Update readme

* ♻️ Cleaning up Log error code in preparation for core (ampproject#34458)

* Move core/error.js -> core/error/index.js

* Move user error helpers to error-message-helpers

* Move error-message-helpers to error/message-helpers

* spread args in log where slicing

* Use loglevel enum in msg_

* Add TODO

* string.includes

Co-authored-by: Justin Ridgewell <[email protected]>

* Update src/core/error/message-helpers.js

Co-authored-by: Justin Ridgewell <[email protected]>

* 📦 Update com_google_googletest commit hash to aa9b44a (ampproject#34452)

* ♻️ Create plain `<img>` placeholders (ampproject#34379)

Where extensions would previously create `<amp-img>` placeholders, now create a plain `<img>` element with `loading="lazy"`

* remove brotli check as these files do not exist on cdn anymore (ampproject#34457)

* remove brotli check as these files do not exist on cdn anymore

* prettier

* ♻️ Support img element (ampproject#34028)

* Allow IMG so long as it contains a loading attribute

* Make width and height mandatory

* Move method from within AMP.BaseElement to src/core/dom since it must act on native elements and extended AMP elements now

* Update validator output

* Mid way stopping point on amp-lightbox-gallery cloneLightboxableElement_

* Lightbox gallery now supports image elements

* Use Sets instead of objects

* PR feedback on name of utility and usage of other utilities

* lightbox had a bad reference

* Spy on the right thing now

* Remove validator changes for a later step

* Carriage returns at the end of the out files for the validator

* Updated carriage returns at end of files

* Update comments

* Move auto lightbox to loadPromise

* Remove Set in amp-auto-lightbox

* Remove set in amp-image-lightbox

* Remove logic specific to amp-img for the img path

* Additional fixes for Set usage

* test for supporting img on amp-image-lightbox

* Add tests for propagate attributes helper and fix usage in iframe-video

* Additional fixes for propagateAttributes from AMPElements

* Bad merge

* pass ampdoc in Criteria so its not obtained from an HTMLElement

* change order of arguments to reduce test rewriting for Criteria

* Fix types in propagate attributes

* Prettier formatting

* different prettier versions

* update core utility with improved typing from below

* Address part of Alans feedback

* types

* remove toLowerCase on tagName

* Test changes from PR feedback (and applied elsewhere in the file)

* Add support for native HTMLImageElements to amp-image-slider

* Add test using HTMLImageElements

* Revert changes to gestures for a later PR

* Continued progress, pan zoom works and lightbox gallery is underway

* LayoutScheduled for amp-carousel 0.1 when unlayout happening

* Remove image support for amp-image-viewer for a future PR

* Image Viewer no longer needs to exclude itself from using loadPromise directly

* Remove console logging for carousel debugging:

* Remove breaks in parsing of children for amp-image-slider

* No need to provide an empty array for the Set constructor

* Remaining console

* Nit

* Remove more intermediary state changes

* Naming nit

* prettier formatting in test

* support loading indicator and no-loading attribute (ampproject#34467)

* 📦 Update dependency amphtml-validator to v1.0.35 (ampproject#34472)

* 📖 Migrate the cherry-pick request template to a yaml form (ampproject#34463)

* 📦 Update build-system devDependencies (ampproject#34231)

* 📖 Assorted issue and PR template fixes (ampproject#34473)

* amp-list: Support diffable with single-item (ampproject#33249)

* Revert "Revert "amp-list: Fix Bind.rescan vs. diffing race condition (ampproject#32650)" (ampproject#33232)"

This reverts commit 60adca7.

* Support diffable with single-item.

* Fix test.

* Fix lint.

* 📦 Update com_googlesource_code_re2 commit hash to 4244cd1 (ampproject#34476)

* ✨Update amp-analytics provider bluetriangle.json to change the triggers and transport (ampproject#34423)

* added blue triangle AMP integration info

* fixed minor nitpicks for AMP integration

* added client ID instead of random substring for guid and session id

* added new lines at end of file

* amp prettify command changes

* Revert "amp prettify command changes"

This reverts commit 1c489b2.

* reverted last changed, only have the needed changes

* got rid of not needed extra url params

* changed to endpoint from base

* remove question mark

* made sure web vitals were present, changed format of client id in vendor example

* more changes

* changed blue triangle trigger to ini-load, added test variable to vendors example page, changed blue triangle transport to xhrpost

* 📦 Update com_google_googletest commit hash to 9741c42 (ampproject#34483)

* 🏗 Enable VSCode auto-formatting and prettier checks for `.yml` files (ampproject#34478)

* [Amp story] [Page attachments] [Outlink] Remove open attachment delay and animation (ampproject#34477)

* Remove open attachment delay.

* Revise preview animation duration.

* 📦 Update linting devDependencies (ampproject#34474)

* 📦 Update subpackage devDependencies (ampproject#34486)

* 📦 Update dependency eslint-plugin-jsdoc to v35 (ampproject#34494)

* 📖 amp-animation: Clarify prefers-reduced-motion (ampproject#34442)

* Adding Tail as rtc vendor (ampproject#34481)

* 🖍 Prevent native `img` elements from being styled by `ampshared.css` (ampproject#34482)

* Prevent `[width][height][sizes]` selectors from inadvertently matching `img` elements

* Allow `height` and `width` on `amp-img > img (transformed)`

* Unlaunch auto-ads-no-insertion-above holdback experiment (ampproject#34425)

* ✅ [AMP Story] [Page attachments] Update visual tests for new UIs (ampproject#34223)

* visual tests

* make pages look same

* nit

* revert nit

* remove references to inline-dark-theme visual test

* adding images and extra tests

* moving tests for v2 to a diff file

* documenting v2 tests

* adding cover id

* adding snapshots and experiment

* change IDs

* adding js test navigation

* adding js test navigation

* formatting

* edit tests

* format

* format

* format

* adding next page

* adding next page

* adding rest of pages

* lint

* testing adding active on openAttachmentEl

* changing selector

* typo

* adding important

* Improve targeting of img in remote-content.

* Refactor go to page

Removes tap simulation to navigate to page. Removes timeout. Improves selector to be sure page is visible.

* Use same interactive tests for desktop.

* Remove desktop.js

JS can be re-used for desktop and mobile.

Co-authored-by: Philip Bell <[email protected]>

* ✨Use WebAssembly validator for chrome extension (ampproject#34502)

* Use WebAssembly validator for chrome extension

* Use es5 for popup.html

* Init wasm before polymer code

* 🏗 Move default PR template to `.github` directory (ampproject#34506)

* 🏗 Consolidate glob expansion while determining build targets (ampproject#34509)

* 📦 Update dependency @percy/core to v1.0.0-beta.51 (ampproject#34508)

* Use isModeDevelopment for validator integration (ampproject#34503)

* Use isModeDevelopment

* fix test failures

* update related test

* 🏗  ♻️  Fix ALMOST all type issues in /build-system (ampproject#34438)

* patched all fixable type errors

Co-authored-by: Raghu Simha <[email protected]>

* 📦 Update dependency esbuild to v0.12.2 (ampproject#34518)

* 📖 Add bug report fields for OSs and Devices (ampproject#34522)

* 📖 Use `n/a` instead of `/all` in the OS and device fields (ampproject#34524)

* 🏗 Enable a lint rule to auto-sort destructure keys (ampproject#34523)

* Added attributes to adpushup amp-ad (ampproject#34459)

Added data-jsontargeting and data-extras attributes to adpushup amp-ad
vendor integration

Co-authored-by: Rahul Ranjan <[email protected]>

* 🏗  Update build-system subpackages before checking types (ampproject#34525)

* 🏗 Include dotfiles while expanding globs during the CI check for valid URLs (ampproject#34510)

* 📦 Update com_google_googletest commit hash to a3460d1 (ampproject#34530)

* ✨ [bento][npm] Support react modules in NPM Bento components (ampproject#34528)

* Updates for react npm

* Ignore eslint rule

* add amp-onerror validation for v0.js or v0.mjs (ampproject#34531)

* Sync for validator/cpp/engine (ampproject#34534)

* Don't populate spec_file_revision field in ValidationResult. The field is deprecated.

PiperOrigin-RevId: 373462878

* Delete ParsedValidatorRules::SpecFileRevision().

PiperOrigin-RevId: 373688076

* Allow i-amphtml-layout-awaiting-size class in FLUID layout

PiperOrigin-RevId: 375586004

Co-authored-by: Googler <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>

* cl/375586004 Allow i-amphtml-layout-awaiting-size class in FLUID layout (ampproject#34533)

Co-authored-by: Justin Ridgewell <[email protected]>

* Sync for validator/cpp/htmlparser (ampproject#34536)

* Fix out of memory errors for a particular fuzzer test case which end up in
parsing entire contents of a binary blob as attributes.

Defined a flag for maximum attributes a node may contain. This value is
reasonably large to cover all real world documents.

PiperOrigin-RevId: 375586875

* Update CONTRIBUTING.md

* Update README.md

* Update amp4ads-parse-css.h

* Add missing dependency

Co-authored-by: Amaltas Bohra <[email protected]>

* 🐛 [Amp story] [Page attachments] [Outlink] Open remote from light dom (ampproject#34535)

* Element child

* Revert regression

* Trigger click from light dom

* Revert.

* revert

* revert

* Revert

* Ramp up 3p vendor splitting to 50% (ampproject#34468)

* 🏗  Automate bento publishing with a GitHub Action (ampproject#34430)

* Skip "should render correctly" (ampproject#34541)

* 🏗 Don't type-check server transform output (ampproject#34537)

* ✨  [amp-render] validator changes (ampproject#34366)

* 📦 Update core devDependencies (ampproject#34451)

* ✨  [amp-render] documentation (ampproject#34391)

* 📖 Make a few bug report fields optional (ampproject#34547)

* 📦 Update dependency esbuild to v0.12.3 (ampproject#34555)

* 📦 Update dependency core-js to v3.13.0 (ampproject#34538)

* 🏗 Auto-format dev dashboard tests (ampproject#34546)

* cl/375855105 Extract AMP Cache Domain validation, part 1 (ampproject#34558)

Co-authored-by: honeybadgerdontcare <[email protected]>

* ♻️ Migrate math and some DOM logic into core w/ type-checking (ampproject#34550)

* Move utils/dom-fingerprint to core/dom/fingerprint

* Fix imports in fingerprint.js

* Move utils/date to core/dom/parse-date-attributes

* Improve types in parse-date-attributes

* Move utils/dom-based-weakref to core/dom/weakref

* Update test names

* Add __AMP_WEAKREF_ID extern

* Move math, id-gen, layout-rect to core/math

* Update types for layout-rect

* Move get-html into core/dom

* Move isFiniteNumber into core/types

* Move document-ready to core

* Move web-components to core/dom

* Fix types in web-components

* Move dom streaming helpers to core/dom/stream

* Update imports of dom-fingerprint

* Update imports of parseDateAttrs

* Update (only) import of DomBasedWeakRef

* Update imports of math helpers

* Update imports of get-html

* Update imports of isFiniteNumber

* Update imports of document-ready

* Update imports of web-components

* Update imports of dom stream helpers

* Update forbidden-terms

* Not nullable type

* Launch flexible-bitrate experiment to 10%. (ampproject#34549)

* 🏗 Skip NPM checks while type-checking build-system (ampproject#34557)

* Sync for validator/cpp/engine (ampproject#34560)

* Add SSR support for FLUID layout

PiperOrigin-RevId: 375756231

* Extract AMP Cache Domain validation, part 1

Adds method isAmpCacheDomain_ (JS) / IsAmpCacheDomain (C++)

PiperOrigin-RevId: 375855105

Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>

* 📦 Update dependency rollup to v2.50.1 (ampproject#34519)

* 🏗  Add check-build-system to pr-checks (ampproject#34544)

* add check-build-system to pr checks

* fix more type errors

* disable incremental builds

Co-authored-by: Raghu Simha <[email protected]>

* Add unit tests (ampproject#34563)

* 📦 Update core devDependencies (ampproject#34561)

* Track flexible-bitrate experiment through CSI pipeline. (ampproject#34548)

* ✨ [bento][npm] Update file naming from mjs to module (ampproject#34568)

* Update file naming from mjs to module

* import exports should be in alphabetical order

* Rename helper function

* (nit) Replace NPM with npm (ampproject#34573)

* 🏗 Optimize linting during PR builds (ampproject#34567)

* ♿  [amp-render] a11y change (ampproject#34540)

* 📦 Update dependency @sinonjs/fake-timers to v7.1.1 (ampproject#34578)

* 📦 Update dependency rollup to v2.50.2 (ampproject#34579)

* 📦 Update dependency @types/eslint to v7.2.12 (ampproject#34574)

* Facebook: Render embedded type via `data-embed-as` versus element `tagName` (ampproject#34312)

* Switch based on data-embed-as versus tag name

* Update tests

* Update FacebookComments

* Allow dependency on enum

* Remove staticProps

* Update all the tests

* Remove dupe

* Import userAssert

* Allow dependency on enum

* 📦 Update dependency esbuild to v0.12.4 (ampproject#34576)

* ✨ Supports locale options for localeString in amp-date-display. (ampproject#34359)

* ✨ Supports locale options for localeString in amp-date-display.

* Allow user to customize locale options for localeString, the options setting is same as [Date.toLocaleString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString#syntax) parameter.

* [amp-date-display] Moves localeOptions from json type to data-options-*.

* [amp-date-display] Tests and content imporvements.

- Added invalid test cases.
- Throws user error if invalid data-options-* param is provided.
- Updated data-options-* readme doc.
- Added new lines to .out validator files.
- Applied reviewer suggestions.

* 🏗📖 Clean up AMP setup documentation + infrastructure (ampproject#34582)

* Don't block Story render on a fallback media load. (ampproject#34583)

* 🏗 Update bento package.json template (ampproject#34584)

* 📖 Add explanatory text to the LTS and cherry-pick sections of the release tracker (ampproject#34575)

* Run through all actions for each distFlavor in `amp release` before the next (ampproject#34569)

Co-authored-by: Raghu Simha <[email protected]>

* 🏗 Make new typecheck targets simpler (ampproject#34559)

* Remove the need to explicitly specify extern globs

* Add clarifying comment

* Allow type-check target to just be a list of globs

* Update type

* More explanatory comments

* More comments

* Video cache for amp-video[src]. (ampproject#34570)

* Video cache for amp-video[src].

* Update extensions/amp-video/0.1/video-cache.js

Co-authored-by: Justin Ridgewell <[email protected]>

* Update extensions/amp-video/0.1/video-cache.js

* Import iterateCursor.

* Reviews.

Co-authored-by: Justin Ridgewell <[email protected]>

* 🐛 Bug fix allowing set height and fixing Ad position (ampproject#34092)

* allowing add data-attributes

* using dataset for shorter code

* fixing error use of style to style elements is forbidden

* fixing default attribute values

* removing sizes

* allowing use min height

* fixing banner alignment

* fixing test

* fixing prettier validation

* fixing prettier validation

* SwG Release 0.1.22.167 (ampproject#34572)

* 🏗  Automatically write react.js files for bento components when publishing (ampproject#34586)

* update node script

* lint

* pr comments

* lint

* Lazy load AMP cache URL and make it optional. (ampproject#34588)

* Revert "♻️ Support img element (ampproject#34028)" (ampproject#34589)

This reverts commit 5a0936f.

* 🏗 Enforce JSDoc across `build-system/` for complete type-checking (ampproject#34591)

* Minimum duration for auto-advance-after. (ampproject#34592)

* Fix time based auto-advance-after. (ampproject#34598)

* Add missing bundles entry for amp-iframely (ampproject#34602)

* 🐛 [no-signing] fix ads using amp-gwd-animation (ampproject#34593)

* Add teads test stack

* FOR-3929: Migrate a.teads.tv to s8t.teads.tv in amphtml E2E tooling

* fix testing

Co-authored-by: Alan Orozco <[email protected]>
Co-authored-by: udaya-m-taboola <[email protected]>
Co-authored-by: Jake Fried <[email protected]>
Co-authored-by: Philip Bell <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>
Co-authored-by: WhiteSource Renovate <[email protected]>
Co-authored-by: Raghu Simha <[email protected]>
Co-authored-by: Ryan Cebulko <[email protected]>
Co-authored-by: mister-ben <[email protected]>
Co-authored-by: Kevin Dwan <[email protected]>
Co-authored-by: Micajuine Ho <[email protected]>
Co-authored-by: Kristofer Baxter <[email protected]>
Co-authored-by: patrick kettner <[email protected]>
Co-authored-by: Caroline Liu <[email protected]>
Co-authored-by: John Pettitt <[email protected]>
Co-authored-by: Elijah Soria <[email protected]>
Co-authored-by: Jon Newmuis <[email protected]>
Co-authored-by: Riley Jones <[email protected]>
Co-authored-by: Zach P <[email protected]>
Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Enrique Marroquin <[email protected]>
Co-authored-by: Matias Szylkowski <[email protected]>
Co-authored-by: Zer0Divis0r <[email protected]>
Co-authored-by: dmanek <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: Esther Kim <[email protected]>
Co-authored-by: Dima Voytenko <[email protected]>
Co-authored-by: Justin Ridgewell <[email protected]>
Co-authored-by: Caleb Cordry <[email protected]>
Co-authored-by: Tiam <[email protected]>
Co-authored-by: Edmilson Silva <[email protected]>
Co-authored-by: henel677 <[email protected]>
Co-authored-by: AdrianPerry <[email protected]>
Co-authored-by: Harshad Mane <[email protected]>
Co-authored-by: Weston Ruter <[email protected]>
Co-authored-by: Allan Banaag <[email protected]>
Co-authored-by: Michael Rybak <[email protected]>
Co-authored-by: Boxiao Cao <[email protected]>
Co-authored-by: qidonna <[email protected]>
Co-authored-by: William Chou <[email protected]>
Co-authored-by: dulpneto <[email protected]>
Co-authored-by: Shihua Zheng <[email protected]>
Co-authored-by: Raksha Muthukumar <[email protected]>
Co-authored-by: Philip Bell <[email protected]>
Co-authored-by: madan-mayank <[email protected]>
Co-authored-by: Rahul Ranjan <[email protected]>
Co-authored-by: Googler <[email protected]>
Co-authored-by: Amaltas Bohra <[email protected]>
Co-authored-by: honeybadgerdontcare <[email protected]>
Co-authored-by: Gabriel Majoulet <[email protected]>
Co-authored-by: Jingfei <[email protected]>
Co-authored-by: Daniel Rozenberg <[email protected]>
Co-authored-by: Pablo <[email protected]>
Co-authored-by: Chris Antaki <[email protected]>
Co-authored-by: RonanDrouglazet <[email protected]>
@samouri samouri deleted the sandbox-lockdown branch June 9, 2021 16:40
rochapablo pushed a commit to rochapablo/amphtml that referenced this pull request Aug 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants