Open Bug 390397 Opened 17 years ago Updated 2 years ago

External URLs are handled by commands not accepted by the user when system settings change

Categories

(Firefox :: File Handling, defect)

x86
Linux
defect

Tracking

()

People

(Reporter: karlt, Unassigned)

References

Details

(Whiteboard: [proto])

Attachments

(1 file, 1 obsolete file)

The user selects the application, but it seems that mimeTypes.rdf stores "use system default". This is an issue if the system default changes and the user has selected "remember my choice". With Gnome this is an extra concern because there is no check that the system default still exists as required for bug 389632. Steps to reproduce: * Install evince. * Set up a safe handler in a shell: gconftool-2 --type string --set /desktop/gnome/url-handlers/ssh/command "echo %s" gconftool-2 --type boolean --set /desktop/gnome/url-handlers/ssh/enabled true * Use firefox to load an existing URL (on a host with public/private key access or similar) of the form: ssh://_hostname_/home/_user_/_filename_.ps * Select "echo %s" from the protocol handler dialog, * Select "remember my choice for ssh links", * Press OK. (ssh://_hostname_/home/_user_/_filename_.ps is output to stdout) * Disable the safe handler: gconftool-2 --type boolean --set /desktop/gnome/url-handlers/ssh/enabled false * Reload the URL. Expected behaviour: A dialog because the selected application is no longer available (through the system). Actual behaviour: evince is launched with no warning. I don't know whether evince runs postscript in safe mode or not, but there could be a different default mime-type handler such as "lpr". I haven't checked whether or not there are similar issues with remember to "use system default" for mime-types. (sftp: protocols are handled by gnomevfs extension [nsGnomeVFSProtocolHandler not nsExternalProtocolHandler] which results in a dialog after download to select an application based on mimetype.)
This implements a fix for the simple half of the bug: making sure that gnomevfs and ShellExecute are actually executing protocol handlers. Unfortunately, I can't see myself fixing the other half (handler changed) in the foreseeable future. I think things are better with this small patch, but if you are already into redesigning the data structures, maybe you'd prefer to focus on that. The comments in this patch should probably still go in though. Tested on Linux only.
Tidied a little and corrected a typo in the comments.
Attachment #274730 - Attachment is obsolete: true
Attachment #274844 - Flags: superreview?(dmose)
Attachment #274844 - Flags: review?(cbiesinger)
Before going ahead with this, I'd like to make sure that the current UI design <http://wiki.mozilla.org/ContentHandling:User_Interface/Proposed_UI2> embodies the intended semantics, so I've CCed a few UI folks. I'm wondering if it's really the intent to have the user select the system default as a specific app, or if we should instead be somehow indicating that they're choosing to "always use the system default, which just happens to currently be... XXX".
No longer blocks: 389969
Depends on: 389969
Flags: blocking1.9?
Flags: blocking1.9? → blocking1.9-
Whiteboard: [proto]
I talked to faaborg about this a week or two ago, and his suggestion was in line with what you're proposing: if we can't mirror the OS app both ways (which we can't), we should just treat it the way the UI is exposing it: as though we were selecting the app in question itself, and not the system default. Implementing this is going to be difficult, though, since we don't always know the details we'd like about the system default. That said, I think we need to do _something_ here for 1.9, probably something along the lines of Karl's patch. Requesting blocking-1.9.
Assignee: nobody → dmose
No longer blocks: 372949
With a few exceptions, I'm mostly focused on MailCo-related hacking now. Reassigning a bunch of bugs to default component owners. I'm happy to help with brainstorming/advice as needed, however. Search for the string MAILMONKEY to delete any bugmail generated by this change.
Assignee: dmose → nobody
Comment on attachment 274844 [details] [diff] [review] check that the system default still exists (tidier) going to assume this is no longer relevant, please re-request if I'm wrong
Attachment #274844 - Attachment description: check that the system default still exists (tidier) → check that the system default still exists (tidier)
Attachment #274844 - Flags: review?(cbiesinger)
Comment on attachment 274844 [details] [diff] [review] check that the system default still exists (tidier) I haven't worked with this code in years, so I'm probably not the best reviewer here, assuming this patch is still relevant. Apologies for not doing something about this earlier.
Attachment #274844 - Flags: superreview?(dmose)
Bug 444440 gives another situation where the handler invoked is not the one selected/displayed.
Product: Core → Firefox
Version: Trunk → unspecified
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: