mattmccutchen wrote:Personally I was OK with the ABP filterset as long as the reason for it was stated honestly. But I believe the main point of Wladimir's post, which I agree with, is that it was unacceptable to add
obfuscated code to NoScript 1.9.2 to interfere with ABP with no mention in the changelog. Giorgio, you will have to answer for that if you want to regain my trust.
Matt, first of all let me agree that adding that code, obfuscated or not (more on this later) was unacceptable. I won't argue with that and I feel very sorry about it. I wouldn't ever do anything like that again for my life.
But please believe that it was made out of anger and hurry, rather than greed, since at that time literally
everything was blocked by EasyList on my sites. This was a war between Ares and me, but my foolish moves made the collateral damages of users' trust prevail on anything else.
Blame also my hacker mentality, which led me to dig into the low-level implementation of ABP blocking internals first, rather than notice the API which allowed an external filterset to be added publicly. So I ended to build my own hand-made implementation of whitelisting, and only after trial and error I realized it could be done in a more acceptable way.
Notice also that this happened well before the ABP 1.1 beta addressing the redirect bug has been announced, so the suspect it was a "survive technique" for that is FUD as well (not to mention ABP suffers of several other flaws which could be still exploited by a motivated website, and Wladimir knows that).
Regarding obfuscation, the mrd.js code (as you, who seem to be a coder, could easily confirm) was not properly "obfuscated", despite what has been repeated over and over. Not at least in the common meaning, i.e. code scrambled algorithmically in a form not understandable by a coder, while retaining its semantics.
In facts, the code in question is even properly indented, and its identifiers (method and variable names) are quite descriptive, albeit concise (it's been written as it is).
The "obfuscation", if any, was in some string literals (data), it could be easily spotted and decoded by any mediocre programmer (just hex Unicode escaping) and was focused on the CSS counter-reacting the element hiding rules targeted to my sites. This alone should explain who was the intended recipient of that "obfuscation": too easy for a coder, regular user wouldn't bother about CSS: it was obviously a filterset mantainer, and we know who specifically. Again, not excusable, but it explains itself in context as it was not enough to circumvent code reviewers and not worth to address regular users who don't even know where the code is.
Please feel free to ask any question (being indulgent with my reaction times and my orthography, seen the head spinning I'm currently undergoing) and accept my personal apologies, which I'm currently trying to extend to every ABP user and, more in general, to the Mozilla community.
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)