Firefox bug in webbrowser module on Ubuntu?!

  • Thread starter SPE - Stani's Python Editor
  • Start date
S

SPE - Stani's Python Editor

Hi,

During optimizing SPE for Ubuntu, I found something strange. I have
Ubuntu 5.10 "The Breezy Badger" and unfortunately this code is not
working:

It does not throw an exception, but is not able to launch a browser.

Ubuntu ships with Firefox as its default browser, but it looks like it
is not recognized by the standard webbrowser module, instead it seems
to prefer Netscape, which is not installed:
'netscape'

In the _browsers attribute there seems to be an entry for
'mozilla-firefox', but doesn't seem to work{'galeon': [None, <webbrowser.Galeon instance at 0xb7d261cc>],
'mozilla': [None, <webbrowser.Netscape instance at 0xb7d2608c>],
'mozilla-firefox': [None, <webbrowser.Netscape instance at
0xb7d2612c>], 'w3m': [None, <webbrowser.GenericBrowser instance at
0xb7d22fec>]}

The tryorder is...['galeon', 'mozilla-firefox', 'mozilla', 'w3m']

As a workaround I check for the file '/usr/bin/firefox' and use a
os.system call. Of course a user could maybe install Netscape, but it
would be absurd that SPE would require Netscape.

Is there a reason why this doesn't work? It looks like a bug.

Stani
 
P

Paul Boddie

SPE said:
During optimizing SPE for Ubuntu, I found something strange. I have
Ubuntu 5.10 "The Breezy Badger" and unfortunately this code is not
working:


It does not throw an exception, but is not able to launch a browser.

My opinion is that the webbrowser module is fairly obsolete, and that
on modern desktop environments one should use whichever mechanism that
is provided by such environments to open URLs instead. Consequently, I
made a package available for the purpose of performing such operations:

http://www.python.org/pypi/desktop

There are certain ways to override the autodetection in use within that
module, and a DESKTOP_LAUNCH environment variable can also be set to
configure its behaviour further. Unfortunately, attempts to confirm the
standardisation status of that variable failed to cut through the turf
wars, newbie-bashing and MIME type hair-splitting on the xdg mailing
list, but a Google search seemed to suggest that my application of it
isn't inappropriate.

Paul
 
N

ncf

This section is the cause of the problem:

for browser in ("mozilla-firefox", "mozilla-firebird",
"mozilla", "netscape"):
if _iscommand(browser):
register(browser, None, Netscape(browser))

It's trying to load "mozilla-firefox" as the exec name instead of
simply "firefox".

A potential workaround *might* be to do this:

import webbrowser
if webbrowser._iscommand("firefox"):
webbrowser.register("firefox", None, Netscape("firefox"))
webbrowser.open("http://www.google.com/")

((Untested))

Best of luck

Hi,

During optimizing SPE for Ubuntu, I found something strange. I have
Ubuntu 5.10 "The Breezy Badger" and unfortunately this code is not
working:

It does not throw an exception, but is not able to launch a browser.

Ubuntu ships with Firefox as its default browser, but it looks like it
is not recognized by the standard webbrowser module, instead it seems
to prefer Netscape, which is not installed:
'netscape'

In the _browsers attribute there seems to be an entry for
'mozilla-firefox', but doesn't seem to work{'galeon': [None, <webbrowser.Galeon instance at 0xb7d261cc>],
'mozilla': [None, <webbrowser.Netscape instance at 0xb7d2608c>],
'mozilla-firefox': [None, <webbrowser.Netscape instance at
0xb7d2612c>], 'w3m': [None, <webbrowser.GenericBrowser instance at
0xb7d22fec>]}

The tryorder is...['galeon', 'mozilla-firefox', 'mozilla', 'w3m']

As a workaround I check for the file '/usr/bin/firefox' and use a
os.system call. Of course a user could maybe install Netscape, but it
would be absurd that SPE would require Netscape.

Is there a reason why this doesn't work? It looks like a bug.

Stani
 
S

skip

ncf> This section is the cause of the problem:
ncf> for browser in ("mozilla-firefox", "mozilla-firebird",
ncf> "mozilla", "netscape"):
ncf> if _iscommand(browser):
ncf> register(browser, None, Netscape(browser))

In SVN trunk (aka 2.5a0) this code is

for browser in ("mozilla-firefox", "firefox",
"mozilla-firebird", "firebird",
"mozilla", "netscape"):
if _iscommand(browser):
register(browser, None, Mozilla(browser))

where Mozilla == Netscape, so your proposed fix appears to be correct.
(Which reminds me, I have a patch to webbrowser.py to test...)

Skip
 
S

SPE - Stani's Python Editor

This seems ok...{'galeon': [None, <webbrowser.Galeon instance at 0xb7d471cc>],
'firefox': [None, <webbrowser.Netscape instance at 0xb7d43bcc>],
'mozilla': [None, <webbrowser.Netscape instance at 0xb7d4708c>],
'mozilla-firefox': [None, <webbrowser.Netscape instance at
0xb7d4712c>], 'w3m': [None, <webbrowser.GenericBrowser instance at
0xb7d43fec>]}

But it is still not working.......doesn't do anything

However...True

I also have Ubuntu on a VMware Player and there it works out of the
box, although firefox is not registered there. (mozilla-firefox is.)

It is strange as I just installed Ubuntu on this system and can't
imagine something is screwed up already.
 
J

Jarek Zgoda

Paul Boddie napisa³(a):
There are certain ways to override the autodetection in use within that
module, and a DESKTOP_LAUNCH environment variable can also be set to
configure its behaviour further. Unfortunately, attempts to confirm the
standardisation status of that variable failed to cut through the turf
wars, newbie-bashing and MIME type hair-splitting on the xdg mailing
list, but a Google search seemed to suggest that my application of it
isn't inappropriate.

As this isn't yet actual standard but proposed only, I decided to give
my users ability to select preferred way to "open" media files, so even
running some exotic desktop (Fluxbox and FVWM are very popular choices
here) they can open urls from my application using either kfmclient,
gnome-open or custom defined command.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,740
Latest member
JudsonFrie

Latest Threads

Top