Giter Site home page Giter Site logo

never-consent's People

Contributors

mathrobin avatar myster0n avatar nawordar avatar shadok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

never-consent's Issues

Manage AppConsent / SFBX

I found it on https://www.lyonmag.com

Loaded scripts :

<script defer src="https://cdn.appconsent.io/listener.1.2.0.js"></script>
<script defer src="https://cdn.appconsent.io/145/467/zZ1zvgiB/notice.js"></script>

It looks for window.frames.__cmpLocator then uses window.__cmp.

Fix perf problem

After one minute, platform should be have been detected and managed. At this time, if not, kick interval

Sirdata updated again

sirData updated their code again, but this time, all the button have the same class, and we need to rely on the children span to identify the right button to click.

  • "Paramétrer vos choix" button
    <button class="sd-cmp-181cY"><span class="sd-cmp-2Pci8 sd-cmp-1BHAu sd-cmp-1jg0y" tabindex="-1">Paramétrer vos choix</span></button>

  • "Tout refuser" button
    <button class="sd-cmp-181cY"><span class="sd-cmp-2Pci8 sd-cmp-1xpje sd-cmp-1jg0y" tabindex="-1">Tout refuser</span></button>

  • "Enregistrer" button
    <button class="sd-cmp-181cY"><span class="sd-cmp-2Pci8 sd-cmp-1BHAu sd-cmp-1U8T_" tabindex="-1">Enregistrer</span></button>

So it's not a simple class name updating.
Maybe if you add a parent bool parameter to the elClick function, so the given selector parameter would be used to locate the first button parent element ?

UUID exposure

Saw this on ghacks.net, so thought I'd give this a try.
I am using Firefox ESR 68.

In /src/content.js, line 5 script.src = chrome.runtime.getURL('src/nc.js'); is dangerous.

It exposes the extension's UUID that can be used as a unique fingerprint to track the user. (https://bugzilla.mozilla.org/show_bug.cgi?id=1372288)

Array.from(document.getElementsByTagName('script'))
  .map((elem) => elem.getAttribute('src'))
  .filter((src) => src && src.startsWith('moz-extension:'))
  .join('\n')
;

Sirdata undetected on some websites

Hello,

Thanks for this extension.
I noticed that clubic.com use SirData consentment platfom but Never-Consent doesn't work on this website (although the platform is supported by the extension - 1.5.1 on my end, with Firefox 75.0 x64 on Windows 10 1909) :
https://www.clubic.com/

Regards.

looping refresh on site downdetector.co.uk

Reproduce steps:

Enable never-consent add-on in firefox with default settings
visit downdetector.co.uk

Ziff-Davis cookie consent form (with immense list of third-parties) keeps refreshing and looping.

on / off option for each

Hi
Could you provide an Off / On option for each cookie type
e.g.
Google Maps Off / On
as i may choose to generally refuse all cookies but when it comes to Google Maps, I'm ok to allow these?
(youtube, facebook...)
Thanks

Manage UniConsent

Found on https://www.freeformatter.com.

Sorry, i am not skilled enough in js to find a way to get this one.

  • Check
    <div id="uniccmp">

  • Manage Options

<div class="flex flex-col w-full flex-wrap">
	<div class="flex">
		<button
			tabindex="0"
			type="button"
			class="bg-gray-300 text-sm md:text-base hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 rounded outline-none m-2 text-xs"
			style="color: rgb(51, 51, 51); background-color: rgb(226, 232, 240);"
		>
			Manage Options
		</button>
		<button
			tabindex="0"
			type="button"
			class="bg-gray-300 text-sm md:text-base hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 rounded outline-none m-2 text-xs"
			style="color: rgb(255, 255, 255); background-color: rgb(74, 144, 226);"
		>
			Agree and proceed
		</button>
	</div>
	<div class="flex p-1 ml-auto mt-auto">
		<div class="flex p-1">
			<span class="text-xs">
				<a href="https://www.uniconsent.com/?utm_source=widget&amp;utm_medium=v2&amp;utm_campaign=cmpui" alt="GDPR CMP - Cookie Consent Manager" title="GDPR CMP - Cookie Consent Manager">UniConsent</a>
			</span>
		</div>
</div>
  • Choices
<div class="flex w-full p-4 hidden"><p>Tell us how you want us to handle your data. We'll only use your data for purposes you consent to. Change your mind whenever, we'll adapt to your consent preferences and data requests.</p></div>
<div class="flex flex-col m-auto w-full items-center justify-center md:flex-row">
    <div class="flex-auto w-full p-2 overflow-scroll overflow-x-hidden h-32 md:h-64">
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1 cursor-pointer font-bold">Purposes</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b bg-gray-200 text-black">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer font-bold text-black">Store and/or access information on a device</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p1" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p1" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Select basic ads</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p2" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p2" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Create a Personalized ads profile</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p3" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p3" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Select Personalized ads</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p4" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p4" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Create a Personalized content profile</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p5" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p5" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Select Personalized content</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p6" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p6" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Measure ad performance</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p7" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p7" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Measure content performance</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p8" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p8" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Apply market research to generate audience insights</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p9" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p9" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Develop and improve products</div>
            <label tabindex="0" aria-pressed="false" for="toogle_p10" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_p10" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1 cursor-pointer font-bold">Special Features</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b">
            <div tabindex="0" role="button" class="flex-1 cursor-pointer">Use precise geolocation data</div>
            <label tabindex="0" aria-pressed="false" for="toogle_sf1" class="flex items-center cursor-pointer">
                <div class="relative">
                    <input id="toogle_sf1" type="checkbox" class="hidden" />
                    <div class="toggle__line w-10 h-3 bg-gray-400 rounded-full shadow-inner"></div>
                    <div class="toggle__dot absolute w-5 h-5 bg-white rounded-full shadow inset-y-0 left-0"></div>
                </div>
            </label>
        </div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1 cursor-pointer font-bold">Special Purposes</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1">Ensure security, prevent fraud, and debug</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1">Technically deliver ads or content</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1 cursor-pointer font-bold">Features</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1">Match and combine offline data sources</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1">Link different devices</div></div>
        <div class="flex items-center justify-center w-full p-2 border-b"><div class="flex-1">Receive and use automatically-sent device characteristics for identification</div></div>
    </div>
    <div class="flex-auto w-full p-2 overflow-scroll overflow-x-hidden h-32 md:h-64 p-4">
        <div class="font-bold mb-2">Store and/or access information on a device</div>
        <div>Cookies, device identifiers, or other information can be stored or accessed on your device for the purposes presented to you.</div>
        <br />
        <div>
            Vendors can:<br />
            <li class="py-2">Store and access information on the device such as cookies and device identifiers presented to a user.</li>
        </div>
    </div>
</div>
  • Save
<div class="flex h-full align-right py-1">
    <button tabindex="0" type="button" class="bg-gray-300 text-sm md:text-base hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 rounded outline-none m-2" style="color: rgb(51, 51, 51); background-color: rgb(226, 232, 240);">
        Confirm Choices
    </button>
    <button tabindex="0" type="button" class="bg-gray-300 text-sm md:text-base hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 rounded outline-none m-2" style="color: rgb(255, 255, 255); background-color: rgb(74, 144, 226);">
        Agree All &amp; Save
    </button>
</div>

Missing tags for releases

Minor, but it would be nice to have the tags for the release pushed, corresponding to the packages on mozilla.org.

Manage these please?

Hi
Can you please confirm Never-Consent also blocks these else make it block them:

Google Analytics
Facebook Pixel
Google Tag Manager
Hotjar Analytics
Google Publisher Tag
Youtube Embed
Vimeo Embed
Google Maps
AddThis Widget
ShareThis widget
Twitter Widget
SoundCloud Embed
SlideShare Embed
LinkedIn Widget
Instagram Embed
Pinterest Widget

Thanks

Filterlist

I was wondering if this extension could be made as a Filter List to be used in ad blockers like uBO, or does it need more permissions/features or something like that?

ManageConsent / SFBX has been updated

They updated their code (found on lyonmag.com & lefigaro.fr).
I didn't manager to execute their denyAll function like you did before, neither made the elClick works.

window name seems to be webpackJsonpappconsent now.

Here's the relevant code i found :

  • Check
    <div id="appconsent">
    or using window.webpackJsonpappconsent

  • Réglages

<section class="sc-1nnqoje-1 kTblVO">
	<button class="hff8u9-0 wmGgB sc-1nnqoje-2 juvCHt button" type="button">
		<span class="sc-1aw7caq-0 hff8u9-1 dyUrjQ baseText">Réglages</span>
	</button>
</section>
  • Tout refuser
    <a class="sc-10ckfh7-0 ibtwNj link">Tout Refuser</a>

  • Enregistrer

<button class="hff8u9-0 fDOcTE sc-1s6s8eg-0 kfXjGO button button--filled" type="button">
	<span class="sc-1aw7caq-0 hff8u9-1 gdgCV baseText">Enregistrer</span>
</button>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.