A protracted war between authors of two of the most popular add-ons for the Firefox browser has prompted calls for changes in the way extensions are written, after one of them admitted he added camouflaged code that disabled features in the other's program.

In a heart-felt apology posted Monday, Giorgio Maone admitted that he added a small piece of code that worked around the EasyList filter used by Adblock Plus. The code, which was obscured so it wouldn't be noticed by people who maintain the Adblock filter, was designed to ensure that commercial ads carried on Maone's websites continued to be displayed on browsers that use the popular ad-blocking extension.

"So I had this crazy idea of retaliating against EasyList 'from the inside', and in my blindness I did not grasp that I was really retaliating against my own users and the Mozilla community at large," Maone wrote. "Even worse, my hacker attitude led me to dig directly in the low level Adblock Plus internals where filters are enforced."

The latest version of NoScript, which Maone pushed out over the weekend, has removed all the Adblock-blocking code.

The covert arms race between maintainers of the two add-ons has prompted some soul searching at Mozilla, where people responsible for approving extensions laid out several proposed changes. Specifically, each add-on would have to explicitly spell out all changes it makes to any other add-ons. All changes would have to be made on an opt-in basis, and when the extension is removed, all the changes would have to be undone.

Maone said he added the anti-Adblock Plus functionality on Friday, after discovering the people who maintain EasyList had modified the filter so it blocked not just ads on Maone's websites, but all scripting languages as well. This made it impossible for Adblock Plus users to get updates for NoScript or FlashGot, another Firefox extension Maone maintains, he said.

The move by EasyList maintainer Ares2 to block NoScript and FlashGot followed several weeks of back-and-forth maneuvering between the two sides. Maone said he had added several scripts to his websites designed to use a publicly known Adblock Plus bug to work around the EasyList filters. Over the span of 30 EasyList updates, the filters grew ever more aggressive, eventually targeting Maone's sites by domain name.

"As you can imagine I was quite pissed off then," Maone wrote.

The mea culpa came after Wladimir Palant, creator of Adblock Plus, publicly excoriated Maone in a post that began "Attention NoScript Users." The posts provide rare, behind-the-scenes accounts of the personal foibles of two of the better Firefox extensions.

NoScript has become a major staple of security-minded users everywhere because it allows them to control what sites get to run in javascript, Adobe Flash, and other potentially dangerous scripting languages on their browsers. Adblock Plus has also proved popular because it makes it easy to turn off the ads that prove to be distracting or that come from distributors whose javascript- and Flash-based ads can't be trusted.

In this case, it would appear both authors put personal grievances ahead of their users. Palant has yet to admit that it was probably a bad idea for Adblock Plus to disrupt NoScript updates, so we'll say it for him. For his part, Maone has bent over backward to apologize.

"I beg you to accept my most sincere apologies and believe in my shame and contrition," he wrote. "I know I've done something horrible, creating a scandal like the Mozilla community never had faced before and betraying the trust of many many people. Please help me to repair the damage I've caused with my errors." ®