Loading modules/cookies_asset_injector/cookies_asset_injector.module +2 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use Drupal\cookies\CookiesKnockOutService; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Asset\AttachedAssetsInterface; use Drupal\asset_injector\AssetInjectorInterface; use Drupal\cookies\Constants\CookiesConstants; use Drupal\cookies_asset_injector\Constants\CookiesAssetInjectorConstants; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Url; Loading Loading @@ -187,7 +188,7 @@ function cookies_asset_injector_js_alter(&$javascript, AttachedAssetsInterface $ // Consent is required, so we have to block this library, until // consent is given: if (isset($javascript[$filePath])) { $javascript[$filePath]['attributes']['type'] = 'text/plain'; $javascript[$filePath]['attributes']['type'] = CookiesConstants::COOKIES_SCRIPT_KO_TYPE; $javascript[$filePath]['attributes']['id'] = CookiesAssetInjectorConstants::COOKIES_ASSET_INJECTOR_BLOCKED_SCRIPT_ID_PREFIX . Html::cleanCssIdentifier($blockedAsset->id()); $javascript[$filePath]['attributes']['data-cookieconsent'] = Html::cleanCssIdentifier($cookiesServiceId); } Loading modules/cookies_facebook_pixel/cookies_facebook_pixel.module +8 −2 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ * Contains cookies_facebook_pixel.module. */ use Drupal\cookies\Constants\CookiesConstants; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Template\Attribute; use Drupal\cookies\CookiesKnockOutService; Loading Loading @@ -42,7 +43,11 @@ function cookies_facebook_pixel_page_attachments(&$page) { $attr = (isset($head_tag[0]['#attributes'])) ? $head_tag[0]['#attributes'] : []; $attr = array_merge( $attr, ['type' => 'text/plain', 'id' => "cookies_{$script}"] [ 'type' => CookiesConstants::COOKIES_SCRIPT_KO_TYPE, 'id' => "cookies_{$script}", 'data-cookieconsent' => 'facebook_pixel', ], ); $page["#attached"]["html_head"][$key][0]['#attributes'] = new Attribute($attr); break; Loading @@ -63,8 +68,9 @@ function cookies_facebook_pixel_js_alter(array &$javascript, AttachedAssetsInter $script = $modulePath . '/js/facebook_pixel.js'; if (isset($javascript[$script])) { $javascript[$script]['preprocess'] = FALSE; $javascript[$script]['attributes']['type'] = 'text/plain'; $javascript[$script]['attributes']['type'] = CookiesConstants::COOKIES_SCRIPT_KO_TYPE; $javascript[$script]['attributes']['id'] = 'facebook_tracking_pixel_script'; $javascript[$script]['attributes']['data-cookieconsent'] = 'facebook_pixel'; } } } modules/cookies_facebook_pixel/tests/src/FunctionalJavascript/CookiesFacebookPixelFunctionalJavascriptTest.php +4 −3 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\cookies_facebook_pixel\FunctionalJavascript; use Drupal\cookies\Constants\CookiesConstants; use Drupal\FunctionalJavascriptTests\WebDriverTestBase; use Drupal\Tests\cookies\Traits\CookiesCacheClearTrait; Loading Loading @@ -88,11 +89,11 @@ class CookiesFacebookPixelFunctionalJavascriptTest extends WebDriverTestBase { $this->drupalGet('/node/' . $node->id()); // Consent denied, expected result: // @codingStandardsIgnoreStart // <script src="/modules/custom/facebook_pixel/js/facebook_pixel.js?v=XXXXXXX" type="text/plain" id="facebook_tracking_pixel_script"></script>. // <script src="/modules/custom/facebook_pixel/js/facebook_pixel.js?v=XXXXXXX" type="CookiesConstants::COOKIES_SCRIPT_KO_TYPE" id="facebook_tracking_pixel_script"></script>. // @codingStandardsIgnoreEnd $session->elementExists('css', 'script#facebook_tracking_pixel_script'); $session->elementAttributeContains('css', 'script#facebook_tracking_pixel_script', 'type', 'text/plain'); $session->elementAttributeContains('css', 'script[src*="facebook_pixel.js"]', 'type', 'text/plain'); $session->elementAttributeContains('css', 'script#facebook_tracking_pixel_script', 'type', CookiesConstants::COOKIES_SCRIPT_KO_TYPE); $session->elementAttributeContains('css', 'script[src*="facebook_pixel.js"]', 'type', CookiesConstants::COOKIES_SCRIPT_KO_TYPE); // Fire consent script, accept all cookies: $script = "var options = { all: true }; Loading modules/cookies_filter/js/cookies_filter.js +1 −1 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ ).each(function heal(i, element) { const $element = $(element); // Heal 'iframe','embed', 'object', 'img', 'a' // Knock in 'text/plain' -> 'text/javascript': // Knock in CookiesConstants::COOKIES_SCRIPT_KO_TYPE -> 'text/javascript': if ($element.hasClass("cookies-filter-replaced--type")) { if ($element.attr("type") === "text/plain") { $element.removeAttr("type"); Loading modules/cookies_filter/src/Services/CookiesFilterElementTypesService.php +5 −1 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\cookies_filter\Services; use Drupal\cookies\Constants\CookiesConstants; use Drupal\filter\FilterProcessResult; use Symfony\Component\DomCrawler\Crawler; use Drupal\Core\Entity\EntityTypeManagerInterface; Loading Loading @@ -132,6 +133,7 @@ class CookiesFilterElementTypesService { } $domElement->setAttribute('data-src', $src); $domElement->setAttribute('data-cookieconsent', $serviceId); $domElement->setAttribute('class', 'cookies-filter-processed cookies-filter-replaced--src cookies-filter-service--' . $serviceId . ' ' . $domElement->getAttribute('class')); $domElement->removeAttribute('src'); break; Loading @@ -151,6 +153,7 @@ class CookiesFilterElementTypesService { } $domElement->setAttribute('data-data', $data); $domElement->setAttribute('data-cookieconsent', $serviceId); $domElement->setAttribute('class', 'cookies-filter-processed cookies-filter-replaced--data cookies-filter-service--' . $serviceId . ' ' . $domElement->getAttribute('class')); $domElement->removeAttribute('data'); break; Loading @@ -162,7 +165,8 @@ class CookiesFilterElementTypesService { $domElement->removeAttribute('src'); $domElement->setAttribute('class', 'cookies-filter-replaced--src ' . $domElement->getAttribute('class')); } $domElement->setAttribute('type', 'text/plain'); $domElement->setAttribute('type', CookiesConstants::COOKIES_SCRIPT_KO_TYPE); $domElement->setAttribute('data-cookieconsent', $serviceId); $domElement->setAttribute('class', 'cookies-filter-processed cookies-filter-replaced--type cookies-filter-service--' . $serviceId . ' ' . $domElement->getAttribute('class')); break; Loading Loading
modules/cookies_asset_injector/cookies_asset_injector.module +2 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use Drupal\cookies\CookiesKnockOutService; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Asset\AttachedAssetsInterface; use Drupal\asset_injector\AssetInjectorInterface; use Drupal\cookies\Constants\CookiesConstants; use Drupal\cookies_asset_injector\Constants\CookiesAssetInjectorConstants; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Url; Loading Loading @@ -187,7 +188,7 @@ function cookies_asset_injector_js_alter(&$javascript, AttachedAssetsInterface $ // Consent is required, so we have to block this library, until // consent is given: if (isset($javascript[$filePath])) { $javascript[$filePath]['attributes']['type'] = 'text/plain'; $javascript[$filePath]['attributes']['type'] = CookiesConstants::COOKIES_SCRIPT_KO_TYPE; $javascript[$filePath]['attributes']['id'] = CookiesAssetInjectorConstants::COOKIES_ASSET_INJECTOR_BLOCKED_SCRIPT_ID_PREFIX . Html::cleanCssIdentifier($blockedAsset->id()); $javascript[$filePath]['attributes']['data-cookieconsent'] = Html::cleanCssIdentifier($cookiesServiceId); } Loading
modules/cookies_facebook_pixel/cookies_facebook_pixel.module +8 −2 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ * Contains cookies_facebook_pixel.module. */ use Drupal\cookies\Constants\CookiesConstants; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Template\Attribute; use Drupal\cookies\CookiesKnockOutService; Loading Loading @@ -42,7 +43,11 @@ function cookies_facebook_pixel_page_attachments(&$page) { $attr = (isset($head_tag[0]['#attributes'])) ? $head_tag[0]['#attributes'] : []; $attr = array_merge( $attr, ['type' => 'text/plain', 'id' => "cookies_{$script}"] [ 'type' => CookiesConstants::COOKIES_SCRIPT_KO_TYPE, 'id' => "cookies_{$script}", 'data-cookieconsent' => 'facebook_pixel', ], ); $page["#attached"]["html_head"][$key][0]['#attributes'] = new Attribute($attr); break; Loading @@ -63,8 +68,9 @@ function cookies_facebook_pixel_js_alter(array &$javascript, AttachedAssetsInter $script = $modulePath . '/js/facebook_pixel.js'; if (isset($javascript[$script])) { $javascript[$script]['preprocess'] = FALSE; $javascript[$script]['attributes']['type'] = 'text/plain'; $javascript[$script]['attributes']['type'] = CookiesConstants::COOKIES_SCRIPT_KO_TYPE; $javascript[$script]['attributes']['id'] = 'facebook_tracking_pixel_script'; $javascript[$script]['attributes']['data-cookieconsent'] = 'facebook_pixel'; } } }
modules/cookies_facebook_pixel/tests/src/FunctionalJavascript/CookiesFacebookPixelFunctionalJavascriptTest.php +4 −3 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\cookies_facebook_pixel\FunctionalJavascript; use Drupal\cookies\Constants\CookiesConstants; use Drupal\FunctionalJavascriptTests\WebDriverTestBase; use Drupal\Tests\cookies\Traits\CookiesCacheClearTrait; Loading Loading @@ -88,11 +89,11 @@ class CookiesFacebookPixelFunctionalJavascriptTest extends WebDriverTestBase { $this->drupalGet('/node/' . $node->id()); // Consent denied, expected result: // @codingStandardsIgnoreStart // <script src="/modules/custom/facebook_pixel/js/facebook_pixel.js?v=XXXXXXX" type="text/plain" id="facebook_tracking_pixel_script"></script>. // <script src="/modules/custom/facebook_pixel/js/facebook_pixel.js?v=XXXXXXX" type="CookiesConstants::COOKIES_SCRIPT_KO_TYPE" id="facebook_tracking_pixel_script"></script>. // @codingStandardsIgnoreEnd $session->elementExists('css', 'script#facebook_tracking_pixel_script'); $session->elementAttributeContains('css', 'script#facebook_tracking_pixel_script', 'type', 'text/plain'); $session->elementAttributeContains('css', 'script[src*="facebook_pixel.js"]', 'type', 'text/plain'); $session->elementAttributeContains('css', 'script#facebook_tracking_pixel_script', 'type', CookiesConstants::COOKIES_SCRIPT_KO_TYPE); $session->elementAttributeContains('css', 'script[src*="facebook_pixel.js"]', 'type', CookiesConstants::COOKIES_SCRIPT_KO_TYPE); // Fire consent script, accept all cookies: $script = "var options = { all: true }; Loading
modules/cookies_filter/js/cookies_filter.js +1 −1 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ ).each(function heal(i, element) { const $element = $(element); // Heal 'iframe','embed', 'object', 'img', 'a' // Knock in 'text/plain' -> 'text/javascript': // Knock in CookiesConstants::COOKIES_SCRIPT_KO_TYPE -> 'text/javascript': if ($element.hasClass("cookies-filter-replaced--type")) { if ($element.attr("type") === "text/plain") { $element.removeAttr("type"); Loading
modules/cookies_filter/src/Services/CookiesFilterElementTypesService.php +5 −1 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\cookies_filter\Services; use Drupal\cookies\Constants\CookiesConstants; use Drupal\filter\FilterProcessResult; use Symfony\Component\DomCrawler\Crawler; use Drupal\Core\Entity\EntityTypeManagerInterface; Loading Loading @@ -132,6 +133,7 @@ class CookiesFilterElementTypesService { } $domElement->setAttribute('data-src', $src); $domElement->setAttribute('data-cookieconsent', $serviceId); $domElement->setAttribute('class', 'cookies-filter-processed cookies-filter-replaced--src cookies-filter-service--' . $serviceId . ' ' . $domElement->getAttribute('class')); $domElement->removeAttribute('src'); break; Loading @@ -151,6 +153,7 @@ class CookiesFilterElementTypesService { } $domElement->setAttribute('data-data', $data); $domElement->setAttribute('data-cookieconsent', $serviceId); $domElement->setAttribute('class', 'cookies-filter-processed cookies-filter-replaced--data cookies-filter-service--' . $serviceId . ' ' . $domElement->getAttribute('class')); $domElement->removeAttribute('data'); break; Loading @@ -162,7 +165,8 @@ class CookiesFilterElementTypesService { $domElement->removeAttribute('src'); $domElement->setAttribute('class', 'cookies-filter-replaced--src ' . $domElement->getAttribute('class')); } $domElement->setAttribute('type', 'text/plain'); $domElement->setAttribute('type', CookiesConstants::COOKIES_SCRIPT_KO_TYPE); $domElement->setAttribute('data-cookieconsent', $serviceId); $domElement->setAttribute('class', 'cookies-filter-processed cookies-filter-replaced--type cookies-filter-service--' . $serviceId . ' ' . $domElement->getAttribute('class')); break; Loading