| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| const button_selector = |
| 'div.body.style-scope.ytd-consent-bump-v2-lightbox > div.eom-buttons.style-scope.ytd-consent-bump-v2-lightbox > div:nth-child(1) > ytd-button-renderer:nth-child(1) > yt-button-shape > button' |
| const banner_selector = |
| 'ytd-consent-bump-v2-lightbox > tp-yt-paper-dialog[id=dialog]' |
| |
| const button_observer = new MutationObserver(mutations => { |
| const button = document.querySelector(button_selector) |
| if (!button) { |
| return |
| } |
| const banner_node = document.querySelector(banner_selector) |
| if (!banner_node) { |
| return |
| } |
| if (localStorage.getItem('already_run') === 'already_run') { |
| return |
| } |
| localStorage.setItem('already_run', 'already_run') |
| const banner_observer = new MutationObserver(function(e) { |
| for (m of e) { |
| if (m.type == 'attributes' && banner_node.style.display == 'none') { |
| performance.mark('cookie_banner_gone') |
| break |
| } |
| } |
| }); |
| banner_observer.observe( |
| banner_node, {attributes: true, attributeFilter: ['style']}); |
| performance.mark('cookie_banner_shown') |
| button.click() |
| }) |
| |
| button_observer.observe(document, {childList: true, subtree: true}); |