Open Bug 718422 Opened 12 years ago Updated 2 years ago

Firefox can't find register protocol handler apps on mac os x

Categories

(Core :: Widget: Cocoa, defect, P3)

9 Branch
x86
macOS
defect

Tracking

()

UNCONFIRMED

People

(Reporter: axet, Unassigned)

Details

Attachments

(2 files)

Attached file Info.plist
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Build ID: 20111220165912

Steps to reproduce:

I'm trying to register protocol handler for url on mac os x. I'v done all steps and everyintg working on Chrome and Safari but not on Firefox. 

Here a simple steps, create an app:

/Users/axet/Desktop/123.app/
/Users/axet/Desktop/123.app//Contents
/Users/axet/Desktop/123.app//Contents/Info.plist
/Users/axet/Desktop/123.app//Contents/MacOS
/Users/axet/Desktop/123.app//Contents/MacOS/run.sh




Actual results:

Chrome and Safari abble to open my special share://some url and open my app. Firefox saying:

Firefox doesn't know how to open this address, because the protocol (share) isn't associated with any program.



Expected results:

It should open my app, with or without warning.
Attached file run.sh
1) create an app
2) run it once

3) chrome and safari will abble to open sharezz://adsf urls, but firefox not.
Component: Untriaged → Widget: Cocoa
Product: Firefox → Core
QA Contact: untriaged → cocoa
Have you also tested on other OSes, like Windows or Linux?

How (exactly) did you "register" your "app" to handle the sharezz:// protocol?

If you did this in your app's Info.plist, you'll need to attach a copy if it to this bug.
I create report about mac osx issue, not about other platforms such as windows, linux.

To register protocol in Macosx you have to put specific parameters into Info.plist and run app.

File already attached.
> File already attached.

Sorry, I hadn't noticed it.

As for testing on other platforms, I realize that your testcase is Mac-specific.  But if this is a Firefox bug, it may be in cross-platform code.  That's why I asked if you'd tested on other platforms.  Apparently you haven't.
protocol registration is platform specific only.

if i'm going to support windows or linux (and i wlil later) it will be completely different code related to this feature.

i'm reporing only vs mac right now.
One more question:

Have you tested on other versions of OS X (like 10.6.8 or 10.5.8)?
I'm not able to reproduce what you report, on either OS X 10.7.2 or
10.6.8.

I created a directory structure like the one described in comment #0.
Then I copied the attached Info.plist and run.sh to the appropriate
parts of it.  Then I ran "chmod ugo+x run.sh" from a Terminal prompt
to make run.sh executable.  Then I ran the test app once (to make it
register itself to handle sharezz:// URLs).

Now I entered "sharezz://asdf" in the Firefox 9.0.1 location bar.  A
"Launch Application" dialog appeared, telling me "this link needs to
be opened with an application".  "Last.fm" was highlighted, but the
dialog allowed me to choose another application if I so	desired.  When
I clicked on OK in the dialog, the test app ran.
i see.

now try to change sharezz to sharett

on the same application, on the same path.
and try to open sharett: link. it will fail.
my the way, I'm using 10.7.2
It *should* fail.  Nothing is registered to handle sharett:// URLs -- not until the test app is run at least once.
i found steps to reproduce:

1) create app 123.app with 'shareaaa'. open app. try to open shareaaa://123 in firefox.
2) change 123.app with 'shareaab'. open app. try to open shareaab://123 in firefox
3) rename app 123.app to 222.app. change 'shareaac'. open app. try to open shareaac://123

this sequince fail only on firefox.
I can confirm this --- Firefox Mac's behavior for custom protocol handlers differs from native Mac apps, and from other Mac browsers (Safari and Chrome).

When a Mac app defines a protocol handler (in the app bundle's Info.plist), Safari and Chrome automatically open the app to handle the protocol it defines (presumably using OS X's LaunchServices API).

Firefox does not --- instead, it pops up a dialog with the text "This link needs to be opened with an application", but it does not list the app that defines the protocol handler in the dialog.  The user has to manually click "Choose..." and find the app by browsing the filesystem, resulting in an inferior user experience compared to native Mac apps.
After 6 years, this is still an issue. Even though the application has been installed and run on Mac, Firefox still refuses to list that application in the protocol handler. It simply opens a dialog box with the option to choose "an" application. The user would have no idea as to what application needs to be selected to open that custom protocol.

By the way, this works perfectly in Chrome and Safari. It is only Firefox that has the issue. Does anyone have any idea or workaround on how to solve this problem?
Priority: -- → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: