Reading the other feature requests for manually marking/saving some state-flags and dates on every add-on, I'd like to suggest more automation for handling those flags. Maybe you can kindly factor this in, while developing the flags and already plan for the far future :-)
Initial state:
I have a significant number of add-ons active and some inactive. I notice a bug/misfeature/problem and want to find the responsible add-on (one or more). As I assume the inactive are truly inactive, their status is "clean", while those active all become "suspect". MAD itself has to assume itself as clear and starts off as the only active "clear".
Bisection:
In a divide and conquer strategy I'd like to automatically deactivate half of the "suspect" with a few button clicks and restart Firefox, resulting in two sets A = Active suspects and I = Inactive suspects of about the same size.
State:
If the bug persists, the set I gets "clear" and reactivated while bisection continues on A deactivating half of A
If the bug is likely gone, A get "probably clear" and stay active while bisection continues on I activating again half of I
If we run out of suspects, convert all "probably clear" back to "suspect" and reiterate
Choose the halves randomly, so repeating the bisection from scratch should go through different combinations and still yield the same result (if not, the problem involves multiple add-ons)
Result / Reset:
Once the wizard was used and either I give up on searching or I found the culprit (bisection was narrowed down to one "suspect" and no "probably clear"), I want an easy way to reset my configuration to the initial state excluding the culprit (if any) by deactivating it. In addition, there might also be an optional "inverted" mode, where only the culprit becomes active, to verify that with all other add-ons gone, the bug persists and can be reported to the developer.
Automatic reminders:
As this can potentially be a very long running operation taking days or even weeks, if the bug only shows up sporadically, I want the wizard to periodically remind me of its task. It should show a window / tab with:
an overview table of 5 columns listing add-on names:
o active clear
o active probably clear
o active suspect A
o inactive suspect I
o inactive clear
one textbox to edit my initial description of the problem to persist
one textbox to comment on the current bisection status (saved and cleared once a new bisection starts)
Button: "Bug found!" -> trigger a new bisection
Button: "Undecided / later" -> save the messages and ask again after 1 hour
Button: "Bug likely gone?" -> trigger a new bisection
Button: "Shuffle" -> activate all members of I adding them to A and draw a new random set I from all suspects for deactivation to test another alternative combination
Button: "Reset / give up" -> discard the currently running triage
clicking any of those buttons closes the wizards tab
below the buttons a tabular history with one row for each bisection featuring the time stamp when I clicked on either "Bug found!" or "Bug likely gone?" along with the comment specific to that bisection. Selecting any line would resort the upper table with a distribution of add-ons in that bisection. Initially the line representing the current time stamp and comment is highlighted.
Embrace the change:
As I anticipate in complex power-user scenarios there will be 100 or more add-ons involved, so it is likely, that updates arrive in the middle of a complex operation. Depending on the current state of the add-on the wizard should update its flags:
clear stays clear independent whether active or not
probably clear stays probably clear
suspects get "probably clear" and activated as the update might have solved the problem
Create a new entry in the bisect history with comment text "updates for: ..."
adding new add-ons previously not present in the bisection, they become immediately "clear"
in case of removal or manual (de-)activation of a "suspect" or "probably clear" offer to Reset the wizard, as the user might have found e.g. another users bug-report on the Internet. Warn about these changes might invalidate the current triage and offer to discard the changes. If the user continues the affected add-on gets "clear" and taken out from further bisections.
A final word:
We love and heavily use a lot of add-ons. So the whole point of this wizard is to keep a maximum of them up and running concurrently and still find the culprit asap and especially to report incompatibilities between two add-ons to their respective developers easily. It might even be worthwhile to define a priority list of a minimum set of add-ons to clear in the first go by deactivating them and confirming, the bug is present independently. This way they return after the first iteration as "clear" and from then on stabilize the accustomed interface and expected core functionality of Firefox. Good candidates are Session-Manager, Tab Mix Plus, Tree Style Tab, Adblock, Greasemonkey, ... just to name a few.
I understand that this is a hobby project and I am fine if you take your time. But I must stress, that I'm confident one day this wizard will follow up the footsteps of Firebug and get integrated into the core functionality of Firefox. With its growing ecosystem of more and more add-ons, the nastiness of finding dependencies increases exponentially.
Hello Chris!
Reading the other feature requests for manually marking/saving some state-flags and dates on every add-on, I'd like to suggest more automation for handling those flags. Maybe you can kindly factor this in, while developing the flags and already plan for the far future :-)
Initial state: I have a significant number of add-ons active and some inactive. I notice a bug/misfeature/problem and want to find the responsible add-on (one or more). As I assume the inactive are truly inactive, their status is "clean", while those active all become "suspect". MAD itself has to assume itself as clear and starts off as the only active "clear".
Bisection: In a divide and conquer strategy I'd like to automatically deactivate half of the "suspect" with a few button clicks and restart Firefox, resulting in two sets A = Active suspects and I = Inactive suspects of about the same size.
State:
Result / Reset: Once the wizard was used and either I give up on searching or I found the culprit (bisection was narrowed down to one "suspect" and no "probably clear"), I want an easy way to reset my configuration to the initial state excluding the culprit (if any) by deactivating it. In addition, there might also be an optional "inverted" mode, where only the culprit becomes active, to verify that with all other add-ons gone, the bug persists and can be reported to the developer.
Automatic reminders: As this can potentially be a very long running operation taking days or even weeks, if the bug only shows up sporadically, I want the wizard to periodically remind me of its task. It should show a window / tab with:
Embrace the change: As I anticipate in complex power-user scenarios there will be 100 or more add-ons involved, so it is likely, that updates arrive in the middle of a complex operation. Depending on the current state of the add-on the wizard should update its flags:
A final word: We love and heavily use a lot of add-ons. So the whole point of this wizard is to keep a maximum of them up and running concurrently and still find the culprit asap and especially to report incompatibilities between two add-ons to their respective developers easily. It might even be worthwhile to define a priority list of a minimum set of add-ons to clear in the first go by deactivating them and confirming, the bug is present independently. This way they return after the first iteration as "clear" and from then on stabilize the accustomed interface and expected core functionality of Firefox. Good candidates are Session-Manager, Tab Mix Plus, Tree Style Tab, Adblock, Greasemonkey, ... just to name a few.
I understand that this is a hobby project and I am fine if you take your time. But I must stress, that I'm confident one day this wizard will follow up the footsteps of Firebug and get integrated into the core functionality of Firefox. With its growing ecosystem of more and more add-ons, the nastiness of finding dependencies increases exponentially.
Keep up the good work private_lock