Prism Information - In Depth

A lot of people have been having problems getting extensions to work with Prism. This is kind of an expected situation considering that the extensions that are being targeted are designed for use under Firefox, which has a different UI than Prism. This can cause a lot of headaches trying to figure out what’s wrong. There are ways around some of these problems, especially if the extension includes a xul overlay that is compatible with the browser xul for Prism. Or if you can load the chrome url to the main xul overlay in Prism’s input url (which of course requires that you already have the extension installed). Other extensions however, have no hope of working with Prism unless changes are made to the overlays.

I’ve also been running into a problem described by commenter Marcel, here. I’ve been getting a similar error under Windows for different extensions when I try to install them. Don’t know why, and what makes it worse is that these errors crop up in extensions that I’ve had no problems installing before on other computers (maybe I need to have Webrunner installed along side Prism?). I’ve also had problems with version 0.9 not installing and using the included icons for webapp files. I’m going to have to look into that one a bit further before I can comment more on it though.

At any rate, I’m going to list as much information in this post as I can find on Prism to refer back to, then I’m going to create a new post on how to install an extension for Prism manually. I’d also like to post a how-to on getting POW to work under Prism as well, but I don’t know whether or not I’ll get to that (maybe over Thanksgiving break). So, first some links.

LINKS:
Mozilla Labs’ Prism Page - A broad overview of the goals of the Mozilla Prism Project
Mozilla Developer Center’s Prism Page
MDC’s Prism Page on Extensions
Mozilla Labs’ Prism Forum
Mozilla Wiki Prism Page - Along with the Dev Center’s page, a good source for documentation on  Prism
Mark Finkle’s Blog (one of Prism’s developers - BTW - THANK YOU MARK!!!)
SVN for Prism’s source code
List of Prism Contributors on ohloh.net
Douglas Meyer’s Blog post on getting Google Gears to work with Prism
Commenter Manlo’s blog post on getting RTM working with Prism (does not appear to be working)
Wikipedia Entry

Next, here’s a list of all the files that Prism makes use of in the user’s profile directory on Windows and Mac OS X - Linux to come (I don’t have access to my Linux box at the moment).

Default Prisim Folders in User’s Home directory (Windows as of Prism v0.9):

Under C:\Documents and Settings\{user name}\Application Data\

Prism\
Prism\profiles.ini
Prism\Profiles\
Prism\Profiles\{random string}.default\
Prism\Profiles\{random string}.default\cert8.db
Prism\Profiles\{random string}.default\compatibility.ini
Prism\Profiles\{random string}.default\compreg.dat
Prism\Profiles\{random string}.default\cookies.sqlite
Prism\Profiles\{random string}.default\extensions
Prism\Profiles\{random string}.default\extensions.cache
Prism\Profiles\{random string}.default\extensions.ini
Prism\Profiles\{random string}.default\key3.db
Prism\Profiles\{random string}.default\localstore.rdf
Prism\Profiles\{random string}.default\mimeTypes.rdf
Prism\Profiles\{random string}.default\permissions.sqlite
Prism\Profiles\{random string}.default\places.sqlite
Prism\Profiles\{random string}.default\prefs.js
Prism\Profiles\{random string}.default\secmod.db
Prism\Profiles\{random string}.default\xpti.dat
Prism\Profiles\{random string}.default\extensions\

Under C:\Documents and Settings\{user name}\Local Settings\Application Data\

Prism\Prism\
Prism\Prism\updates\
Prism\Prism\updates\0\

For Each WebApp Prism creates (Windows as of Prism v0.9):

Under C:\Documents and Settings\{user name}\Application Data\Prism\

{webapp name}\
{webapp name}\profiles.ini
{webapp name}\Profiles\
{webapp name}\Profiles\{random string}.default\
{webapp name}\Profiles\{random string}.default\cert8.db
{webapp name}\Profiles\{random string}.default\compatibility.ini
{webapp name}\Profiles\{random string}.default\compreg.dat
{webapp name}\Profiles\{random string}.default\cookies.sqlite
{webapp name}\Profiles\{random string}.default\extensions
{webapp name}\Profiles\{random string}.default\extensions.cache
{webapp name}\Profiles\{random string}.default\extensions.ini
{webapp name}\Profiles\{random string}.default\extensions.rdf
{webapp name}\Profiles\{random string}.default\key3.db
{webapp name}\Profiles\{random string}.default\localstore.rdf
{webapp name}\Profiles\{random string}.default\mimeTypes.rdf
{webapp name}\Profiles\{random string}.default\permissions.sqlite
{webapp name}\Profiles\{random string}.default\places.sqlite
{webapp name}\Profiles\{random string}.default\pluginreg.dat
{webapp name}\Profiles\{random string}.default\prefs.js
{webapp name}\Profiles\{random string}.default\secmod.db
{webapp name}\Profiles\{random string}.default\signons3.txt
{webapp name}\Profiles\{random string}.default\xpti.dat
{webapp name}\Profiles\{random string}.default\extensions\

Under C:\Documents and Settings\{user name}\Application Data\WebApps\

{webapp name}@{webappaddr}\
{webapp name}@{webappaddr}\localstore.json
{webapp name}@{webappaddr}\override.ini
{webapp name}@{webappaddr}\webapp.ini
{webapp name}@{webappaddr}\webapp.js
{webapp name}@{webappaddr}\icons\
{webapp name}@{webappaddr}\icons\default\
{webapp name}@{webappaddr}\icons\default\{icons included in webapp bundle}

Under C:\Documents and Settings\{user name}\Local Settings\Application Data\Prism\

{webapp name}\
{webapp name}\Prism\
{webapp name}\Prism\updates\
{webapp name}\Prism\updates\0\
{webapp name}\Profiles\
{webapp name}\Profiles\l05apnbh.default\
{webapp name}\Profiles\l05apnbh.default\XPC.mfl
{webapp name}\Profiles\l05apnbh.default\XUL.mfl
{webapp name}\Profiles\l05apnbh.default\Cache\
{webapp name}\Profiles\l05apnbh.default\Cache\_CACHE_001_
{webapp name}\Profiles\l05apnbh.default\Cache\_CACHE_002_
{webapp name}\Profiles\l05apnbh.default\Cache\_CACHE_003_
{webapp name}\Profiles\l05apnbh.default\Cache\_CACHE_MAP_
{webapp name}\Profiles\l05apnbh.default\Cache\{other cache files}

Default Prisim Folders in User’s Home directory (Mac OS X as of Prism v0.9):
Under /Users/{user name}/Library/Application Support/Prism/

Profiles/
Profiles/profiles.ini
Profiles/{random string}.default/
Profiles/{random string}.default/cert8.db
Profiles/{random string}.default/compatibility.ini
Profiles/{random string}.default/compreg.dat
Profiles/{random string}.default/cookies.sqlite
Profiles/{random string}.default/extensions.cache
Profiles/{random string}.default/extensions.ini
Profiles/{random string}.default/key3.db
Profiles/{random string}.default/localstore.rdf
Profiles/{random string}.default/mimeTypes.rdf
Profiles/{random string}.default/permissions.sqlite
Profiles/{random string}.default/places.sqlite
Profiles/{random string}.default/pluginreg.dat
Profiles/{random string}.default/prefs.js
Profiles/{random string}.default/secmod.db
Profiles/{random string}.default/xpti.dat
Profiles/{random string}.default/extensions/

For Each WebApp Prism creates (Mac OS X as of Prism v0.9):

Under /Users/{user name}/Library/Application Support/{webapp name}/

Profiles/
Profiles/profiles.ini
Profiles/{random string}.default/
Profiles/{random string}.default/cert8.db
Profiles/{random string}.default/compatibility.ini
Profiles/{random string}.default/compreg.dat
Profiles/{random string}.default/cookies.sqlite
Profiles/{random string}.default/extensions.cache
Profiles/{random string}.default/extensions.ini
Profiles/{random string}.default/key3.db
Profiles/{random string}.default/localstore.rdf
Profiles/{random string}.default/mimeTypes.rdf
Profiles/{random string}.default/permissions.sqlite
Profiles/{random string}.default/places.sqlite
Profiles/{random string}.default/pluginreg.dat
Profiles/{random string}.default/prefs.js
Profiles/{random string}.default/secmod.db
Profiles/{random string}.default/xpti.dat
Profiles/{random string}.default/extensions/

Under /Users/{user name}/Library/WebApps/{webapp name}@{webappaddr}/

{webapp name}@{webappaddr}/localstore.json
{webapp name}@{webappaddr}/override.ini
{webapp name}@{webappaddr}/webapp.ini
{webapp name}@{webappaddr}/webapp.js
{webapp name}@{webappaddr}/icons/
{webapp name}@{webappaddr}/icons/default/
{webapp name}@{webappaddr}/icons/default/{icons included in webapp bundle}

So, why they heck would I list all the files and directories here? Well, I want a reference to point at when I start explaining which files to make changes to in order to install an extension manually. Here’s some code:

Code Snippit for Prism Extensions’ install.rdf (from)

<em:targetApplication>
    <!– Prism –>
    <Description>
      <em:id&gt;prism@developer.mozilla.org&lt;/em:id>
      <em:minVersion>0.8</em:minVersion>
      <em:maxVersion>1.0.0.*</em:maxVersion>
    </Description>
  </em:targetApplication>

Code Snippit for Prism Extensions’ extension.rdf (information is required from the extension’s **install.rdf**)

<RDF:Description RDF:about="urn:mozilla:item:{**extension id from install.rdf**}"
                        NS1:installLocation="app-profile"
                        NS1:version="**from install.rdf**"
                        NS1:optionsURL="**from install.rdf**"
                        NS1:iconURL="**from install.rdf**"
                        NS1:name="**from install.rdf**"
                        NS1:description="**from install.rdf**"
                        NS1:creator="**from install.rdf**"
                        NS1:homepageURL="http://**from install.rdf**"
                        NS1:contributor="**from install.rdf**">

More to come…

Ubuntu 8.04 - Installed and AWESOME!!

screenshotI just finished basic configuration of Ubuntu 8.04 Beta (Hardy Heron) on my laptop - AND IT’S AWESOME!! My laptop is a Toshiba Satellite P105-S6024, and I’ve been having no end of problems getting the audio to work in conjunction with the ACPI. Turns out the Toshiba provided ACPI code for the BIOS isn’t all that great under GNU/Linux, and in order to fix the problem you’ve got to either recompile the kernel (which was the direction I had finally decided to take this weekend), or if you could get it to work, there’s a way to add the code to the initrid.

I had read this morning that there was a new Ubuntu release and, as I was having problems with Debian and was about to reinstall Ubuntu 7.10, so I decided to give it a try. Well, it’s a Beta, but I’m not going to hold that against it! Compiz is installted by default (but just subtley enough you don’t know it till you’re seeing the tell tail fades and such), Firefox 3 Beta 4, wireless support includes WPA (which it has had built-in since the 7.10 release), improved dual screen support for laptops, hell - I didn’t even have to install 915resolution to setup my Intel display to 1440×900! I still had to install Amorok and vlc manually, but that’s cake compared to recompiling a kernel.

  1. So far so good, performance is a bit sluggish (especially with the extra visual enhancements enabled), but I’m thoroughly tickled pink by the feature set and compatibility! THANK YOU UBUNTU COMMUNITY!!

Link:

Ubuntu Test Releases

I love Mondays…

Yesterday started banally enough - morning routine and all. Then I looked outside the window. It had rained, which means all that raking and leaf blowing I did over the weekend was all for naught.

When I talked to my wife from work, she mentioned that she was having some problems with connecting to our home network with her laptop. I told her to unplug the wireless router and plug it back in again (things would be so much easier with a little “reset” on these things - manufacturers, take note!).

On the way home my truck’s check engine light came on. Okay, no major problem yet, I’m still able to drive for now. After I got home that evening I decided that I’d see if my wife was still having problems. That started a lovely, 4 hour ordeal that I’m loath to repeat.

As it turns out, her wireless card wasn’t working anymore, and Vista, being that sterling example of how not to design an OS or GUI, was of little help. We’ll just have to wait and see if it’s still under warranty with HP for replacement parts, otherwise I’ll be picking up a new mini-pci card for her. As a temporary measure I tried adding a wireless USB dongle (hehehe “dongle”), but Vista Home Premium (I know those words, but when you put them together like that, I just don’t understand them) didn’t have the drivers built-in (huh, go figure). So I tried to download them on my laptop. Thus started phase two of my evening - wireless router troubleshooting.

The wireless router has been acting wonky for a few weeks now, netstumbler has been reading the wireless access point as, not only the programmed SSID, but the SSID and a random string of characters on every probe. Which is weird because I have it set not to broadcast the SSID to begin with, so the fact that it’s identifying itself that was is troubling. Long, story short I spent the next couple of hours trying to get my crappy, spare wRouter working (f**k you D-Link, f**k you very much). Ah the joys of a web interface that isn’t compatible with Firefox (’nuff said).

After I got that working (I’m leaving out the part about trying to upgrade the firmware in a futile attempt to get the UI to work with Firefox, heaven forbid that I try to manage it from something other than Windows), I tried to connect to the internet. No, that didn’t work either. I accessed my DSL modem, and ran diagnostics and pings from there. No DNS, huh. I tried calling BellSouth - no… sorry, the “new” AT&T (which is to say the old AT&T, just with less customer care). The customer service number was of no help, everyone was gone because it was after hours (but what if I have a problem?! what - no helpful message telling me who to call after hours for service? oh well). Then I found the number for the internet support, oh good. That worked, eventually - when I finally got a line (yes, for 20 minutes I wore my redial button clean of letters because they didn’t have the number of phone lines to cover the number of customers calling in - let me make this clear, the PHONE COMPANY didn’t have the lines to cover the call volume - that should give you an idea of the size of the problem). Turns out the prerecorded message said they were having a “region wide problem” and that customer service techs (?) didn’t have any more details.

Eventually, my internet was restored (at least they new how to fix the problem and got things going in a “timely” manner), I got to the internet and got the drivers I needed. While I was pulling my hair out (what little is left) I saw news reports (my TV/cable was working at least, although one of the local channels faded out a couple of times…) about the North East and West coasts getting pounded by extreme whether. That’s when I thought about how even though I was stuck in my little corner of hell, I was still better off pulling my hair out with these smaller problems than those poor bastards who were getting snowed in or flooded out. I guess it’s all a matter of perspective.