Skip to content

Google Tag Manager conflict with zone.js #34105

@pshurygin

Description

@pshurygin

🐞 bug report

Affected Package

The issue is caused by package zone.js

Is this a regression?

This issue was reported and allegedly fixed back in 2017, but i'm seeing this problem again.
angular/zone.js#898
Probably something has changed with the GTM script, causing this issue to appear again.

Description

When loading Google tag manager script during runtime(after zone.js has been executed), it overrides ZoneAwarePromise with native Promise, breaking change detection.

🔬 Minimal Reproduction

https://stackblitz.com/edit/angular-3kvxy9

Make sure to disable any adblock extension, as it may block GTM script. Also, it would possibly be required to manually disable stackblitz serviceworkers, as they are also preventing GTM script from loading.

Click page2 link => click page1 link and notice how CD is broken. Click button to trigger CD => everything is working again.

🌍 Your Environment

Angular Version:
Stackblitz repro is using angular 8.2.14, but i have actually faced this issue with latest 9.0.0-rc3 with Ivy enabled.
zone.js of version 0.9.1 and 0.10.2 are both failing.

Metadata

Metadata

Assignees

Labels

area: zonesIssues related to zone.js

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions