Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reversed logic for allow/deny #32

Closed
sumyungguy opened this issue Aug 2, 2017 · 6 comments
Closed

Reversed logic for allow/deny #32

sumyungguy opened this issue Aug 2, 2017 · 6 comments

Comments

@sumyungguy
Copy link

sumyungguy commented Aug 2, 2017

As discussed in issue #30, it seems to me that what's called Blacklist should be Whitelist, and vice-versa. Either you skip (deny) all redirects except those on the Whitelist (the allow list), or you allow all redirects except those on the Blacklist (the deny list). The way it is now seems reversed to what's usually understood.

Also for the same-domain checkbox:

x Skip all redirects except for URLs matching any of the lines in the blacklist.

x Skip redirects for URLs with the same public domain.

I think it might be more clear like this:

x Skip all redirects except for URLs matching any of the lines in the blacklist whitelist.

x Allow redirects for URLs with the same public domain

The first line is a general rule, and the second line is an optional exception, with the reverse logic of the general rule. And while I'm being all nit-picky... the second line should end with a period, or the other lines shouldn't.

@sblask
Copy link
Collaborator

sblask commented Aug 2, 2017

Not going to happen. I thought about this for a long time before I named it the way I named it. To much double negation the way you propose it. See #26

@sblask sblask closed this as completed Aug 2, 2017
@sumyungguy
Copy link
Author

sumyungguy commented Aug 2, 2017

Sorry for the duplicate.

I can see what you mean by this:

With SkipRedirect, if you add stuff to the blacklist, skipping for it is blocked. If you put stuff on the whitelist, skipping is allowed.

But I think the meaning of "allow" (whitelist) and "deny" (blacklist) depends on what people think the addon is doing.

For example, an addon that translates every page to your language, except for those on the... blacklist. That makes sense, because it's doing something that normally doesn't happen (translate). It's an added function, something new that was never there before. The blacklist denies or prevents the addon from adding its function to that page. In other words, "deny the page access to the extra function of the addon (translation)".

On the other hand, an addon that stops videos from autoplaying on every page except those on the... whitelist. That makes sense because it's stopping something that normally does happen (autoplay). It's not actively adding a new function (non-autoplay), it's stopping or preventing pages from doing something they would do otherwise. So a whitelist allows the page to continue to do it. In other words, "allow the page to do what it's programmed to do (autoplay)".

I think you're seeing "skipping" as a kind of positive function, like "translating", and the blacklist is as you said to block skipping. Maybe as the author of the addon, you're used to thinking something like, "ok I'm not going to skip on this page, because it's on the blacklist".

But everyone else is telling you that we don't see it that way, that "skipping" is more like "stopping", it's already a negative thing, it's preventing something from happening. We want to use the addon because we want to stop redirects. We don't want to add skipping. We say, "ok, I want to allow redirects on this page, so I'll put it on the whitelist". We do think of skipping as a kind of blocking, preventing the page from doing its redirect. To skip something is to not do something. For us, using "blacklist" to mean "deny skipping" is the confusing double negation - "prevent preventing redirects", or "skip skipping".

It's not really a big issue. But you've already had several bug reports and a number of people saying they were perplexed by it. Anyway, it's your addon and of course you should do what you think is best!

@sblask
Copy link
Collaborator

sblask commented Aug 2, 2017

I have people complaining, yes, but I don't know what would happen if I'd change it. Maybe the same number of people or more would complain. I definitely would have a harder time wrapping my head around it.

It's all about how to formulate this. I guess we can agree that whitelist is inclusive and blacklist is exclusive. I chose to base the naming on the action that the extension does: skipping redirects. If I'd use "allow redirects" the mode would be named: "Do not allow redirects unless the URL is on the whitelist" and "Allow redirects for all URLs unless it's on the blacklist". But what does "allow redirect" mean? It's the opposite of what the extension does and is named after. This is the negation and disconnect in meaning I was talking about.

@Threesom666
Copy link

Glad to see Im not the only one.

Sblask needs to recheck his addon and his attitude as well.

@sumyungguy
Copy link
Author

sumyungguy commented Aug 9, 2017

I'd say it's a poor attitude to complain about someone who's giving you a gift of free software...

Anyway, according to the definition posted in #26, the logic of whitelist/blacklist is:

Allow none except those on the whitelist.
Allow all except those on the blacklist.

If we use the word "deny" instead, it must be written:

Deny all except those on the whitelist.
Deny none except those on the blacklist.

My thesaurus says:

skip: omit, leave out, miss out, dispense with, pass over, skim over, disregard.
deny: refuse, turn down, reject, rebuff, repulse, decline, veto, dismiss.
allow: permit, let, authorize, enable, entitle; consent to, assent to, give the nod to, acquiesce to, agree to, approve; tolerate.

"Skip" is clearly more synonymous with "deny" than "allow". What's currently written in the preferences then has the meaning:

Deny all redirects except for URLs matching any of the lines in the blacklist.
Deny redirects only for URLs matching any of the lines in the whitelist.

That's reversed from the above definitions, which is why everyone is saying it seems backwards.

To interpret it the other way, we would have to read it instead as:

Allow redirect-skipping for all except for URLs matching any of the lines in the blacklist.
Allow redirect-skipping for none except for URLs matching any of the lines in the whitelist.

To me it's very counter-intuitive to read "Skip all redirects" as "Allow all redirect-skipping" rather than "Deny all redirects". In other words, "Allow the addon to deny redirects except for the blacklist" is more complicated than simply "deny redirects except for the whitelist".

One solution could be to simply avoid the use of the terms blacklist/whitelist. In the preferences, just put under Mode:

[] Off

[] Skip all redirects except for URLs matching any of these (you may use regular expressions):

(list box)
[] Skip redirects for URLs with the same public domain

[] Skip redirects only for URLs matching any of these (each line needs to follow this pattern):

(list box)

@Threesom666
Copy link

Listen I came here only to help you. You can fight it by yourself for all I care and see how much longer he takes to respond. Im not complaining about the "free addon" Im criticizing his behavior. Your suggestion might as well fall on deaf ears.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants