Wednesday, August 18, 2010

Recap on SeaMonkey 1.1 > 2.0 migration: Add-on caveats

Themes

Even if a profile is migrated, SeaMonkey 2.0 will default to its default theme. If you used a Modern theme (built-in), then you'll have to choose it from the Add-on Manager and restart SeaMonkey. The selection and amount of themes for SeaMonkey 2.0 is different than for SeaMonkey 1.x.

Extensions (this is the difficult part)

  • Extensions must be installed anew.

  • The whitelist of servers where extensions and themes can be installed from might not be migrated.

  • Globally installing an extension requires administrative rights.

    Unlike with Mozilla Firefox, whereby globally installing an extension installs it into every private user profile for all users of an operating system (so that there are multiple copies around of the same extension), doing this for SeaMonkey actually installs the extension into SeaMonkey's extensions folder that resides in the program's install directory.

    The pitfall is that a limited Windows xp user would then be unable to update a required extension for compatibility. I had that with two spelling dictionaries.

    The quick-and-dirty solution in my case was to temporarily set the user as administrator, update the extension for compatibility and then remove the user's administrator credentials. Bah.

    While global extension installation could potentially be very convenient in terms of getting to install only one extension at once for all profiles (=different SeaMonkey users), it does introduce a number of security and other considerations:

    1. One is that, for example, in Windows xp, SeaMonkey is installed into the Program Files folder, where limited users have limited rights, which means that they cannot update the extension, even for compatibility (can't modify folder contents).

    2. If SeaMonkey were installed into a public directory — such as
      C:\Documents and Settings\All Users\Documents — then the whole suite would be left vulnerable to tampering either by its users or a malicious program (both would have to have awareness of the program's different location).

    3. Change user access rights for relevant extensions' folders where they are in
      Program Files\SeaMonkey\extensions.

      A few words of caution: I have not tried this myself, but some of the user support forum topics related to SeaMonkey have suggested that limited users should be given rights to the whole SeaMonkey install directory, so that they would be able to update their extensions. I do not recommend giving rights to the whole program directory, but giving rights to limited users for only the extensions directories.

      While this would make SeaMonkey reasonably tamper-proof, the extensions would be the few to remain vulnerable to tampering.


      To easily see which add-on is installed into which folder, install the MR Tech Toolkit extension. It extends the Add-on Manager with lots of useful tools, but the function you need is "Browse install directory" when right-clicking an extension.

      Once the Windows Explorer folder for the extension is open, click on the folder whitespace, and on the Properties command. This should open the Properties window for the current folder. There, in the Security tab, click on Users from the Group or User names list and click on the Modify checkbox in the "Allow" column. Click the Apply button, but don't leave the window yet. Click the Advanced button and in the "Advanced Security Settings for extensionfoldername" list, verify that the set permissions for separate user(s) or a group of users apply to "This folder, subfolders and files".

      This action thus leaves SeaMonkey more-or-less tamper-proof, but may leave directories of specific extensions vulnerable to tampering.

    4. Best to install extensions separately into every profile? What if there are more than five users and what if a few of those users have more than one SeaMonkey profile?

  • I had trouble installing Flashblock from addons.mozilla.org, so I had to add flashblock.mozdev.org to the whitelist and install from there. No trouble installing NoScript from addons.mozilla.org.

  • As it usually is with SeaMonkey browsers, the Flashblock toolbar button will not show automatically. Instead of opening the Preferences window, click on any free space in the SeaMonkey toolbar, then on Customize... A Firefox-like toolbar customization dialog should show up and the Flashblock toolbar item can be added wherever a user chooses in the toolbar (the standard location was next to the Home button in the Personal Toolbar). Because the computer where I installed SeaMonkey 2.0 does not have a printer, I dragged the printer button off the toolbar.

  • Server whitelists for Flashblock and NoScript do not migrate automatically. I had to manually type in server names into the new Flashblock whitelist, but I think its file can be migrated (haven't checked how to do it). NoScript allows exporting the whitelist, so I did that from SeaMonkey 1.1 and imported the whitelist in SeaMonkey 2.0 after installing NoScript.

It has always been the developers' intention for Mozilla (later SeaMonkey, which became Mozilla's successor; and a branched-off Mozilla Firefox) to have global and per-user extensions.

Mozilla 1.0 finally came out on 05.06.2002. Seeing what Mozilla 1.0's (minimum) system requirements were (modest by nowadays' standards) can give a helpful glimpse into what kind of hardware and software people were using at that time.

This was an era when single-user operating systems in computers were still a norm: four years after the release of Windows 98 and two years after Windows Me was released. Hard disk capacity then (2001–2002) — well, roughly ten years back — was about 10% of what it is now (2010) and there wasn't any lack of people who used much older computers. It's duly possible that hard disk capacity was seen as a premium back then, because after Mozilla 1.0 was released, it was criticized for its bloat.

Mozilla 1.0's full installer for Windows was 9.8 Mb, releases for Linux were between 11.6–13.9 Mb, and release sizes for exotic operating systems ranged between 16–26 Mb. The size of the Windows installer was actually normal, because the installers for Netscape Communicator 4.x and Internet Explorer 5 weren't all that much more smaller, as both included bundled software.

I guess the bloat factor was two-pronged:

Those who lived through those times, can remember how Internet Explorer reigned supreme.

Actual software bloat

IE users eager to try out something new would probably perform a 'normal' install of Mozilla (or Netscape 6.X) and only thereafter discover that Mozilla wasn't only a browser, but an application suite with an extensive feature set, while Internet Explorer was duly perceived as a stand-alone program. And that the typical installs of Netscape 6.X would also bundle a number of other tag-along apps, like RealPlayer and AOL Instant Messenger.

In all actual fact, Outlook Express, Windows Media Player, Microsoft NetMeeting and various other bits were just as well bundled with large ('Normal'/'Typical') Internet Explorer installations, only that Internet Explorer was marketed by Microsoft as an inalienable part of the Windows operating system; other said programs were bundled as parts of Windows 95OSR2.x, Windows 98/Me and newer. Yet people launching Internet Explorer both on Windows and Mac knew and saw that they were only launching a browser and not a whole suite of applications (e-mail, newsgroups, chat/IM) they probably didn't have any need for.

Slow user interface responsiveness

Much of Mozilla's user-facing behaviour was based on Netscape Communicator 4.x, but its cross-platform user interface toolkit was completely new.

Netscape 6.X and newer were subsequently based on Mozilla's underlying code base. People used to Internet Explorer or even Netscape 4.x found Mozilla 1.0 as not particularly responsive compared to IE and Netscape 4.x and I know I can attest to that when seeing SeaMonkey 1.1.xx work on older hardware.

In terms of system resource usage, Mozilla 1.0 would run more-or-less properly on the kind of metal specified in its system requirements. Nevertheless, the new cross-platform user interface toolkit (intended to ease development, which I believe it did) was not native to any existing operating system and thus imposed a performance penalty on any hardware that wasn't top-of-the line. Hence the talk of bloat.

All this gave plenty of impetus for Mozilla developers to create a separate browser which eventually came to be Mozilla Firefox. And lo and behold, Mozilla Firefox 1.0 ran well and faster on even older hardware (CPU considerations aside).

To continue soon?


What is so great about SeaMonkey, is that the underlying technology didn't change much throughout the great ten years between Mozilla 1.0 and SeaMonkey 1.1.19, which really is proof of the package's superiour design considerations.

No comments: