amphtml: amp-analytics JS fatal loop on visibility triggers.
We have been seeing page lockups with the browser window non-responsive and the associated Chrome Helper at 100% cpu since we enabled visibility triggers in amp-analytics
. When this happens the only way out is to kill the window from Activity Monitor. (Chrome 53 desktop, all emulation modes). We’ve since disabled this in prod on our sites.
What we think triggers this is an ad unit that doesn’t fill, we’re still trying to confirm a solidly repeatable test case as it seems to take up to ~30 seconds before it happens. The dev tools window shows no network activity and attempting to break the JS loop from devtools causes a window crash. The browser window shows a “Waiting for securepubads.doublclick.net” tag bottom left.
Switching to incognito (no chrome extensions enabled) doesn’t change the outcome.
Here is the amp analytics / google analytics trigger value we’re using (one per ad unit)
"amp-ad1": {
"on": "visible",
"request": "event",
"visibilitySpec": {
"selector": "#_rmAd1",
"visiblePercentageMin": 50,
"continuousTimeMin": 1000
},
"vars": {
"eventLabel": "doubleclick-300x250",
"eventCategory": "ad",
"eventAction": "visible",
"eventValue": 1
}
},
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 19 (19 by maintainers)
Commits related to this issue
- Added hasLoadedOnce() method on resource. Started using the new method instead of isLayoutPending because layoutPending returns true when an element has unloaded after being loaded. Fixes #4792 — committed to avimehta/amphtml by avimehta 8 years ago
- Added hasLoadedOnce() method on resource. Started using the new method instead of isLayoutPending because layoutPending returns true when an element has unloaded after being loaded. Fixes #4792 — committed to avimehta/amphtml by avimehta 8 years ago
- Added hasLoadedOnce() method on resource. Started using the new method instead of isLayoutPending because layoutPending returns true when an element has unloaded after being loaded. Fixes #4792 — committed to avimehta/amphtml by avimehta 8 years ago
- Added hasLoadedOnce() method on resource. (#4814) Started using the new method instead of isLayoutPending because layoutPending returns true when an element has unloaded after being loaded. Fixe... — committed to ampproject/amphtml by avimehta 8 years ago
- Added hasLoadedOnce() method on resource. (#4814) Started using the new method instead of isLayoutPending because layoutPending returns true when an element has unloaded after being loaded. Fixe... — committed to dreamofabear/amphtml by avimehta 8 years ago
- Added hasLoadedOnce() method on resource. (#4814) Started using the new method instead of isLayoutPending because layoutPending returns true when an element has unloaded after being loaded. Fixe... — committed to ooyala/amphtml by avimehta 8 years ago
I’m for cutting another canary tomorrow.