Polish Unknown Content Type Dialog/Experience
Detailed Description
I believe we should use this item to encompass a more substantial overhaul of the nsIMIMEService and nsIMIMEInfo implementations.
Currently, we have (at least) 3 sets of code that uses low-level RDF to manipulate the mimeTypes.rdf file that sits behind the "Unknown Content Type Dialog" and the Helper Applications pref panel. It would be better to move that code into the nsIMIMEInfo so that it can be re-used.
Further, Line Item B5, "Improve Helper Application Management" requires us to encapsulate the OS settings for "mime types" in a new RDF data source. That data source replicates much of the function implemented in parts of the URI loader. The URI loader should be modified to take advantage of the new data source.
Given that, the next step is to do the "polish." The main thing that needs to be done is to "fix" the Edit and New Type dialogs so that they are consistent in terms of the fields they display and the way they behave. Each has some flaws, currently (e.g., New Type doesn't let you turn off the "Always ask me", "Edit type" doesn't let you change the mime type). A single dialog can suffice, with some code to deal with the separate "modes."
That would facilitate the generic "make it easier" requirement(s).
We will not address the specific requirement that users be able to change "always ask me" on a per-mimeType basis on the pref panel. That requires some major expenditure of effort to extend the dialog and the benefit seems negligible. There is a prominent Edit button there that opens a dialog with the checkbox on it. When the user is asked, there is a checkbox that enables them to specify "don't ask me any more." I suspect that what prompted this "requirement" was the lack of this capability in Netscape6.0/6.01. If still lacking, that is simply a bug.
Tasks
- Extend nsIMIMEInfo with new add/replace methods and encapsulate the current mimeTypes.rdf implementation behind those methods. 4 days
- Implement new, combined "Edit"/"New Type" helper app dialogs (.xul and .js) that use the new nsIMIMEInfo methods. 4 days
- Modify code that uses old dialogs to use the new, combined dialog. 2 days
Issues
- This work on the pref panel will interact with other tasks that will require changes to that code. See "Improve Helper Application Management" , above.