Page 1 of 3

[Rejected] Making ABP and sIFR work together

Posted: Mon Dec 11, 2006 10:46 am
by Wladimir Palant
sIFR (Scalable Inman Flash Replacement) is an interesting technology that allows web sites to specify exactly what font size they would like for their headings. The browser wouldn't do a good job at it so sIFR replaces regular text by Flash that shows exactly what web designers want. Which is actually a rare example of using Flash in a good way - these heading are regular static text, it still can be selected and copied, and if you happen not to have Flash installed (or you block it) - regular text will still be displayed instead.

However, Adblock Plus with "Show tabs on Flash and Java" enabled introduces a problem - every such heading gets a tab saying "Adblock" which obscures the text. You can see it on ABCNews for example. Consequently, the sIFR community was trying to use CSS to hide these tabs while I was trying to prevent them from doing that (the same CSS could be used by advertisers and then it makes harder to block the ads). Current 0.7.2.3 version breaks sIFR's "solution" to the problem once again and hopefully will prevent websites from using CSS to hide object tabs altogether.

I discussed the issue with Mark Wubben, especially with regard to the fact that the user must be in control here. Object tabs are not displayed if the object is whitelisted, so a site using sIFR actually needs the user to whitelist the sIFR objects. I found a scheme that makes it easier while not making Adblock Plus discoverable at the same time:

* The website creates a custom event that it sends out at the object in question
* Adblock Plus detects the event and interprets it as a request to whitelist the object. If Adblock Plus isn't installed the event will simply be ignored. If the object is already whitelisted or blocked - the event will be ignored as well.
* It then displays an info bar, something like: "The web page claims that some objects here contain useful content and the tab makes it harder to read. Add exception rule for these objects?" You can then add the necessary exception rules with two clicks (click info bar once and then confirm).

What do you think about this? Would it work, is it safe from abuse? I think that I should at least add a "same origin check" - only objects downloaded from the same domain as the site will be accepted.

Posted: Mon Dec 11, 2006 11:29 am
by Mark Wubben
Wladimir, thanks for picking this up. I'd love to see sIFR and Adblock Plus working together nicely.

I'd like to add that this proposed scheme would also work for other content, for example a site which provides a weather widget can ask the user to whitelist the widget in order for it to display nicely.

Posted: Mon Dec 11, 2006 3:36 pm
by IceDogg
I never have really understood this very well, but I have some questions anyway. Please excuse my ignorance about the subject.

1. Is this code that a webmaster will have to add to their site to make this work?
2. Will this then ad a filter that can then be removed like any other filter?
3. If 2 is yes, will it have it's own group like the element hiding does now?
4. Can you make another option to temporarily allow the object that will not add it to the filters so a user can judge for their self before allowing it to be added to the filters? If so can it be cleared with a refresh of the page, or would it have to be after Firefox is restarted?

Hope these questions make sense. They are more toward how it would be implemented then if it should be.

Re: Opinions requested: Making ABP and sIFR work together

Posted: Mon Dec 11, 2006 3:38 pm
by chewey
Wladimir Palant wrote:What do you think about this? Would it work, is it safe from abuse?
Not an easy one. In an ideal world, this would work - however, I don't think this will be immune to abuse:
Users are conditioned to do whatever it takes to get rid of warnings like this - and don't read them anyway.

I also don't really see how this sIFR stuff is useful - the web is about content, not about pixel precise layout.
If you want to specify exact font sizes in a specific layout, deliver a PDF - but don't touch (or circumvent) my
font size settings. As long as Gecko's scaling is not able to also scale plugin objects, I could also name you several
people who would be upset about this, because they have their Browser set to a bigger default font size due
to less-than-perfect sight, even with glasses.

I understand the sIFR people wanting to get their objects whitelisted - what I don't get is why they think
there is a need for them in the first place.
Wladimir Palant wrote:I think that I should at least add a "same origin check" - only objects downloaded from the same domain as the site will be accepted.
I think we should be very careful with the introduction of a way for website authors to influence ABP's
behaviour, even if it asks for the user's consent.

Posted: Mon Dec 11, 2006 3:59 pm
by Wladimir Palant
@IceDogg:

1. Yes. In case of sIFR that code would probably come with the default sIFR package and instructions on how to use it.
2. Yes.
3. I thought about this. This is quite some work but probably worth it.
4. I don't think that would make sense. The web site can't suggest objects that are already blocked. And with the same-origin check it can't suggest external objects either - consequently you can easily remove these whitelisting entries if you notice a problem. It shouldn't be even necessary to refresh the page.

@chewey:

Unfortunately we don't live in an ideal world and designers want to have the power to make headings fit exactly into the space meant for them. Text scaling is an important issue but it obviously wasn't a show-stopper for several important sites like ABCNews.com.

Posted: Mon Dec 11, 2006 4:29 pm
by chewey
It seems to be obvious I don't like flash to much ;-)

My main point is that this needs extra careful treatment, because a way for website
authors to influence how ABP treats flash is potentially a way to circumvent ABP - advertisers
being able to whitelist their flash objects is something that should absolutely be avoided.

I'm not completely opposed to it and understand why you are considering this - but
don't like the idea too much either.

And please make it switchoffable... uh... disableable... hum, well: One should be able
to switch it off. Is there really no word for this in english?

Posted: Mon Dec 11, 2006 4:50 pm
by Wladimir Palant
It seems there really isn't a word for this: http://dict.leo.org/ende?search=abschaltbar :)

Of course there should be an option to switch it off but don't expect it to appear anywhere other than about:config. And I think this scheme makes the influence as indirect as possible. Note that the whitelisting rules will look like "@@|http://something.site.com/object.swf|" with site.com being the domain of the site you are viewing - that isn't exactly a generic filter, even if the user is tricked into whitelisting ads the damage will be very limited. Another limitation I should introduce - no more than five requests per page, if the page needs to whitelist more than five objects something is probably wrong with it.

Posted: Mon Dec 11, 2006 5:27 pm
by IceDogg
Wladimir Palant wrote:@IceDogg:
4. I don't think that would make sense. The web site can't suggest objects that are already blocked. And with the same-origin check it can't suggest external objects either - consequently you can easily remove these whitelisting entries if you notice a problem. It shouldn't be even necessary to refresh the page.
Thinking about it more I can see your point, kind of redundant and unnecessary. Thanks.

Re: Opinions requested: Making ABP and sIFR work together

Posted: Mon Dec 11, 2006 5:36 pm
by steve
Wladimir Palant wrote:Which is actually a rare example of using Flash in a good way - these heading are regular static text, it still can be selected and copied...
wrong, you can copy only the text within the flash, but not the whole article with heading. so it is not really possible without problems.

like chewey already said: i also do not like flash (and especially sifr) much. i personally even have a filter "|http://*/sifr*.js|" in my list.
pros and (mainly) cons have been discussed at: http://aasted.org/adblock/viewtopic.php?t=1687

you can make with/include in adblock plus everything what you want, but please let the users decide, if they want to use this "feature" or not.

Re: Opinions requested: Making ABP and sIFR work together

Posted: Mon Dec 11, 2006 6:20 pm
by Wladimir Palant
steve wrote:wrong, you can copy only the text within the flash, but not the whole article with heading. so it is not really possible without problems.
You should try it. It actually works. Reason is that Gecko always copies hidden text as well when you select something - and the article heading is still there as plain text even though it is hidden.

Posted: Mon Dec 11, 2006 6:30 pm
by Wladimir Palant
Anyway, this shouldn't become a debate about whether sIFR has a reason to exist. It is there, basta. People who don't like it can block it - it is easy. sIFR really isn't something that is forced upon you. However, I think many will decide to view the page the way it was intended by its designer - and then object tabs are harmful since sIFR is really content.

There are other examples where web pages have useful content (most commonly menus) served as Flash. Whether it is good or bad is not the discussion here, we can't change it. But in this situation object tabs can be an annoyance again - and I think we can offer webmasters and users a little assistance here. Should we do this, and if yes - what is the best way to do this?

Re: Opinions requested: Making ABP and sIFR work together

Posted: Mon Dec 11, 2006 6:38 pm
by steve
Wladimir Palant wrote:Reason is that Gecko always copies hidden text as well when you select something - and the article heading is still there as plain text even though it is hidden.
but not, when you end/rightclick within the flash, since gecko cannot access the flash and flash cannot access the site.
and the marking of text also does not really work well, so you never know if you have selected it or not.

and if the sifred title is a link, you cannot use middleclick to open tabs or use your common context menu.

perhaps it looks nice, but it breaks basic functions of a modern browser.

Re: Opinions requested: Making ABP and sIFR work together

Posted: Mon Dec 11, 2006 6:48 pm
by chewey
steve wrote:if the sifred title is a link, you cannot use middleclick to open tabs or use your common context menu.
OK, now this is a pretty valid point against sIFR in my opinion. I really dislike
links in flash for their nonrightclickableness. (I really seem to make up a lot of
new words today ;-)

(However, that's not what we discuss here, let's try being more on topic)

Posted: Mon Dec 11, 2006 7:00 pm
by Dr. Evil
Would this bar have an "don't show this bar anymore, don't block anything, and don't whitelist anything" button?
It would be really annoying if this bar appeared on every reload of a page.

Posted: Mon Dec 11, 2006 7:21 pm
by Mark Wubben
Running the risk of bringing this further off topic, sIFR is not about font sizes – it's about fonts themselves. Using it for links is discouraged for the reasons mentioned above. If you wish to discuss the merits of sIFR, feel free to contact me in outside this thread :)