AMP HTML source code, samples, and documentation. See below for more info.
JavaScript HTML Python CSS Java Protocol Buffer Other
Switch branches/tags
Latest commit 53925ed Jul 28, 2017 @jonkeller jonkeller committed with keithwrightbos Introduce iframe transport to amp-analytics - 3p side (#10596)
* Adds 3p iframe to amp analytics. Uses Subscription API. Event message queue much simpler than previous PR. Response functionality is included, but extraData is currently commented out - will add again before PR

* Fix SubscriptionAPI

* Brings in previous chanages to anchor-click-interceptor.js

* Adds unit tests

* Updates queue unit tests

* Updates custom types and unit tests

* Adds misc small fixes/nits from self-review

* Changes 2 URLs in example from absolute to relative

* Comments only

* Fixes TODO re: unlayoutCallback destroying 3p iframe

* Fixes an 80-char line length violation introduced in previous PR

* Implements review feedback

* Implements review feedback

* Addresses review feedback

* Reverts change to URL calculation, pending additional discussion

* Fixes unit test

* Fixes indentation of 2 lines

* Removes extraData, new creative message

* Fixes transport unit tests

* Clarifies transport ID

* Fixes whitespace

* Improves example triggers. Fixes issue of delivery of creative response

* Makes indentation consistent in this section

* Addresses review feedback

* Fixes a null check

* Keys off of type rather than URL. Fixes issue of null origin, without relying on omitting sandbox allow-same-origin

* Minor type annotation corrections

* Makes use of new param to SubscriptionAPI c'tor

* Removes allow-same-origin

* Addresses review feedback, including removing response

* Fixes unit test

* Adds a forgotten semicolon :(

* Addresses review feedback

* Splits crossDomainIframe functionality out from transport.js into iframe-transport.js (and likewise for unit tests)

* Removes a couple blank lines

* Fixes merge conflict

* Mostly changes comments, removes a small amount of redundant unit test code

* Changes enum to const since all but one enum value no longer used. Removes changes to iframe-helper, makes xframe have allow-same-origin. Moves iframe-transport teardown from amp-analytics.unlayoutCallback to detachedCallback

* Renames things using 3P in name, changes wire format from map to array

* Adds 3p iframe to amp analytics. Uses Subscription API. Event message queue much simpler than previous PR. Response functionality is included, but extraData is currently commented out - will add again before PR

* Amp 3p analytics using SubscriptionAPI, 3p side

* Fixes ampanalytics-lib tests

* Fixes linter issues

* Implements review feedback

* Removes extraData, new creative message

* Removes extraData, new creative message

* Stash

* Changes creative ID to transport ID

* Includes transport ID in example logging, response

* Renamed files/classes to get rid of '3p'

* Makes example ad click URL match parent branch

* Addresses review feedback

* Addresses further review feedback

* extensions/amp-analytics/0.1/amp-analytics.js

* Corrects rebase issue

* Add XSS check to example HTML

* Changes XSS message from log to warning

* Addresses review nits

* Addresses review feedback including removing response temporarily

* Clean up unit tests, rename event datatype

* Resolves rebase issue

* Intentionally adding trivial change, will remove in a minute

* Removing trival change added a minute ago. This is because Git UI is being strange.

* Changes an enum to a const, since all but one enum value have been removed

* Renames things using 3P in name, changes wire format from map to array

* Fixes unit test

* Renamed files/classes to get rid of '3p'

* Fixes some merge issues

* Found typo in method name, which led to renaming that and a few other things

* Adds missing space in error msg

* Addresses review feedback re: renaming files/class, and object field access. Have not yet addressed the comments about IframeMessagingClient nor simplifying to eliminate CreativeEventRouter.

* Switch to IframeMessagingClient, add clarifying comment

* Now uses IframeMessagingClient

* Greatly simplified iframe-transport-client

* Updates unit tests

* Changes whitespace only

* Fixes a broken unit test

* Changes comment only

* Makes lib architecture more similar to ampcontext

* Adds 3p/iframe-transport-client-lib.js

* Differentiates message name, fixes possible null exception

* Trivial change to re-run Percy, which was flakey last time

* Splits request/response message types better

* Moves message type declarations into 3p-frame-messaging.js

* Addresses a few nits
Permalink
Failed to load latest commit information.
.github Clarify the new issue template (#8667) Apr 24, 2017
3p Introduce iframe transport to amp-analytics - 3p side (#10596) Jul 28, 2017
ads fix ExperimentInfo type (#10636) Jul 26, 2017
build-system Introduce iframe transport to amp-analytics - 3p side (#10596) Jul 28, 2017
builtins Hide placeholders behind fallback images on image load error (#10701) Jul 28, 2017
contributing Update instructions for running `ava` tests (#10605) Jul 24, 2017
css Video-docking: Implement drag and drop (#10394) Jul 28, 2017
examples Introduce iframe transport to amp-analytics - 3p side (#10596) Jul 28, 2017
extensions Introduce iframe transport to amp-analytics - 3p side (#10596) Jul 28, 2017
screenshots/test/manual Updated screenshots Jan 27, 2016
spec Mark font server URLs as not intended to work (#10645) Jul 28, 2017
src Introduce iframe transport to amp-analytics - 3p side (#10596) Jul 28, 2017
test [amp-sidebar 1.0][Toolbar] Added State classes to Sidebar 1.0's Toolb… Jul 28, 2017
testing Add Event constructor polyfill (#10401) Jul 24, 2017
third_party Animations: 'supports' condition and fallback (#10445) Jul 17, 2017
tools Clean sticky-ad-early-load flag (#10655) Jul 27, 2017
validator Validator release notes (#10688) Jul 27, 2017
viewer-api swipe api (#8357) Mar 24, 2017
.babelrc add destructuring to babel transform whitelist (#4206) Jul 26, 2016
.eslintrc add `dict-string-keys` rule (#10107) Jun 26, 2017
.gitignore Fix gitignore (#9510) May 25, 2017
.travis.yml Cache more dirs in travis (#10505) Jul 19, 2017
CODE_OF_CONDUCT.md Establish a code of conduct for the AMP open source project. Oct 15, 2015
CONTRIBUTING.md Add documentation regarding working groups (#10255) Jul 6, 2017
GOVERNANCE.md Split information about OWNERS out of GOVERNANCE.md (#9205) May 8, 2017
LICENSE fix(license): fix incorrect search and replace done on LICENSE file Sep 10, 2015
OWNERS.yaml Add jridgewell to global owners (#8139) Mar 15, 2017
Procfile Allow binding to specific hostname or IP, default to localhost (#4422) Aug 9, 2016
README.md Add License area to README (#7781) Jun 26, 2017
caches.json API actually needs a suffix for the domain. (#9872) Jun 13, 2017
gulpfile.js Introduce iframe transport to amp-analytics - 3p side (#10596) Jul 28, 2017
package.json Animatons: support SVG transform animations (#10423) Jul 20, 2017
system.properties add custom closure compiler pass (#2593) Apr 22, 2016
yarn.lock Type check amp-access and make type checking mandatory for extensions. ( Jul 5, 2017

README.md

AMP HTML ⚡

AMP HTML is a way to build web pages that render with reliable and fast performance. It is our attempt at fixing what many perceive as painfully slow page load times – especially when reading content on the mobile web. AMP HTML is built on existing web technologies; an AMP page will load (quickly) in any modern browser.

You can learn more at ampproject.org including what AMP is, how it works and the importance of validation in AMP. You can also walk through creating an AMP page and read through the reference docs.

We'd ❤️️ your help making AMP better!

There are a lot of ways you can contribute to making AMP better! You can report bugs and feature requests or ideally become an ongoing participant in the AMP Project community and contribute code to the open source project.

We enthusiastically welcome new contributors to the AMP Project even if you have no experience being part of an open source project. We've got some tips for new contributors and guides to getting started (both a detailed version and a TL;DR).

If you're new here, sign up for our Slack and say "Hi!" in the appropriately named #welcome-contributors channel.

Further reading

If you are creating AMP pages, check out the docs on ampproject.org and samples on ampbyexample.com.

Reference:

Resources:

Technical specifications:

Who makes AMP HTML?

AMP HTML is made by the AMP Project. If you're a contributor to the open source community this includes you!

Security disclosures

The AMP Project accepts responsible security disclosures through the Google Application Security program.

Code of conduct

The AMP Project strives for a positive and growing project community that provides a safe environment for everyone. All members, committers and volunteers in the community are required to act according to the code of conduct.

License

AMP HTML is licensed under the Apache License, Version 2.0.