Showing posts with label mozilla firefox. Show all posts
Showing posts with label mozilla firefox. Show all posts

Wednesday, March 18, 2009

Java Plug-In Next Generation with Firefox 3.0

I wanted to use Sun's Java Plug-In "Next Generation" (NG) with Firefox 3.0. However, at the time of writing the latest packages available in Ubuntu's repositories are sun-java6-*, which correspond to Java 6.0 update 7. This contains the "classic" plug-in; the NG plug-in was introduced in Java 6.0 update 10.

So, I downloaded the latest Sun JDK - v6.0 update 12 - and installed it in /opt/java. Then I performed the following steps:
  1. Create a symbolic link from /usr/lib/jvm to the installed JDK
    cd /usr/lib/jvm
    sudo ln -s /opt/java/jdk1.6.0_12 java-6u12-sun

  2. Created /usr/lib/jvm/.java-6u12-sun.jinfo. I simply copied .java-6-sun and editted (see below).
    Note, that in order to use the NG rather than "classic" plug-in, I specified /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so for the *-javaplugin.so alternatives. I also needed to add an entry for firefox-3.0-javaplugin.so, which is missing from .java-6-sun.jinfo.
  3. Installed alternatives for /usr/lib/jvm/java-6u12-sun. For each line of .java-6u12-sun.jinfo I ran update-alternatives --install, e.g.
    sudo update-alternatives --install \
    /usr/bin/firefox-3.0-javaplugin.so \
    firefox-3.0-javaplugin.so \
    /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so \
    64
    
    Doing this manually is a bit tedious, so I created a Perl script to do - see below.

  4. Selected the java-6u12-sun jav alternative, i.e.
    sudo update-java-alternatives -s java-6u12-sun
The /usr/lib/.java-6u12-sun.jinfo I created in step 2.
name=java-6-sun-1.6.0.12
alias=java-6u12-sun
priority=64
section=non-free

jre ControlPanel /usr/lib/jvm/java-6u12-sun/jre/bin/ControlPanel
jre java /usr/lib/jvm/java-6u12-sun/jre/bin/java
jre java_vm /usr/lib/jvm/java-6u12-sun/jre/bin/java_vm
jre javaws /usr/lib/jvm/java-6u12-sun/jre/bin/javaws
jre jcontrol /usr/lib/jvm/java-6u12-sun/jre/bin/jcontrol
jre keytool /usr/lib/jvm/java-6u12-sun/jre/bin/keytool
jre pack200 /usr/lib/jvm/java-6u12-sun/jre/bin/pack200
jre policytool /usr/lib/jvm/java-6u12-sun/jre/bin/policytool
jre rmid /usr/lib/jvm/java-6u12-sun/jre/bin/rmid
jre rmiregistry /usr/lib/jvm/java-6u12-sun/jre/bin/rmiregistry
jre unpack200 /usr/lib/jvm/java-6u12-sun/jre/bin/unpack200
jre orbd /usr/lib/jvm/java-6u12-sun/jre/bin/orbd
jre servertool /usr/lib/jvm/java-6u12-sun/jre/bin/servertool
jre tnameserv /usr/lib/jvm/java-6u12-sun/jre/bin/tnameserv
jre jexec /usr/lib/jvm/java-6u12-sun/jre/lib/jexec
jdk HtmlConverter /usr/lib/jvm/java-6u12-sun/bin/HtmlConverter
jdk appletviewer /usr/lib/jvm/java-6u12-sun/bin/appletviewer
jdk apt /usr/lib/jvm/java-6u12-sun/bin/apt
jdk extcheck /usr/lib/jvm/java-6u12-sun/bin/extcheck
jdk idlj /usr/lib/jvm/java-6u12-sun/bin/idlj
jdk jar /usr/lib/jvm/java-6u12-sun/bin/jar
jdk jarsigner /usr/lib/jvm/java-6u12-sun/bin/jarsigner
jdk java-rmi.cgi /usr/lib/jvm/java-6u12-sun/bin/java-rmi.cgi
jdk javac /usr/lib/jvm/java-6u12-sun/bin/javac
jdk javadoc /usr/lib/jvm/java-6u12-sun/bin/javadoc
jdk javah /usr/lib/jvm/java-6u12-sun/bin/javah
jdk javap /usr/lib/jvm/java-6u12-sun/bin/javap
jdk jconsole /usr/lib/jvm/java-6u12-sun/bin/jconsole
jdk jdb /usr/lib/jvm/java-6u12-sun/bin/jdb
jdk jhat /usr/lib/jvm/java-6u12-sun/bin/jhat
jdk jinfo /usr/lib/jvm/java-6u12-sun/bin/jinfo
jdk jmap /usr/lib/jvm/java-6u12-sun/bin/jmap
jdk jps /usr/lib/jvm/java-6u12-sun/bin/jps
jdk jrunscript /usr/lib/jvm/java-6u12-sun/bin/jrunscript
jdk jsadebugd /usr/lib/jvm/java-6u12-sun/bin/jsadebugd
jdk jstack /usr/lib/jvm/java-6u12-sun/bin/jstack
jdk jstat /usr/lib/jvm/java-6u12-sun/bin/jstat
jdk jstatd /usr/lib/jvm/java-6u12-sun/bin/jstatd
jdk jvisualvm /usr/lib/jvm/java-6u12-sun/bin/jvisualvm
jdk native2ascii /usr/lib/jvm/java-6u12-sun/bin/native2ascii
jdk rmic /usr/lib/jvm/java-6u12-sun/bin/rmic
jdk schemagen /usr/lib/jvm/java-6u12-sun/bin/schemagen
jdk serialver /usr/lib/jvm/java-6u12-sun/bin/serialver
jdk wsgen /usr/lib/jvm/java-6u12-sun/bin/wsgen
jdk wsimport /usr/lib/jvm/java-6u12-sun/bin/wsimport
jdk xjc /usr/lib/jvm/java-6u12-sun/bin/xjc
plugin xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin firefox-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin firefox-3.0-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin iceape-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin iceweasel-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin mozilla-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin midbrowser-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin xulrunner-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so


The perl-script used in step 3. above. Copy-and-paste into /tmp/java6u12sun.pl then:
cd /tmp
chmod +x java6u12sun.pl
sudo ./java6u12sun.pl

-----
#!/usr/bin/perl

use strict;

# Read .jinfo file.
my @lines = ();
open(JINFO, '/usr/lib/jvm/.java-6u12-sun.jinfo')
or die "Can't open .jinfo file.";
@lines = ;
close(JINFO);

# Install alternatives.
for (@lines)
{
if ($_=~ m+/usr/lib/jvm/java-6u12-sun+)
{
my @split = split ' ', $_;
system "update-alternatives --install /usr/bin/@split[1]  @split[1]  @split[2] 64";
}
}

1;

Monday, July 21, 2008

SOLVED: Firefox 3 Sun Java Plug-In

Having recently switched from Firefox 2 to Firefox 3, I found that the Java Plug-In was no longer working. Looking at the list of browser plugins being used by Firefox 3 (enter "about:plugins" in the browser's navigation field) I discovered that the OpenJDK GCJ was being used rather than Sun's JRE v6.0 plugin (from the sun-java6-* packages).

It took some time to work out why this was the case - /usr/lib/firefox/plugins contained a symbolic link to /etc/alternatives/mozilla-firefox-javaplugin.so, which in turn was set to Sun's JRE v6.0 plug-in.

The only Java Plug-In alternative set to OpenJDK's was that of xulrunner-1.9. So, I changed it's setting to Sun's JRE v.6.0 of the plugin:

sudo update-alternatives --config xulrunner-1.9-javaplugin.so

and upon restarting Firefox 3 it used Sun's Java Plug-In.

Very weird, and possibly related to this bug?

SOLVED: Firefox2 removal

After upgrading from Dapper Drake to Hardy Heron I decided to keep using Firefox 2 rather than Firefox 3, even though the latter had been installed - no problem.

However, a few annoying problems with Firefox 2 prompted me to make the switch. So, I ran

sudo update-alternatives --config x-www-browser

to set Firefox 3 to the default web-browser and uninstalled the firefox-2 package. However, clicking on the Firefox icons continued to run Firefox 2.

After digging around I realised that I still had a local copy of the Mozilla Firefox 2 build due to having used ubuntuzilla. To fix this I did the following:
  1. uninstalled the local copy of Firefox
  2. uninstalled ubuntuzilla
  3. reset System > Preferences > Preferred Applications > Web Browser to Firefox

Sunday, June 24, 2007

Flash audio problems in Firefox 2 - Solved

After upgrading to Firefox 2 I had problems with the Flash plugin no longer producing sound when another audio application was running - a problem I'd not previously had with Firefox 1.5.

The fix was fairly simple. I had libflashplayer.so in my .mozilla/plugins directory. This was being used by Firefox 2 for the application/x-shockwave-flash MIME type in preference to Shockwave Flash v9.0 (flashplugin-nonfree package).

After removing libflashplayer.so and flashplayer.xpt from my .mozilla/plugins directory audio playback works perfectly in the Flash plugin in Firefox 2.

Saturday, June 16, 2007

Upgrading to Firefox2 using Ubuntuzilla

Since official support for Mozilla Firefox 1.5 expires at the end of June 2007, I decided to upgrade to Firefox 2.0. There are no official packages for Firefox 2.0 for Dapper Drake, so I followed the excellent instructions provided by Ubuntuzilla for installing the latest versions of Mozilla's Firefox, Seamonkey and Thunderbird.

At this stage I was only interested in upgrading Firefox, so I downloaded the ubuntuzilla.py script and ran

python ~/Desktop/ubuntuzilla.py -a install -p firefox

As noted, it is important to not uninstall the existing version of Firefox 1.5.

From now on I can simply use Firefox 2.0's built-in update mechanism to keep Firefox up-to-date.

I noticed two minor drawbacks resulting from the upgrade:
  1. Font rendering is not as attractive in Firefox 2.0 as it was in 1.5
  2. Sound in the Flash plug-in does not work if another audio application, e.g. Rhythmbox is being used. I must first exit all audio applications and restart Firefox to get sound working in the Flash plug-in. This was not the case in Firefox 1.5