Always parse exclusions: we also use them to filter messages
Register chrome://… URI in Gecko 8 and 9
(it's very hard to implement GUI without this)
(preparation for #3)
Simplify preferences parsing
Note: renamed: this.patterns -> this.sources
(also preparation for #3)
Implement .options setter
(preparation for #3)
Add ability to get our global scope from chrome window
(D'oh…)
(preparation for #3)
Create options objects with default values to simplify usage
(preparation for #3)
Add options dialog
Note: looks like "options.xul" (that may be used without "optionsURL") doesn't work correctly without "optionsType" (at least on Firefox 33.0a1)
(#3)
Add Apply button
(#3)
Insert Apply button between OK and Cancel (for Linux)
(#3)
Show special icon on Apply button (if supported by OS)
(#3)
Refactor: add "options" getter/setter
(#3)
Disable Apply button, if options are saved
(#3)
Add new items with dummy name and focus name field
Note: nothing to save without name!
(#3)
Add hotkeys: Ins, F7 - add, Del, F8 - remove
(#3)
Close all opened options windows on disabling/uninstalling
(#3)
Hack: open options in not modal window
(#3)
Save window state (sizemode)
(#3)
Double click on empty space to add new item
(#3)