diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..f23ecd7 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,67 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ master ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ master ] + schedule: + - cron: '23 21 * * 2' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] + # Learn more: + # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/css/tarteaucitron.css b/css/tarteaucitron.css index a14c42b..730fb8c 100644 --- a/css/tarteaucitron.css +++ b/css/tarteaucitron.css @@ -24,6 +24,10 @@ span.tarteaucitronH3 { /** BETTER MOBILE MODE **/ @media screen and (max-width: 767px) { + + html body #tarteaucitronRoot #tarteaucitron ul#tarteaucitronServices_mandatory .tarteaucitronDeny { + display: none!important; + } html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder button, html body #tarteaucitronRoot #tarteaucitron .tarteaucitronAsk, @@ -33,6 +37,8 @@ span.tarteaucitronH3 { margin-left: 0!important; margin-right: 0!important; box-sizing: border-box!important; + max-width: 100%!important; + margin-bottom: 8px!important; } html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder ul .tarteaucitronLine { diff --git a/tarteaucitron.js b/tarteaucitron.js index 8ab85aa..4e1369a 100644 --- a/tarteaucitron.js +++ b/tarteaucitron.js @@ -608,7 +608,7 @@ var tarteaucitron = { tac_group_style.innerHTML = '.tarteaucitronTitle{display:none}'; document.head.appendChild(tac_group_style); var cats = document.querySelectorAll('[id^="tarteaucitronServicesTitle_"]') - cats.forEach(function(item) { + Array.prototype.forEach.call(cats, function(item) { var cat = item.getAttribute('id').replace(/^(tarteaucitronServicesTitle_)/, ""); if (cat !== "mandatory") { var html = ''; @@ -633,7 +633,7 @@ var tarteaucitron = { document.querySelector('#tarteaucitronServices_' + cat).style.display = 'none'; tarteaucitron.addClickEventToId("tarteaucitron-toggle-group-" + cat, function () { tarteaucitron.userInterface.toggle('tarteaucitronServices_' + cat); - if (document.getElementById('tarteaucitronServices_' + cat).style.display == 'block') { + if (document.getElementById('tarteaucitronServices_' + cat).style.display == 'block') { tarteaucitron.userInterface.addClass('tarteaucitronServicesTitle_' + cat, 'tarteaucitronIsExpanded'); } else { tarteaucitron.userInterface.removeClass('tarteaucitronServicesTitle_' + cat, 'tarteaucitronIsExpanded'); @@ -764,11 +764,11 @@ var tarteaucitron = { if (tarteaucitron.parameters.readmoreLink !== undefined && tarteaucitron.parameters.readmoreLink !== '') { link = tarteaucitron.parameters.readmoreLink; } - html += ' '; + html += ' '; html += ' ' + tarteaucitron.lang.more; html += ' '; - html += ' - '; - html += ' '; + html += ' - '; + html += ' '; html += ' ' + tarteaucitron.lang.source; html += ' '; } @@ -1081,7 +1081,7 @@ var tarteaucitron = { // groups var cats = document.querySelectorAll('[id^="tarteaucitronServicesTitle_"]') - cats.forEach(function(item) { + Array.prototype.forEach.call(cats, function(item) { var cat = item.getAttribute('id').replace(/^(tarteaucitronServicesTitle_)/, ""), total = document.getElementById("tarteaucitronServices_"+cat).childElementCount; var doc = document.getElementById("tarteaucitronServices_"+cat), @@ -1234,6 +1234,10 @@ var tarteaucitron = { } //end ie compatibility + if (document.getElementById('tarteaucitronPersonalize2') !== null) { + document.getElementById('tarteaucitronPersonalize2').focus(); + } + window.dispatchEvent(tacOpenAlertEvent); }, "closeAlert": function () { @@ -1655,8 +1659,7 @@ var tarteaucitron = { } }, "fixSelfXSS": function(html) { - fixed = html.toString().replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); - return fixed; + return html.toString().replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); }, "getLanguage": function () { "use strict"; @@ -1936,6 +1939,7 @@ var tarteaucitron = { }, "triggerJobsAfterAjaxCall": function() { tarteaucitron.job.forEach(function(e) { tarteaucitron.job.push(e) }); + var i; var allowBtns = document.getElementsByClassName("tarteaucitronAllow"); for (i = 0; i < allowBtns.length; i++) { tarteaucitron.addClickEventToElement(allowBtns[i], function () { diff --git a/tarteaucitron.services.js b/tarteaucitron.services.js index cd5e024..da55501 100644 --- a/tarteaucitron.services.js +++ b/tarteaucitron.services.js @@ -12,11 +12,12 @@ tarteaucitron.services.iframe = { "js": function () { "use strict"; tarteaucitron.fallback(['tac_iframe'], function (x) { - var width = x.getAttribute("width"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title")), + width = x.getAttribute("width"), height = x.getAttribute("height"), url = x.getAttribute("data-url"); - return ''; + return ''; }); }, "fallback": function () { @@ -30,6 +31,28 @@ tarteaucitron.services.iframe = { } }; +// pardot +tarteaucitron.services.pardot = { + "key": "pardot", + "type": "analytic", + "name": "Pardot", + "uri": "https://www.salesforce.com/company/privacy/full_privacy/", + "needConsent": true, + "cookies": ['visitor_id'], + "js": function () { + "use strict"; + if (tarteaucitron.user.piAId === undefined || tarteaucitron.user.piCId === undefined) { + return; + } + + window.piAId = tarteaucitron.user.piAId; + window.piCId = tarteaucitron.user.piCId; + window.piHostname = 'pi.pardot.com'; + + tarteaucitron.addScript('https://pi.pardot.com/pd.js'); + } +}; + // xandr tarteaucitron.services.xandr = { "key": "xandr", @@ -73,11 +96,12 @@ tarteaucitron.services.helloasso = { "js": function () { "use strict"; tarteaucitron.fallback(['tac_helloasso'], function (x) { - var width = x.getAttribute("width"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'HelloAsso iframe'), + width = x.getAttribute("width"), height = x.getAttribute("height"), url = x.getAttribute("data-url"); - return ''; + return ''; }); }, "fallback": function () { @@ -102,11 +126,12 @@ tarteaucitron.services.podcloud = { "js": function () { "use strict"; tarteaucitron.fallback(['tac_podcloud'], function (x) { - var width = x.getAttribute("width"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'podCloud iframe'), + width = x.getAttribute("width"), height = x.getAttribute("height"), url = x.getAttribute("data-url"); - return ''; + return ''; }); }, "fallback": function () { @@ -131,12 +156,13 @@ tarteaucitron.services.facebookpost = { "js": function () { "use strict"; tarteaucitron.fallback(['tac_facebookpost'], function (x) { - var width = x.getAttribute("width"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Facebook iframe'), + width = x.getAttribute("width"), height = x.getAttribute("height"), url = x.getAttribute("data-url"), appId = x.getAttribute("data-appid"); - return ''; + return ''; }); }, "fallback": function () { @@ -258,13 +284,13 @@ tarteaucitron.services.addthis = { window._atr = null; window._atw = null; } - tarteaucitron.fallback(['addthis_sharing_toolbox'], ''); + tarteaucitron.fallback(['addthis_inline_share_toolbox'], ''); tarteaucitron.addScript('//s7.addthis.com/js/300/addthis_widget.js#pubid=' + tarteaucitron.user.addthisPubId); }, "fallback": function () { "use strict"; var id = 'addthis'; - tarteaucitron.fallback(['addthis_sharing_toolbox'], tarteaucitron.engage(id)); + tarteaucitron.fallback(['addthis_inline_share_toolbox'], tarteaucitron.engage(id)); } }; @@ -538,10 +564,11 @@ tarteaucitron.services.amazon = { "js": function () { "use strict"; tarteaucitron.fallback(['amazon_product'], function (x) { - var amazonId = x.getAttribute("amazonid"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Amazon iframe'), + amazonId = x.getAttribute("amazonid"), productId = x.getAttribute("productid"), url = '//ws-eu.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=' + tarteaucitron.getLanguage().toUpperCase() + '&source=ss&ref=ss_til&ad_type=product_link&tracking_id=' + amazonId + '&marketplace=amazon®ion=' + tarteaucitron.getLanguage().toUpperCase() + '&placement=' + productId + '&asins=' + productId + '&show_border=true&link_opens_in_new_window=true', - iframe = ''; + iframe = ''; return iframe; }); @@ -564,12 +591,13 @@ tarteaucitron.services.calameo = { "js": function () { "use strict"; tarteaucitron.fallback(['calameo-canvas'], function (x) { - var id = x.getAttribute("data-id"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Calameo iframe'), + id = x.getAttribute("data-id"), width = x.getAttribute("width"), height = x.getAttribute("height"), url = '//v.calameo.com/?bkcode=' + id; - return ''; + return ''; }); }, "fallback": function () { @@ -768,7 +796,8 @@ tarteaucitron.services.artetv = { "js": function () { "use strict"; tarteaucitron.fallback(['artetv_player'], function (x) { - var video_json = x.getAttribute("json"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Arte.tv iframe'), + video_json = x.getAttribute("json"), video_width = x.getAttribute("width"), video_height = x.getAttribute("height"), video_frame; @@ -777,7 +806,7 @@ tarteaucitron.services.artetv = { return ""; } - video_frame = ''; + video_frame = ''; return video_frame; }); }, @@ -803,7 +832,8 @@ tarteaucitron.services.dailymotion = { "js": function () { "use strict"; tarteaucitron.fallback(['dailymotion_player'], function (x) { - var video_id = x.getAttribute("videoID"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Dailymotion iframe'), + video_id = x.getAttribute("videoID"), video_width = x.getAttribute("width"), frame_width = 'width=', video_height = x.getAttribute("height"), @@ -828,7 +858,7 @@ tarteaucitron.services.dailymotion = { if (embed_type === undefined || !['video', 'playlist'].includes(embed_type) ) { embed_type = "video"; } - video_frame = ''; + video_frame = ''; return video_frame; }); }, @@ -854,7 +884,8 @@ tarteaucitron.services.datingaffiliation = { "js": function () { "use strict"; tarteaucitron.fallback(['datingaffiliation-canvas'], function (x) { - var comfrom = x.getAttribute("data-comfrom"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Dating Affiliation iframe'), + comfrom = x.getAttribute("data-comfrom"), r = x.getAttribute("data-r"), p = x.getAttribute("data-p"), cf0 = x.getAttribute("data-cf0"), @@ -866,7 +897,7 @@ tarteaucitron.services.datingaffiliation = { height = x.getAttribute("height"), url = 'http://www.tools-affil2.com/rotaban/ban.php?' + comfrom; - return ''; + return ''; }); }, "fallback": function () { @@ -944,7 +975,8 @@ tarteaucitron.services.deezer = { "js": function () { "use strict"; tarteaucitron.fallback(['deezer_player'], function (x) { - var deezer_id = x.getAttribute("deezerID"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Deezer iframe'), + deezer_id = x.getAttribute("deezerID"), deezer_width = x.getAttribute("width"), frame_width = 'width=', deezer_height = x.getAttribute("height"), @@ -982,7 +1014,7 @@ tarteaucitron.services.deezer = { tracklist = "true"; } params = 'tracklist=' + tracklist + '&radius=' + radius; - deezer_frame = ''; + deezer_frame = ''; return deezer_frame; }); }, @@ -1582,7 +1614,7 @@ tarteaucitron.services.gtag = { tarteaucitron.addScript('https://www.googletagmanager.com/gtag/js?id=' + tarteaucitron.user.gtagUa, '', function () { window.gtag = function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); - gtag('config', tarteaucitron.user.gtagUa); + gtag('config', tarteaucitron.user.gtagUa, { 'anonymize_ip': true }); if (typeof tarteaucitron.user.gtagMore === 'function') { tarteaucitron.user.gtagMore(); @@ -1653,13 +1685,14 @@ tarteaucitron.services.googlemapssearch = { "js": function () { "use strict"; tarteaucitron.fallback(['googlemapssearch'], function (x) { - var width = x.getAttribute("width"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Google search iframe'), + width = x.getAttribute("width"), height = x.getAttribute("height"), // url = x.getAttribute("data-url"); query = escape(x.getAttribute("data-search")), key = x.getAttribute("data-api-key"); - return ' ' + return ' ' }); }, "fallback": function () { @@ -1684,11 +1717,12 @@ tarteaucitron.services.googlemapsembed = { "js": function () { "use strict"; tarteaucitron.fallback(['googlemapsembed'], function (x) { - var width = tarteaucitron.getElemWidth(x), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Google maps iframe'), + width = tarteaucitron.getElemWidth(x), height = tarteaucitron.getElemHeight(x), url = x.getAttribute("data-url"); - return ''; + return ''; }); }, "fallback": function () { @@ -1798,27 +1832,38 @@ tarteaucitron.services.instagram = { "js": function () { "use strict"; tarteaucitron.fallback(['instagram_post'], function (x) { - var post_id = x.getAttribute("postId"), - embed_width = x.getAttribute("width"), - frame_width = 'width=', - embed_height = x.getAttribute("height"), - frame_height = 'height=', + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Instagram iframe'), + post_id = x.getAttribute('postId'), + post_permalink = x.getAttribute('data-instgrm-permalink'), + embed_width = x.getAttribute('width'), + embed_height = x.getAttribute('height'), + frame_width, + frame_height, post_frame; + if (post_permalink != null) { + tarteaucitron.addScript('//www.instagram.com/embed.js', 'instagram-embed'); + + return ''; + } + if (post_id === undefined) { return ""; } + if (embed_width !== undefined) { - frame_width += '"' + embed_width + '" '; + frame_width = 'width="' + embed_width + '" '; } else { - frame_width += '"" '; + frame_width = '"" '; } if (embed_height !== undefined) { - frame_height += '"' + embed_height + '" '; + frame_height = 'height="' + embed_height + '" '; } else { - frame_height += '"" '; + frame_height = '"" '; } - post_frame = ''; + + post_frame = ''; + return post_frame; }); }, @@ -2059,12 +2104,13 @@ tarteaucitron.services.prezi = { "js": function () { "use strict"; tarteaucitron.fallback(['prezi-canvas'], function (x) { - var id = x.getAttribute("data-id"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Prezi iframe'), + id = x.getAttribute("data-id"), width = x.getAttribute("width"), height = x.getAttribute("height"), url = 'https://prezi.com/embed/' + id + '/?bgcolor=ffffff&lock_to_path=0&autoplay=0&autohide_ctrls=0'; - return ''; + return ''; }); }, "fallback": function () { @@ -2283,12 +2329,13 @@ tarteaucitron.services.slideshare = { "js": function () { "use strict"; tarteaucitron.fallback(['slideshare-canvas'], function (x) { - var id = x.getAttribute("data-id"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Slideshare iframe'), + id = x.getAttribute("data-id"), width = x.getAttribute("width"), height = x.getAttribute("height"), url = '//www.slideshare.net/slideshow/embed_code/' + id; - return ''; + return ''; }); }, "fallback": function () { @@ -2312,20 +2359,21 @@ tarteaucitron.services.soundcloud = { js: function () { "use strict"; tarteaucitron.fallback(['soundcloud_player'], function (x) { - var player_height = x.getAttribute('data-height'), - frame_height = 'height="' + player_height + '" ', - playable_id = x.getAttribute('data-playable-id'), - playable_type = x.getAttribute('data-playable-type'), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Soundcloud iframe'), + player_height = x.getAttribute('data-height'), + frame_height = 'height="' + player_height + '" ', + playable_id = x.getAttribute('data-playable-id'), + playable_type = x.getAttribute('data-playable-type'), playable_url = x.getAttribute('data-playable-url'), - color = x.getAttribute('data-color'), - autoplay = x.getAttribute('data-auto-play'), - hideRelated = x.getAttribute('data-hide-related'), - showComments = x.getAttribute('data-show-comments'), - showUser = x.getAttribute('data-show-user'), - showReposts = x.getAttribute('data-show-reposts'), - showTeaser = x.getAttribute('data-show-teaser'), - visual = x.getAttribute('data-visual'), - artwork = x.getAttribute('data-artwork'); + color = x.getAttribute('data-color'), + autoplay = x.getAttribute('data-auto-play'), + hideRelated = x.getAttribute('data-hide-related'), + showComments = x.getAttribute('data-show-comments'), + showUser = x.getAttribute('data-show-user'), + showReposts = x.getAttribute('data-show-reposts'), + showTeaser = x.getAttribute('data-show-teaser'), + visual = x.getAttribute('data-visual'), + artwork = x.getAttribute('data-artwork'); var allowAutoplay = autoplay === 'true' ? 'allow="autoplay"' : ''; @@ -2349,7 +2397,7 @@ tarteaucitron.services.soundcloud = { if (visual && visual.length > 0) qs += '&visual=' + visual; if (artwork && artwork.length > 0) qs += '&show_artwork=' + artwork; - return ''; + return ''; }); }, fallback: function () { @@ -2372,7 +2420,8 @@ tarteaucitron.services.spotify = { "js": function () { "use strict"; tarteaucitron.fallback(['spotify_player'], function (x) { - var spotify_id = x.getAttribute("spotifyID"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Spotify iframe'), + spotify_id = x.getAttribute("spotifyID"), spotify_width = x.getAttribute("width"), frame_width = 'width=', spotify_height = x.getAttribute("height"), @@ -2392,7 +2441,7 @@ tarteaucitron.services.spotify = { } else { frame_height += '"" '; } - spotify_frame = ''; + spotify_frame = ''; return spotify_frame; }); }, @@ -2449,7 +2498,8 @@ tarteaucitron.services.timelinejs = { "js": function () { "use strict"; tarteaucitron.fallback(['timelinejs-canvas'], function (x) { - var spreadsheet_id = x.getAttribute("spreadsheet_id"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Twitter iframe'), + spreadsheet_id = x.getAttribute("spreadsheet_id"), width = x.getAttribute("width"), height = x.getAttribute("height"), lang = x.getAttribute("lang_2_letter"), @@ -2461,7 +2511,7 @@ tarteaucitron.services.timelinejs = { start_zoom = x.getAttribute("start_zoom"), url = '//cdn.knightlab.com/libs/timeline/latest/embed/index.html?source=' + spreadsheet_id + '&font=' + font + '&maptype=' + map + '&lang=' + lang + '&start_at_end=' + start_at_end + '&hash_bookmark=' + hash_bookmark + '&start_at_slide=' + start_at_slide + '&start_zoom_adjust=' + start_zoom + '&height=' + height; - return ''; + return ''; }); }, "fallback": function () { @@ -2682,7 +2732,8 @@ tarteaucitron.services.vimeo = { "js": function () { "use strict"; tarteaucitron.fallback(['vimeo_player'], function (x) { - var video_width = x.getAttribute("data-width") || x.getAttribute("width"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("data-title") || x.getAttribute("title") || 'Vimeo iframe'), + video_width = x.getAttribute("data-width") || x.getAttribute("width"), frame_width = 'width=', video_height = x.getAttribute("data-height") || x.getAttribute("height"), frame_height = 'height=', @@ -2829,7 +2880,7 @@ tarteaucitron.services.vimeo = { video_qs = ""; } - video_frame = ''; + video_frame = ''; return video_frame; }); @@ -2981,8 +3032,8 @@ tarteaucitron.services.atinternet = { "type": "analytic", "name": "AT Internet (privacy by design)", "uri": "https://helpcentre.atinternet-solutions.com/hc/fr/categories/360002439300-Privacy-Centre", - "needConsent": false, - "safeanalytic": true, + "needConsent": true, + "safeanalytic": false, "cookies": ['atidvisitor', 'atreman', 'atredir', 'atsession', 'atuserid'], "js": function () { "use strict"; @@ -2999,99 +3050,32 @@ tarteaucitron.services.atinternet = { } if (typeof window.tag.privacy !== 'undefined') { - - document.getElementById('atinternetLine').style.display = 'none'; - - if (tarteaucitron.cookie.read().indexOf('atinternetoptin=true') === -1 && tarteaucitron.cookie.read().indexOf('atinternetoptout=true') === -1) { - window.tag.privacy.setVisitorMode('cnil', 'exempt'); - } - - tarteaucitron.addClickEventToElement(document.getElementById('atinternetDenied'), function () { - tarteaucitron.launch['atinternetoptout'] = false; - tarteaucitron.launch['atinternetoptin'] = false; - tarteaucitron.userInterface.respond(document.getElementById('atinternetoptinDenied'), false); - tarteaucitron.userInterface.respond(document.getElementById('atinternetoptoutDenied'), false); - }); - - tarteaucitron.addClickEventToElement(document.getElementById('atinternetoptoutDenied'), function () { - if (tarteaucitron.cookie.read().indexOf('atinternetoptin=true') === -1 && tarteaucitron.cookie.read().indexOf('atinternetoptout=true') === -1) { - window.tag.privacy.setVisitorMode('cnil', 'exempt'); - } - }); - - tarteaucitron.addClickEventToElement(document.getElementById('atinternetoptinDenied'), function () { - if (tarteaucitron.cookie.read().indexOf('atinternetoptin=true') === -1 && tarteaucitron.cookie.read().indexOf('atinternetoptout=true') === -1) { - window.tag.privacy.setVisitorMode('cnil', 'exempt'); - } - }); + window.tag.privacy.setVisitorOptin(); } - setTimeout(function() { - tag.page.send(); - }, 70); + window.tag.page.send(); }); - } -}; - -// AT Internet (optin) -tarteaucitron.services.atinternetoptin = { - "key": "atinternetoptin", - "type": "analytic", - "name": "AT Internet", - "uri": "https://helpcentre.atinternet-solutions.com/hc/fr/categories/360002439300-Privacy-Centre", - "needConsent": true, - "cookies": ['atidvisitor', 'atreman', 'atredir', 'atsession', 'atuserid'], - "js": function () { + }, + "fallback": function () { "use strict"; - tarteaucitron.launch['atinternetoptout'] = false; - - setTimeout(function() { - tarteaucitron.userInterface.respond(document.getElementById('atinternetAllowed'), true); - tarteaucitron.userInterface.respond(document.getElementById('atinternetoptoutDenied'), false); - }, 50); - - setTimeout(function() { - if (typeof window.tag.privacy !== 'undefined') { - window.tag.privacy.setVisitorOptin(); - } - }, 60); - - window.tarteaucitronHackNoSwitch = true; - setTimeout(function() {window.tarteaucitronHackNoSwitch = false;}, 200); - } -}; - -// AT Internet (optout) -tarteaucitron.services.atinternetoptout = { - "key": "atinternetoptout", - "type": "analytic", - "name": "AT Internet [minimal]", - "uri": "https://helpcentre.atinternet-solutions.com/hc/fr/categories/360002439300-Privacy-Centre", - "needConsent": true, - "cookies": ['atidvisitor', 'atreman', 'atredir', 'atsession', 'atuserid'], - "js": function () { - "use strict"; - - // hack accept all - if (window.tarteaucitronHackNoSwitch) { - setTimeout(function() { - tarteaucitron.userInterface.respond(document.getElementById('atinternetoptoutDenied'), false); - }, 60); + if (tarteaucitron.user.atLibUrl === undefined) { return; } - tarteaucitron.launch['atinternetoptin'] = false; + tarteaucitron.addScript(tarteaucitron.user.atLibUrl, '', function() { - setTimeout(function() { - tarteaucitron.userInterface.respond(document.getElementById('atinternetAllowed'), true); - tarteaucitron.userInterface.respond(document.getElementById('atinternetoptinDenied'), false); - }, 50); + window.tag = new ATInternet.Tracker.Tag(); - setTimeout(function() { - if (typeof window.tag.privacy !== 'undefined') { - window.tag.privacy.setVisitorOptout(); + if (typeof tarteaucitron.user.atMore === 'function') { + tarteaucitron.user.atMore(); } - }, 60); + + if (typeof window.tag.privacy !== 'undefined') { + window.tag.privacy.setVisitorMode('cnil', 'exempt'); + } + + window.tag.page.send(); + }); } }; @@ -3131,7 +3115,8 @@ tarteaucitron.services.youtube = { "js": function () { "use strict"; tarteaucitron.fallback(['youtube_player'], function (x) { - var video_id = x.getAttribute("videoID"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Youtube iframe'), + video_id = x.getAttribute("videoID"), video_width = x.getAttribute("width"), frame_width = 'width=', video_height = x.getAttribute("height"), @@ -3152,7 +3137,7 @@ tarteaucitron.services.youtube = { } else { frame_height += '"" '; } - video_frame = ''; + video_frame = ''; return video_frame; }); }, @@ -3178,7 +3163,8 @@ tarteaucitron.services.youtubeplaylist = { "js": function () { "use strict"; tarteaucitron.fallback(['youtube_playlist_player'], function (x) { - var playlist_id = x.getAttribute("playlistID"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Youtube iframe'), + playlist_id = x.getAttribute("playlistID"), video_width = x.getAttribute("width"), frame_width = 'width=', video_height = x.getAttribute("height"), @@ -3199,7 +3185,7 @@ tarteaucitron.services.youtubeplaylist = { } else { frame_height += '"" '; } - video_frame = ''; + video_frame = ''; return video_frame; }); }, @@ -3328,7 +3314,8 @@ tarteaucitron.services.issuu = { "js": function () { "use strict"; tarteaucitron.fallback(['issuu_player'], function (x) { - var issuu_id = x.getAttribute("issuuID"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Issuu iframe'), + issuu_id = x.getAttribute("issuuID"), issuu_width = x.getAttribute("width"), frame_width = 'width=', issuu_height = x.getAttribute("height"), @@ -3354,7 +3341,7 @@ tarteaucitron.services.issuu = { if (issuu_id.match(/\d+\/\d+/)) { issuu_embed = '#' + issuu_id; } else if (issuu_id.match(/d=(.*)&u=(.*)/)) { issuu_embed = '?' + issuu_id; } - issuu_frame = ''; + issuu_frame = ''; return issuu_frame; }); @@ -3541,7 +3528,7 @@ tarteaucitron.services.matomohightrack = { "type": "analytic", "name": "Matomo", "uri": "https://matomo.org/faq/general/faq_146/", - "needConsent": true, + "needConsent": false, "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'piwik_ignore', '_pk_uid'], "js": function () { "use strict"; @@ -3654,7 +3641,8 @@ tarteaucitron.services.matterport = { "js": function () { "use strict"; tarteaucitron.fallback(['matterport'], function (x) { - var matterport_id = x.getAttribute("matterportID"), + var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Matterport iframe'), + matterport_id = x.getAttribute("matterportID"), matterport_width = x.getAttribute("width"), frame_width = 'width=', matterport_height = x.getAttribute("height"), @@ -3679,7 +3667,7 @@ tarteaucitron.services.matterport = { return ""; } - matterport_frame = ''; + matterport_frame = ''; return matterport_frame; }); }, @@ -3775,11 +3763,15 @@ tarteaucitron.services.getquanty = { return; } - window.webleads_site_ids = window.webleads_site_ids || []; - window.webleads_site_ids.push(tarteaucitron.user.getguanty); + tarteaucitron.addScript('https://get.smart-data-systems.com/gq?site_id=' + tarteaucitron.user.getguanty + '&consent=1'); + }, + "fallback": function () { + "use strict"; + if (tarteaucitron.user.getguanty === undefined) { + return; + } - tarteaucitron.addScript('https://stats.webleads-tracker.com/js'); - tarteaucitron.addScript('https://get.smart-data-systems.com/track?site_id=' + tarteaucitron.user.getguanty); + tarteaucitron.addScript('https://get.smart-data-systems.com/gq?site_id=' + tarteaucitron.user.getguanty + '¬rack=1'); } }; @@ -3897,3 +3889,44 @@ tarteaucitron.services.woopra = { woopra.track(); } }; + +// ausha +tarteaucitron.services.ausha = { + key: "ausha", + type: "video", + name: "Ausha", + uri: "https://www.ausha.co/protection-personal-data/", + needConsent: true, + cookies: [], + js: function () { + "use strict"; + tarteaucitron.fallback(['ausha_player'], function (x) { + var player_height = x.getAttribute('data-height'), + podcast_id = x.getAttribute('data-podcast-id'), + player_id = x.getAttribute('data-player-id'), + playlist = x.getAttribute('data-playlist'), + color = x.getAttribute('data-color'); + + if (podcast_id === undefined) { + return ""; + } + + var src = 'https://player.ausha.co/index.html?podcastId=' + podcast_id + '&v=3'; + + if (playlist && playlist.length > 0) src += '&playlist=' + playlist; + if (color && color.length > 0) src += '&color=' + color.replace('#', '%23'); + if (player_id && player_id.length > 0) src += '&playerId=' + player_id; + + return ''; + }); + + tarteaucitron.addScript('//player.ausha.co/ausha-player.js', 'ausha-player'); + }, + fallback: function () { + "use strict"; + tarteaucitron.fallback(['ausha_player'], function (elem) { + elem.style.height = elem.getAttribute('data-height') + 'px'; + return tarteaucitron.engage('ausha'); + }); + } +};