-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Closed
Description
Several extensions and services query AMP documents for special <meta name="..." content="..."> tags to perform tasks different than default. In #26534, amp-script failed to work in PWAs because <meta> tags are lost when an AMP document is loaded in the ShadowRoot. Less severe issues may be present elsewhere and have gone unnoticed.
There are new .getMetaByName() methods that work for all AmpDoc types (single, shadow, fie) and which may be worthwhile to adopt in other extensions and services. A couple of greps (grep -lr "getAttribute('content')" and grep -lr 'meta\[name') work as a starting point to investigate:
- extensions/amp-a4a/0.1/refresh-manager.js
✔ a4a: RefreshManager: Support amp-ad-enable-refresh lookup in AmpDocShadow - extensions/amp-access/0.1/amp-access-server-jwt.js
✔ amp-access: Support i-amphtml-access-state lookup in AmpDocShadow - extensions/amp-access/0.1/amp-access-server.js
✔ amp-access: Support i-amphtml-access-state lookup in AmpDocShadow - extensions/amp-ad-network-doubleclick-impl/0.1/amp-ad-network-doubleclick-impl.js
✔ amp-ad: Support amp-3p-iframe-src lookup in AmpDocShadow - extensions/amp-ad-network-doubleclick-impl/0.1/safeframe-host.js
✔ amp-ad-network-doubleclick: Respect meta['referrer'] in AmpDocShadow -
extensions/amp-ad-network-fake-impl/0.1/amp-ad-metadata-transformer.js
This is used bytransformCreative_()inamp-ad-network-fake-impl.js. It... "Converts a general AMP doc to a AMP4ADS doc.". It is intended to work with a realdocumentand not anampdoc, so it is appropriate to leave as-is. - extensions/amp-ad/0.1/amp-ad.js
✔ amp-ad: Support amp-3p-iframe-src lookup in AmpDocShadow - extensions/amp-analytics/0.1/linker-manager.js
✔ amp-analytics: Support amp-google-client-id-api lookup in AmpDocShadow - extensions/amp-apester-media/0.1/utils.js
✔ amp-apester: Support keyword lookup in AmpDocShadow - extensions/amp-app-banner/0.1/amp-app-banner.js
✔ amp-app-banner: Support apple-itunes-app lookup in AmpDocShadow -
extensions/amp-auto-lightbox/0.1/amp-auto-lightbox.js
Notmeta[name] -
extensions/amp-jwplayer/0.1/amp-jwplayer.js
Notmeta[name] - extensions/amp-script/0.1/amp-script.js
✔ amp-script: Use updated method to get meta hashes -
extensions/amp-story-auto-ads/0.1/utils.js
AdDocis an "ad document within FIE", so support for multiplemeta[name]lookup methods is not necessary. -
extensions/amp-story/1.0/amp-story.js
amp-story is actually settingtheme-color, which must be done at the root document level, so this should be left as-is. -
extensions/amp-story/1.0/test/test-amp-story.js
amp-story is actually settingtheme-color, which must be done at the root document level, so this should be left as-is. - src/3p-frame.js
✔ amp-ad: Support amp-3p-iframe-src lookup in AmpDocShadow -
src/cookies.js
meta[name='amp-cookie-scope']is expected in the shell<head>forAmpDocShadow -
src/experiments.js
Opting to leave as-is.meta[name="amp-experiments-opt-in"]is currently expected in the shell<head>, so experiments apply to all loadedAmpDocs. This seems like the correct design. -
src/inabox/utils.js
amp-inabox is designed only with single docs in mind: "Declare that this runtime will support a single root doc." -
src/mediasession-helper.js
Notmeta[name] -
src/multidoc-manager.js
Import of<meta>tags forAmpDocShadow - src/service/action-impl.js
✔ amp-action: Support whitelist lookup in AmpDocShadow -
src/service/ampdoc-impl.js
Definition of get/setMetaByName - src/service/cid-impl.js
✔ amp-analytics: Support amp-google-client-id-api lookup in AmpDocShadow - src/service/document-info-impl.js
✔ DocInfo: replace metaTags with viewport in API -
src/service/navigation.js
PWAs are expected to handle navigation on their own. No plans to enable support foramp-to-amp-navigationinAmpDocShadow. -
src/service/origin-experiments-impl.js
Opting to leave as-is.meta[name="amp-experiments-opt-in"]is currently expected in the shell<head>, so experiments apply to all loadedAmpDocs. This seems like the correct design. - src/service/url-replacements-impl.js
✔ variable substitutions: Support whitelist lookup in AmpDocShadow - src/service/variable-source.js
✔ variable substitutions: Support whitelist lookup in AmpDocShadow -
src/service/viewport/viewport-impl.js
Shell document should be used to get viewport data. -
test/unit/test-viewport.js
Shell document should be used to get viewport data. -
third_party/subscriptions-project/config.js
Notmeta[name]
Reactions are currently unavailable