ampproject / ampproject/amphtml
[amp-consent] Granular consents change detection doesn't work. New selection is not saved in the amp-store local storage and the update request is not sent
- Dominant language
- JavaScript
- Stars
- 14.9k
- Forks
- 4.1k
- PR merge metrics
- No merged PRs in 30d
Description
### Description
There's an issue with detecting change of granular consents when user wants to update his settings.
None of the following actions are triggered:
- update of the local storage,
- update request to the onUpdateHref endpoint,
- data-block-on-consent-purposes reflecting updated purpose consent settings
Only changing general consent alternately (accept, reject, accept, reject) triggers all these changes.
It would be good to include granular consents to change detection or add some possibility to do it manually.
By manually I mean something like:
`tap:siteConsent.accept(isDirty/forceUpdate=true)`
and for consents in iframe (promptUISrc):
`window.parent.postMessage({ type: 'consent-response', action: 'accept', purposeConsents, isDirty/forceUpdate: true }, "*");`
### Reproduction Steps
**Repro 1.** Granular consents not saved in the amp-store in local storage
[Granular consents example playground](https://playground.amp.dev/?url=https%3A%2F%2Fpreview.amp.dev%2Fdocumentation%2Fexamples%2Fuser-consent%2Fgranular_user_consent&format=websites)
Scenario:
1. Open example from the link above
2. In the preview save your settings
3. Check your local storage value. You can also decode base64 value in the console with:
`decodeURIComponent(atob(localStorage['amp-store:https://playground.amp.dev']))`
4. Reprompt settings dialog with "I do!" button
5. Change your settings
6. The list of choices (See the results of your consent choices here) doesn't reflect new selection
7. Check again local storage value
8. If you change the second button action tap:siteConsent.dismiss with tap:siteConsent.reject and click buttons alternately you will notice changes (to make data-block-on-consent-purposes reflect new granular consents just refresh the preview)
**Repro 2.** Update request is not sent
[Modified granular consents example playground](https://playground.amp.dev/?format=websites#share=PCEtLQogICMjIEludHJvZHVjdGlvbgoKICAqR3JhbnVsYXIgY29uc2VudCogYWxsb3dzIHVzZXJzIHRvIG1ha2UgYSBzZXQgb2YgY29uc2VudCBjaG9pY2VzIG9uIHlvdXIgcGFnZS4gKkdsb2JhbCBjb25zZW50KiBhbGxvd3MgdGhlbSB0byBtYWtlIGEgc2luZ2xlIGNob2ljZSBmb3IgdGhlIHBhZ2UuIFRoZSBgYW1wLWNvbnNlbnRgIGNvbXBvbmVudCBhbGxvd3MgeW91IHRvIHNldCB1cCBncmFudWxhciBjb25zZW50LCBnbG9iYWwgY29uc2VudCwgb3IgYm90aCBzaW11bHRhbmVvdXNseS4gSW4gdGhpcyBzYW1wbGUsIHdlJ2xsIHNob3cgeW91IGhvdyB0byB1c2UgZ3JhbnVsYXIgY29uc2VudC4KLS0+PCEtLSAtLT4KPCFkb2N0eXBlIGh0bWw+CjxodG1sIOKaoSBsYW5nPSJlbiI+CjxoZWFkPgo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8dGl0bGU+R3JhbnVsYXIgVXNlciBDb25zZW50PC90aXRsZT4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJzZWxmLmh0bWwiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KICAgIDxzdHlsZSBhbXAtYm9pbGVycGxhdGU+Ym9keXstd2Via2l0LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tb3otYW5pbWF0aW9uOi1hbXAtc3RhcnQgOHMgc3RlcHMoMSxlbmQpIDBzIDEgbm9ybWFsIGJvdGg7LW1zLWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoO2FuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RofUAtd2Via2l0LWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1ALW1vei1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tcy1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1vLWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1Aa2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fTwvc3R5bGU+PG5vc2NyaXB0PjxzdHlsZSBhbXAtYm9pbGVycGxhdGU9IiI+Ym9keXstd2Via2l0LWFuaW1hdGlvbjpub25lOy1tb3otYW5pbWF0aW9uOm5vbmU7LW1zLWFuaW1hdGlvbjpub25lO2FuaW1hdGlvbjpub25lfTwvc3R5bGU+PC9ub3NjcmlwdD4KCiAgICA8c2NyaXB0IGFzeW5jIHNyYz0iaHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcvdjAuanMiPjwvc2NyaXB0PgogICAgPCEtLSAjIyBTZXR1cCAtLT4KICAgIDwhLS0gRmlyc3QsIHlvdSBuZWVkIHRvIGltcG9ydCB0aGUgc2NyaXB0IGZvciB0aGUgYGFtcC1jb25zZW50YCBleHRlbnNpb24uIC0tPgogICAgPHNjcmlwdCBhc3luYyBjdXN0b20tZWxlbWVudD0iYW1wLWNvbnNlbnQiIHNyYz0iaHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcvdjAvYW1wLWNvbnNlbnQtMC4xLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gYGFtcC1jb25zZW50YCBhbGxvd3MgeW91IHRvIGJsb2NrIEFNUCBjb21wb25lbnRzIHVudGlsIHRoZSB1c2VyIGdpdmVzIHRoZWlyIGNvbnNlbnQuIFdlJ2xsIGRlbW9uc3RyYXRlIHRoaXMgd2l0aCBgYW1wLWZpdC10ZXh0YCBjb21wb25lbnRzLCBzbyBsZXQncyBpbXBvcnQgdGhhdCBzY3JpcHQgdG9vLiAtLT4KICAgIDxzY3JpcHQgYXN5bmMgY3VzdG9tLWVsZW1lbnQ9ImFtcC1maXQtdGV4dCIgc3JjPSJodHRwczovL2Nkbi5hbXBwcm9qZWN0Lm9yZy92MC9hbXAtZml0LXRleHQtMC4xLmpzIj48L3NjcmlwdD4KCiAgICA8c3R5bGUgYW1wLWN1c3RvbT4KICAgICAgYW1wLWZpdC10ZXh0IHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7CiAgICAgIH0KCiAgICAgIC5jb25zZW50TGFiZWwgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuY29uc2VudExhYmVsIGlucHV0IHsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgfQoKICAgICAgLm5vdGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgI2NvbnNlbnREZW1vQXJlYSB7CiAgICAgICAgYm9yZGVyOiBkb3R0ZWQgMnB4IGdyZWVuOwogICAgICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgICB9CgogICAgICAjY29uc2VudFBvcHVwIHsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBwYWRkaW5nOiA1JSAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgfQoKICAgICAgI2NvbnNlbnREaWFsb2cgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHggMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgICAgICB3aWR0aDogOTUlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGYwZmZjMDsKICAgICAgfQoKICAgICAgLmNob2ljZXMgewogICAgICAgIHBhZGRpbmctdG9wOiAxMHB4OwogICAgICB9CgogICAgICAuY2hvaWNlQnV0dG9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAzNnB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgfQoKICAgICAgLmRpc21pc3NCdXR0b24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMjRweDsKICAgICAgICB0b3A6IDE2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAvKiBjb21wZW5zYXRlIGZvciBuZWdhdGl2ZSBtYXJnaW4gd2hlbiB3ZSdyZSBpbiB0aGUgQU1QIHBsYXlncm91bmQgKi8KICAgICAgLmRpc21pc3NCdXR0b24gewogICAgICAgIHRvcDogMjRweDsKICAgICAgICByaWdodDogMzhweDsKICAgICAgfQoKICAgICAgI3JlcHJvbXB0RGlhbG9nIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcGFkZGluZzogNXB4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CiAgICAgICAgY29sb3I6ICNkZGQ7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgICNjb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB9CgogICAgICAjbWFya2V0aW5nQ29udGVudCB7CiAgICAgICAgY29sb3I6IGJsdWU7CiAgICAgIH0KCiAgICAgICNjb252ZXJzaW9uQ29udGVudCB7CiAgICAgICAgY29sb3I6IGdyZWVuOwogICAgICB9CgogICAgICAjYW5hbHl0aWNzQ29udGVudCB7CiAgICAgICAgY29sb3I6IG9yYW5nZTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2hlYWQ+CiAgPCEtLSBZb3UgbmVlZCB0byBjaG9vc2UgbmFtZXMgZm9yIHlvdXIgY29uc2VudCBwdXJwb3Nlcy4gSGVyZSwgd2UnbGwgY2FsbCB0aGVtIGBwdXJwb3NlLW1hcmtldGluZ2AsIGBwdXJwb3NlLWFuYWx5dGljc2AsIGFuZCBgcHVycG9zZS1tYXJrZXRpbmdgLiAtLT4KICA8IS0tIC0tPgogIDxib2R5PgogICAgPCEtLSBUaGVuLCB5b3UnbGwgY3JlYXRlIGFuIGA8YW1wLWNvbnNlbnQ+YCBjb21wb25lbnQgY29udGFpbmluZyB0aGUgZm9sbG93aW5nOgogIC0gYSBKU09OIGNvbmZpZ3VyYXRpb24gb2JqZWN0CiAgLSB0aGUgY29uc2VudCBVSSwgd2hpY2ggbGV0cyB0aGUgdXNlciBtYWtlIGNvbnNlbnQgY2hvaWNlcwogIC0gb3B0aW9uYWxseSwgYSByZXByb21wdCBVSSwgd2hpY2ggYWxsb3dzIHRoZSB1c2VyIHRvIHNob3cgdGhlIGNvbnNlbnQgVUkgYWdhaW4KLS0+CiAgICA8IS0tCiAgIyMgQ29uZmlndXJhdGlvbiBvYmplY3QKICBbVGhlIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW1wLmRldi9kb2N1bWVudGF0aW9uL2NvbXBvbmVudHMvYW1wLWNvbnNlbnQvI2NvbnNlbnQtY29uZmlndXJhdGlvbikgbGlzdHMgYWxsIHRoZSBrZXlzIHRoYXQgdGhpcyBvYmplY3QgY2FuIGNvbnRhaW4uIEhlcmUsIHdlJ3ZlIHVzZWQgdGhlc2U6CgotIFtgY29uc2VudEluc3RhbmNlSWRgXShodHRwczovL2FtcC5kZXYvZG9jdW1lbnRhdGlvbi9jb21wb25lbnRzL2FtcC1jb25zZW50LyNjb25zZW50LWluc3RhbmNlLWlkKS4gVGhpcyBpcyByZXF1aXJlZC4KLSBbYGNvbnNlbnRSZXF1aXJlZGBdKGh0dHBzOi8vYW1wLmRldi9kb2N1bWVudGF0aW9uL2NvbXBvbmVudHMvYW1wLWNvbnNlbnQvI2NvbnNlbnRyZXF1aXJlZCkuIEJ5IHNldHRpbmcgdGhpcyB0byBgdHJ1ZWAsIHdlJ3JlIHNheWluZyBjb25zZW50IHdpbGwgYmUgcmVxdWlyZWQuIFRvIGZldGNoIHRoaXMgaW5mb3JtYXRpb24gZnJvbSBhbiBlbmRwb2ludCwgd2UnZCB1c2UgYHJlbW90ZWAuCi0gW2Bwcm9tcHRVSWBdKGh0dHBzOi8vYW1wLmRldi9kb2N1bWVudGF0aW9uL2NvbXBvbmVudHMvYW1wLWNvbnNlbnQvI3Byb21wdHVpKS4gU3BlY2lmaWVzIHRoZSBgaWRgIG9mIHRoZSBkaWFsb2cgd2hlcmUgdGhlIHVzZXIgY2FuIG1ha2UgY29uc2VudCBjaG9pY2VzLgotIFtgcG9zdFByb21wdFVJYF0oaHR0cHM6Ly9hbXAuZGV2L2RvY3VtZW50YXRpb24vY29tcG9uZW50cy9hbXAtY29uc2VudC8jcG9zdC1wcm9tcHQtdWktKG9wdGlvbmFsKSkuIFRoZSBgaWRgIG9mIHRoZSBhcmVhIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlZSB0aGF0IGRpYWxvZyBhZ2Fpbi4KLSBbYHVpQ29uZmlnYF0oaHR0cHM6Ly9hbXAuZGV2L2RvY3VtZW50YXRpb24vY29tcG9uZW50cy9hbXAtY29uc2VudC8jdWljb25maWcpLiBJbmNsdWRpbmcgYCJvdmVybGF5IjogdHJ1ZWAgaGVyZSB0ZWxscyBgYW1wLWNvbnNlbnRgIHRvIGRhcmtlbiB0aGUgYXJlYSBvdXRzaWRlIHRoZSBjb25zZW50IGRpYWxvZyB3aGVuIHRoZSBkaWFsb2cncyBvcGVuLgoKICBgYGBqc29uCiAgewogICAgImNvbnNlbnRJbnN0YW5jZUlkIjogImNvbnNlbnQxIiwKICAgICJjb25zZW50UmVxdWlyZWQiOiB0cnVlLAogICAgInByb21wdFVJIjogImNvbnNlbnREaWFsb2ciLAogICAgInBvc3RQcm9tcHRVSSI6ICJyZXByb21wdERpYWxvZyIsCiAgICAidWlDb25maWciOiB7CiAgICAgICJvdmVybGF5IjogdHJ1ZQogICAgfSwKICAgICJwdXJwb3NlQ29uc2VudFJlcXVpcmVkIjogWyJwdXJwb3NlLWFuYWx5dGljcyIsICJwdXJwb3NlLW1hcmtldGluZyJdCiAgfQogIGBgYAoKICAjIyBDb25zZW50IGRpYWxvZwogIFRoaXMgd2lsbCB0eXBpY2FsbHkgY29udGFpbiBhIHNldCBvZiBpbnB1dHMsIG9mdGVuIGNoZWNrYm94ZXMsIHRoYXQgbGV0IHRoZSB1c2VyIG1ha2UgY29uc2VudCBjaG9pY2VzLiBJdCB3aWxsIGxpa2VseSBhbHNvIGhhdmUgYnV0dG9ucyB0byBsZXQgdGhlbSBzYXZlIHRoZWlyIGNob2ljZXMsIHNhdmUgb3IgcmVqZWN0IGV2ZXJ5dGhpbmcsIG9yIHNpbXBseSBkaXNtaXNzIHRoZSBkaWFsb2cuCiAgV2hlbiB0aGUgdXNlciBtYWtlcyBhIGNvbnNlbnQgY2hvaWNlLCB1c2UgdGhlIGBzZXRQdXJwb3NlKClgIGFjdGlvbiB0byB0ZW1wb3JhcmlseSBzdG9yZSB0aGF0IGluZm9ybWF0aW9uLiBUaGlzIGFjdGlvbiB0YWtlcyB0aGUgZm9ybSBgc2V0UHVycG9zZSh7cHVycG9zZSB0eXBlfT17Ym9vbGVhbiB2YWx1ZX0pYC4KCiAgSGVyZSwgZm9yIGV4YW1wbGUsIGlmIHRoZSB1c2VyIGNsaWNrcyBvdXIgY2hlY2tib3ggZm9yIG1hcmtldGluZyBjb29raWVzLCB3ZSBzZXQgb3VyIGBwdXJwb3NlLW1hcmtldGluZ2AgcHVycG9zZSBhY2NvcmRpbmdseToKCiAgYGBgCiAgc2V0UHVycG9zZShwdXJwb3NlLW1hcmtldGluZz1ldmVudC5jaGVja2VkKQogIGBgYAoKICBXZSBzZXQgdGhhdCBwdXJwb3NlIHdoZW4gQU1QIGZpcmVzIHRoZSBgY2hhbmdlYCBldmVudCBvbiB0aGUgY29ycmVzcG9uZGluZyBjaGVja2JveC4gSGVyZSdzIGhvdyB0aGF0IGxvb2tzOgoKICBgYGBodG1sCiAgPGlucHV0CiAgICBpZD0iY29uc2VudC1wdXJwb3NlLWFuYWx5dGljcyIKICAgIHR5cGU9ImNoZWNrYm94IgogICAgb249ImNoYW5nZTpjb25zZW50MS5zZXRQdXJwb3NlKHB1cnBvc2UtbWFya2V0aW5nPWV2ZW50LmNoZWNrZWQpIgogID4KICBgYGAKCiAgVG8gc2F2ZSB0aGUgdXNlcidzIGNob2ljZXMsIHVzZSB0aGUgYGFjY2VwdGAgYWN0aW9uLiBUbyBoaWRlIHRoZSBjb25zZW50IFVJIHdpdGhvdXQgc2F2aW5nIGNob2ljZXMsIHVzZSB0aGUgYGRpc21pc3NgIGFjdGlvbi4gWW91ciB1c2VyIG1heSBtYWtlIGEgc2VsZWN0aW9uIGZvciBzb21lIGNvbnNlbnQgcHVycG9zZXMsIGJ1dCBub3QgYWxsIG9mIHRoZW0uIFlvdSBjYW4gc2V0IHRoZWlyIGNob2ljZSBmb3IgdGhlIHJlbWFpbmluZyBjb25zZW50IHB1cnBvc2VzIGJ5IHBhc3NpbmcgYGFjY2VwdGAgdGhlIGFyZ3VtZW50IGAocHVycG9zZUNvbnNlbnREZWZhdWx0PXtmYWxzZXx0cnVlfSlgLgoKICBIZXJlJ3MgaG93IHRoZXNlIGJ1dHRvbnMgbG9vayBpbiBvdXIgc2FtcGxlOgoKICBgYGBodG1sCiAgPGJ1dHRvbiBjbGFzcz0iY2hvaWNlQnV0dG9uIiBvbj0idGFwOnNpdGVDb25zZW50LmFjY2VwdChwdXJwb3NlQ29uc2VudERlZmF1bHQ9ZmFsc2UpIj4KICAgIFNhdmUKICA8L2J1dHRvbj4KICA8YnV0dG9uIGNsYXNzPSJjaG9pY2VCdXR0b24iIG9uPSJ0YXA6c2l0ZUNvbnNlbnQuZGlzbWlzcyI+CiAgICBEaXNtaXNzCiAgPC9idXR0b24+CiAgYGBgCgogICMjIFBvc3QtcHJvbXB0IFVJCiAgRmluYWxseSwgeW91IGNhbiBjcmVhdGUgYW4gYXJlYSB0aGF0IHRoZSB1c2VyIGNhbiB1c2UgdG8gc2hvdyB0aGUgY29uc2VudCBVSSBhZ2Fpbi4gVXNlIHRoZSBgcHJvbXB0YCBhY3Rpb24gdG8gbWFrZSB0aGlzIGhhcHBlbi4gSGVyZSdzIGhvdyB0aGF0IGxvb2tzIGluIHRoaXMgc2FtcGxlOgoKICBgYGBodG1sCiAgPGRpdiBpZD0icmVwcm9tcHREaWFsb2ciPgogICAgRG8geW91IHdhbnQgdG8gbWFrZSB5b3VyIGNvbnNlbnQgY2hvaWNlcyBhZ2Fpbj8KICAgIDxidXR0b24gb249InRhcDpzaXRlQ29uc2VudC5wcm9tcHQiPkkgZG8hPC9idXR0b24+CiAgPC9kaXY+CiAgYGBgCgogIEhlcmUncyBvdXIgZW50aXJlICZsdDthbXAtY29uc2VudCZndDsgY29tcG9uZW50LgotLT4KICAgIDxhbXAtY29uc2VudCBsYXlvdXQ9Im5vZGlzcGxheSIgaWQ9InNpdGVDb25zZW50Ij4KICAgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIj4KICAgICAgICB7CiAgICAgICAgICAiY29uc2VudEluc3RhbmNlSWQiOiAiY29uc2VudDEiLAogICAgICAgICAgImNvbnNlbnRSZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAicHJvbXB0VUkiOiAiY29uc2VudFBvcHVwIiwKICAgICAgICAgICJwb3N0UHJvbXB0VUkiOiAicmVwcm9tcHREaWFsb2ciLAogICAgICAgICAgInVpQ29uZmlnIjogewogICAgICAgICAgICAib3ZlcmxheSI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICAicHVycG9zZUNvbnNlbnRSZXF1aXJlZCI6IFsicHVycG9zZS1hbmFseXRpY3MiLCAicHVycG9zZS1tYXJrZXRpbmciXSwKICAgICAgICAgICJvblVwZGF0ZUhyZWYiOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS91cGRhdGUtY29uc2VudCIKICAgICAgICB9CiAgICAgIDwvc2NyaXB0PgogICAgICA8ZGl2IGlkPSJjb25zZW50UG9wdXAiPgogICAgICAgIDxkaXYgaWQ9ImNvbnNlbnREaWFsb2ciPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlzbWlzc0J1dHRvbiIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgb249InRhcDpzaXRlQ29uc2VudC5kaXNtaXNzIj4KICAgICAgICAgICAg8J2XqwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aDM+WW91ciBwcml2YWN5PC9oMz4KICAgICAgICAgIDxwPgogICAgICAgICAgICBZb3UgY2FuIGNvbnRyb2wgdGhlIHdheXMgaW4gd2hpY2ggd2UgaW1wcm92ZSBhbmQgcGVyc29uYWxpemUgeW91cgogICAgICAgICAgICBleHBlcmllbmNlLiBQbGVhc2UgY2hvb3NlIHdoZXRoZXIgeW91IHdpc2ggdG8gYWxsb3cgdGhlIGZvbGxvd2luZzoKICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNob2ljZXMiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbnNlbnRMYWJlbCIgZm9yPSJjb25zZW50LXB1cnBvc2UtbWFya2V0aW5nIj4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbnNlbnQtcHVycG9zZS1tYXJrZXRpbmciIHR5cGU9ImNoZWNrYm94IiBvbj0iY2hhbmdlOnNpdGVDb25zZW50LnNldFB1cnBvc2UocHVycG9zZS1tYXJrZXRpbmc9ZXZlbnQuY2hlY2tlZCkiPgogICAgICAgICAgICAgIE1hcmtldGluZyBjb29raWVzCiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29uc2VudExhYmVsIiBmb3I9ImNvbnNlbnQtcHVycG9zZS1jb252ZXJzaW9uIj4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbnNlbnQtcHVycG9zZS1jb252ZXJzaW9uIiB0eXBlPSJjaGVja2JveCIgb249ImNoYW5nZTpzaXRlQ29uc2VudC5zZXRQdXJwb3NlKHB1cnBvc2UtY29udmVyc2lvbj1ldmVudC5jaGVja2VkKSI+CiAgICAgICAgICAgICAgQ29udmVyc2lvbiB0cmFja2luZyBjb29raWVzCiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29uc2VudExhYmVsIiBmb3I9ImNvbnNlbnQtcHVycG9zZS1hbmFseXRpY3MiPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0iY29uc2VudC1wdXJwb3NlLWFuYWx5dGljcyIgdHlwZT0iY2hlY2tib3giIG9uPSJjaGFuZ2U6c2l0ZUNvbnNlbnQuc2V0UHVycG9zZShwdXJwb3NlLWFuYWx5dGljcz1ldmVudC5jaGVja2VkKSI+CiAgICAgICAgICAgICAgQW5hbHl0aWNzCiAgICAgICAgICAgIDwvbGFiZWw+CgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaG9pY2VCdXR0b24iIG9uPSJ0YXA6c2l0ZUNvbnNlbnQuYWNjZXB0KHB1cnBvc2VDb25zZW50RGVmYXVsdD1mYWxzZSkiPgogICAgICAgICAgICAgIAlTYXZlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaG9pY2VCdXR0b24iIG9uPSJ0YXA6c2l0ZUNvbnNlbnQucmVqZWN0Ij4KCQkJCVJlamVjdAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CiAgICAgICAgICAgIENsaWNrICJTYXZlIiB0byBzYXZlIHlvdXIgY2hvaWNlcy4KICAgICAgICAgICAgPGJyPgogICAgICAgICAgICBDbGljayAiRGlzbWlzcyIgdG8gZ2V0IHJpZCBvZiB0aGlzIGRpYWxvZyBib3ggd2l0aG91dCBzYXZpbmcgeW91cgogICAgICAgICAgICBjaG9pY2VzLgogICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBpZD0icmVwcm9tcHREaWFsb2ciPgogICAgICAgIERvIHlvdSB3YW50IHRvIG1ha2UgeW91ciBjb25zZW50IGNob2ljZXMgYWdhaW4/CiAgICAgICAgPGJ1dHRvbiBvbj0idGFwOnNpdGVDb25zZW50LnByb21wdCI+SSBkbyE8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2FtcC1jb25zZW50PgoKICAgIDwhLS0KICAjIyBCbG9ja2luZyBjb21wb25lbnRzCgogIFlvdSBjYW4gbGFiZWwgYW55IEFNUCBjb21wb25lbnQgdG8gYmUgYmxvY2tlZCBpZiB0aGUgdXNlciBoYXNuJ3QgYWNjZXB0ZWQgdGhlIHJpZ2h0IGNvbnNlbnQgcHVycG9zZXMuIFNwZWNpZnkgdGhlc2UgcHVycG9zZXMgaW4gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpbiB0aGUgYGRhdGEtYmxvY2stb24tY29uc2VudC1wdXJwb3Nlc2AgYXR0cmlidXRlLgotLT4KCiAgICA8ZGl2IGlkPSJjb25zZW50RGVtb0FyZWEiPgogICAgICA8cCBjbGFzcz0ibm90ZSI+KFNlZSB0aGUgcmVzdWx0cyBvZiB5b3VyIGNvbnNlbnQgY2hvaWNlcyBoZXJlKTwvcD4KICAgICAgPGFtcC1maXQtdGV4dCBpZD0ibWFya2V0aW5nQ29udGVudCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI1MCIgbGF5b3V0PSJmaXhlZCIgZGF0YS1ibG9jay1vbi1jb25zZW50LXB1cnBvc2VzPSJwdXJwb3NlLW1hcmtldGluZyI+CiAgICAgICAgSSdtIHNob3duIGlmIHlvdSBhbGxvdyBtYXJrZXRpbmcgY29va2llcy4KICAgICAgPC9hbXAtZml0LXRleHQ+CiAgICAgIDxhbXAtZml0LXRleHQgaWQ9ImNvbnZlcnNpb25Db250ZW50IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjUwIiBsYXlvdXQ9ImZpeGVkIiBkYXRhLWJsb2NrLW9uLWNvbnNlbnQtcHVycG9zZXM9InB1cnBvc2UtbWFya2V0aW5nLHB1cnBvc2UtYW5hbHl0aWNzIj4KICAgICAgICBJJ20gc2hvd24gaWYgeW91IGFsbG93IG1hcmtldGluZyBBTkQgYW5hbHl0aWNzIGNvb2tpZXMuCiAgICAgIDwvYW1wLWZpdC10ZXh0PgogICAgICA8YW1wLWZpdC10ZXh0IGlkPSJhbmFseXRpY3NDb250ZW50IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjUwIiBsYXlvdXQ9ImZpeGVkIiBkYXRhLWJsb2NrLW9uLWNvbnNlbnQtcHVycG9zZXM9InB1cnBvc2UtYW5hbHl0aWNzIj4KICAgICAgICBJJ20gc2hvd24gaWYgeW91IGFsbG93IGFuYWx5dGljcyBjb29raWVzLgogICAgICA8L2FtcC1maXQtdGV4dD4KICAgIDwvZGl2PgogICAgPCEtLSAtLT4KICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICA8cD5IZXJlJ3Mgc29tZSBjb250ZW50LjwvcD4KICAgICAgPHA+SGVyZSdzIGV2ZW4gbW9yZSBjb250ZW50LjwvcD4KICAgICAgPHA+QW5kLCB5ZXMsIGhlcmUncyBzdGlsbCBtb3JlIGFtYXppbmcgY29udGVudCE8L3A+CiAgICA8L2Rpdj4KPC9ib2R5PjwvaHRtbD4=)
It's the same example with additionaly:
- config for onUpdateHref
- 'reject' action instead of 'dismiss'
Scenario:
1. Open example from the link above
2. Inspect outgoing requests (e.g. in chrome browser open devtools and check network tab)
3. In the preview save any selection
4. Update your granular consents with reprompt (click 'I do!', change something and click 'Save')
5. You won't notice any update request until you change general consent (accept to reject or reject to accept)
### Relevant Logs
_No response_
### Browser(s) Affected
_No response_
### OS(s) Affected
_No response_
### Device(s) Affected
_No response_
### AMP Version Affected
2206221455000
Contributor guide
Research direction
Start with the amp-consent component and reproduce the behavior using the linked granular consents playground examples. Trace how granular selections are compared when accept is invoked, then verify that changed selections update amp-store local storage, send the onUpdateHref request, and update data-block-on-consent-purposes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100