SeaMonkey Trunk Tracker

Friday, January 27, 2012

Add-ons Sync Prefs: A Restartless Add-on for SeaMonkey 2.8

Ever since I ported Sync to SeaMonkey (2.1), the list of supported engines had been fixed: Bookmarks, History, Passwords, Preferences, and Tabs. With Firefox 11, the Sync developers added a new engine capable of syncing add-ons (or more precisely, which add-ons are installed). Since the Sync back-end is shared code, SeaMonkey 2.8 will include it, too. But while Firefox 11 will include UI for activating the new Add-ons engine, SeaMonkey 2.8 will lack it. This is because the Firefox changes landed pretty close to the l10n freeze so we were not able to port them in time. SeaMonkey 2.9 will include the UI changes, but why wait so long?

On January 31st, SeaMonkey 2.7 will be released (well, that's the plan). A few days later, the first beta of SeaMonkey 2.8 will follow. People like me who are on the beta channel will upgrade directly from 2.7b5 (ETA today) to 2.8b1. This is when my main working environment will be ready for Add-ons Sync.

Now I was wondering what the SeaMonkey developers could do to allow users of SeaMonkey 2.8 (on aurora, beta or release) to enable/disable the Add-ons Sync engine through preferences UI. Well, the answer is simple: Provide an add-on that adds the corresponding option!

I decided early on to give it a try myself and create that add-on. I also felt that users were probably more likely to install such an add-on if it didn't interrupt their work flow (i.e. not require a restart of the application, which in the case of SeaMonkey is often used for both browsing and mail) and took care to not break anything if it was installed on an incompatible version of SeaMonkey (say, 2.7 or 2.9). The first requirement could be solved through writing a restartless add-on, the latter by adding explicit checks to the code.

I quickly found some documentation for restartless add-ons on MDN (though they are called "bootstrapped" there). Unlike classic add-ons (which rely on XUL overlays and usually consist of many files and levels), a restartless add-on can be as simple as two files: The install manifest (install.rdf) and the code, written in JavaScript (bootstrap.js).

I guess for someone new to Mozilla-specific code, starting from scratch like this could be hard. During the development I faced several issues that you would probably not have seen with a classic XUL overlay approach. The Add-ons SDK might have been a better alternative if I had intended to write an add-on for Firefox, but since this one is SeaMonkey-only and given the requirements, there was not much of a choice.

The main issue I faced was actually in shared XBL code (preferences.xml): The constructor and destructor of preference elements throw if the element in question is not inside a preferences element. What is probably always the case with XUL (including overlays) is not true for elements dynamically added or removed through JavaScript (cloneNode/removeChild). In the end I had to replace cloneNode by createElement and stop using removeChild (i.e. the preference element is left in the preferences window until it is closed; if the add-on is disabled while the window is still open, the preference element just gets disabled).

Another surprise was that JavaScript errors inside bootstrap.js are reported as warnings in the Error Console. So if you enable the Errors filter, you won't see these warnings and assume everything is alright, while in fact the add-on does not work at all! Brilliant. :-(

Anyway, I was finally able to finish the add-on (with friendly help from Neil Rashbrook), upload it to AMO, and get it fully reviewed. :-) Here it is.

Now of course none of this would have been possible without…

Note: If you look at the source code you might see that the prefs handling (user vs. default prefs) is not perfect yet. This is something that both Neil and Kris Maglione (AMO reviewer) pointed out, but which I deliberately disregarded for the first version of the add-on.

Labels: , ,

Saturday, December 24, 2011

SeaMonkey 2.7 Beta 1 is Compatible by Default

Today, on Christmas Eve (local time), SeaMonkey 2.7 Beta 1 will be released. This version features something that will probably make a huge difference to ordinary users: Compatible-by-default add-ons (called CBD in the following). This is basically a change of opinion regarding add-on compatibility: Instead of assuming that an add-on is not compatible with a new application version, we will henceforth assume that it is, which should better reflect reality. Switching to a faster release cycle (with less ground-breaking, incompatible changes per release) certainly helped this come true.

So far, support channels have seen many complaints from users who didn't want to upgrade to a new version of SeaMonkey because their favorite add-ons didn't work with it (yet). Sometimes people only upgraded later, or only when they were told how to override compatibility checks (e.g. using the ACR).

Unlike Firefox add-ons, SeaMonkey add-ons did never benefit from automatic compatibility bumps on AMO. Thus as far as SeaMonkey was concerned, if the add-on developers didn't do the bump themselves, it was up to each individual user to take measures if they wanted to keep their add-ons active. And of course they did. Finding no UI option for that, they asked on the support channels, delayed the update, or gave up.

Now if you take a look at the SeaMonkey Add-on Compatibility Tracking page, you'll easily see that about half the add-ons listed under the AMO category are not marked compatible with the current stable version of SeaMonkey (or better). Add-on authors generally got better at bumping compatibility, but it's still a manual task as far as SeaMonkey is concerned.

So what's different with the new CBD feature? Simply put, almost all of that other half from above will be compatible with SeaMonkey 2.7 Beta 1. Automatically. Without any end-user having to change or install anything in addition. That's what I call a UX win! :-) [1]

So, why not all add-ons from the above list? Because some restrictions apply. For CBD to take effect for a SeaMonkey add-on, the following requirements need to be met:
  1. The add-on is compatible with at least SeaMonkey 2.1 or Toolkit 2.0 (the matching Firefox version is 4.0, which is also their lower bound for CBD). This makes sense since that was when fully SeaMonkey adopted the Places back-end (formerly use for history only, then for bookmarks, too) and added Sync support. [2]
  2.  
  3. The add-on does not contain binary components (this rules out popular add-ons like Lightning and Enigmail).
  4.  
  5. The add-on does not claim to only support a later version of SeaMonkey than the one that is currently running the check (in other words: the add-on minVersion must not be larger than the app version).
  6.  
  7. The add-on did not opt out of CBD (by setting the strictCompatibility flag in install.rdf or on AMO).


From my experience, the majority of frequently used SeaMonkey add-ons pass all of these checks. So instead of instructing all users with add-on compatibility issues to install the ACR, we can now limit that advice to those who want to test and give feedback for Beta, Aurora and trunk builds. With CBD, the ACR cannot be used to enable old (pre-2.1) add-ons anymore anyway.

That's it for our next beta, but there's more! In early 2012, when SeaMonkey 2.9 hits Beta, users on that channel will be able to have Sync distribute their installed add-ons across multiple instances of SeaMonkey (provided the add-ons are available from AMO). Note that Firefox will ship the new feature one release earlier (it landed very close to the Aurora uplift, which is the cut-off for changes that affect localization), but that's not too bad since this feature doesn't work across applications anyway.


Now what's left to say? Merry Christmas everyone! Let there be peace on earth.


[1]: Thanks to everyone who worked on this feature! I know you primarily have Firefox on multiple platforms in mind when you develop things in Toolkit, but still.


[2]: Toolkit/AOM Bug 680845 still applies, i.e. if an add-on is marked as compatible with SeaMonkey on AMO, installation will fail if the add-on's install.rdf doesn't list SeaMonkey.


Note to self: Contact the developers of the add-ons listed under 2.0x since these will not benefit from CBD as-is, though at least some of them still work with current SeaMonkey version for sure, e.g. Nostalgy. If anyone reads this and shares my concerns, feel free to help (e.g. using the ACR to give feedback), it is surely appreciated!

Labels:

Tuesday, December 13, 2011

11-12-13

[Note: This post is quite different from those I made in the past. Long story short: Due to time constraints I will hardly ever be able to revive the old SeaMonkey Trunk Tracker style of release updates or even complete the missing ones. That's not too bad, though, since I'm now responsible for the SeaMonkey website, which includes the list of changes per release (of which we have more now, as you know). This allows me to re-focus this blog on what it is actually about: tracking trunk development. The below is probably a good example of what is still to come.]

Welcome back! It's 11-12-13 now (at least in my timezone) and I feel this is the perfect time to share something with you that just landed on trunk.

If you are building SeaMonkey or Thunderbird on Windows, you can now finally replace this:

make -f client.mk

or this:

autoconf-2.13
cd mozilla
autoconf-2.13
cd js/src
autoconf-2.13
mkdir -p $MOZ_OBJDIR
cd $MOZ_OBJDIR
../comm-central/configure
time python -O ../comm-central/mozilla/build/pymake/make.py

by this:

time python -OO mozilla/build/pymake/make.py -f client.mk

and replace this:

mk_add_options MOZ_OBJDIR=/e/mozilla-src/comm-central-build

by this:

mk_add_options MOZ_OBJDIR=e:/mozilla-src/comm-central-build

and add back this:

mk_add_options MOZ_MAKE_FLAGS=-j8

in your .mozconfig and there you'll have it: Parallelized building on Windows, using pymake! On a fast PC like mine (i7) you can get a full debug build done from scratch in only about 25 minutes now, without the fear of experiencing intermittent hangs. :-)

Thanks go to all the people who worked on pymake and especially the ones who fixed the last issue on comm-central (Bug 706905).

BTW: AFAICS the comm-central client.mk is still missing some pymake-related fixes that were recently made to the mozilla-central equivalent, especially Bug 707512 and Bug 643167. Please correct me if I'm wrong.

In the next issue I'm going to talk about compatible-by-default extensions (a.k.a. add-ons) and the implications for SeaMonkey. Stay tuned!

Labels: ,

Saturday, March 12, 2011

2.1 Beta 2 Roundup

Welcome back! It's been a while, and this time I'm especially late since Beta 2 already shipped a month ago. But fear not, there's also news to tell: On trunk, both Venkman (JavaScript Debugger) and ChatZilla are finally working again, which means they'll also do in the upcoming (and last) Beta 3. Additionally, SeaMonkey 2.1 Beta 3 will show download progress in the Windows 7 taskbar, display plugins in MailNews feeds and allow to add a search bar (as in Firefox) to the browser (including suggestions and engine management).

For Beta 2, the biggest part was the integration of Sync. All in all it took more than four months of review and dozens of iterations to get to the point where it could land on trunk. Of course none of that would have been possible without the effort of the original Weave and Firefox Sync developers in the first place, who built a product that is both easy to use and secure by design. The implementation as of Beta 2 is not complete yet; on trunk the Preferences dialog has already been redesigned and further changes are about to happen (mainly porting the easy setup screen for adding devices).

Highlights:
  • Add a Keyword for this Search
  • Add-on Manager improvements
  • Data Manager final integration
  • Deferred Session Restore
  • Delete news messages from local storage
  • DoNotTrack header
  • DOM Inspector Enhanced Box Model Viewer
  • Doorhangers
  • HTML5 Forms API
  • Lightweight themes (Personas) on Address Book, Composer and MailNews
  • Remember page zoom per site
  • Mac PPC dropped, 64-bit added for 10.6 Snow Leopard
  • Omnijar
  • OpenType improvements
  • Scrollable browser tab bar and All Tabs button
  • Sync
  • WebGL and D3D
MailNews:
  • Do not stop copy to IMAP folder action without any error message (handle errors trying to stream next message) (Bug 601900)
  • Add support for retrieving new mail by time delay or during startup to Unix Mailspool account type (Bug 480945)
  • Make attachment code for apple encode 64-bit compatible (Bug 537900)
  • Let user choose signature separator (new mail.identity.default.suppress_signature_separator pref) (Bug 58406)
  • Replace server-based archiving prefs by identity-based ones (mail.identity.default.archive_granularity, mail.identity.default.archive_keep_folder_structure) (Bug 517514)
  • Prevent copying messages/folders from local to IMAP from failing due to virus checker interfering with temp file handling (Bug 601900)
  • Do not automatically mark IMAP Draft messages as read (Bug 470746)
  • Make sure default alert sound plays on Mac when new email arrives (Bug 594355)
  • Fix new mail icon for libxul builds (Bug 598942)
  • Make lightweight themes / Personas work in the Composer window (Bug 579739)
  • Make lightweight themes / Personas work in the MailNews window (Bug 579738)
  • Do not use disk cache if storing the message in the offline store (Bug 531033)
  • Remove unused prefs from mailnews.js (Bug 610289)
  • Remove unused mailnews.use_received_date pref (Bug 607265)
  • Remove unused pref mail.imap.mime_parts_on_demand_max_depth (Bug 623685)
  • Expand single or last message ID in headers display by default (Bug 611738)
  • Support IMAP AUTH EXTERNAL with TLS and given client certificate (Bug 286581)
  • Introduce deletion of newsgroup messages, differentiating between Cancel and Delete (Bug 250141)
  • Fix parsing and compaction of local folders > 4 GB (Bug 608449)
  • Polish the MailNews search dialog on Mac and fix some obsolete styles for all OSs (Bug 613358)
  • Support balloon notifications for new messages on Windows (pref: mail.biff.show_balloon) (Bug 605972)
  • Fix handling of forwarded flag on IMAP servers that do not support the flag (Bug 561292)
  • Detect corrupt offline store and disk cache entries for IMAP messages (Bug 531033)
  • Fix some cases of copies of messages ending up in offline store (Bug 609683)
  • Do not try to open appledouble attachments as appledouble and do not make attachments disappear when appledouble is registered (Bug 579682)
  • Open links from Address Cards like links from MailNews (Bug 116114)
  • Do not open selected message in new tab for middle click on scrollbar (Bug 518545)
  • Port several composeStartup fixes from Thunderbird (e.g. for attachment file names passed in from the command line, support accents and encoding) (Bug 617011)
  • Improve print format of attachment file names (remove content-type and content-encoding) (Bug 544984)
  • Fix opening messages found with Advanced Search by double click (Bug 545420)
  • Use folder semaphore to prevent IMAP offline store corruption (Bug 531033)
  • Make sure bottom signature does not appear inside the quotation (Bug 614949)
  • Make sure deleting a message from a collapsed thread does not cause all other messages to disappear from the subject pane (Bug 593525)
  • Reduce wake up frequency of IMAP threads for possibly lower power consumption (Bug 613184)
  • Make sure import from Apple Mail.app does not break messages or causes data loss (Bug 531245)
  • Make the "count the size of attachments" feature work for .eml attachments (Bug 606699)
  • Show correct message for error saving to Drafts folder, and retry saves to Sent folder (Bug 257735)
  • Set forwarded flag on messages forwarded inline by message filters (Bug 624337)
  • Keep IMAP offline stores up-to-date when messages are moved/copied (including fcc/save as draft) (Bug 574441)
  • Show size in attachment list (Bug 26517)
  • Correct the attachment header for inline text attachments (Bug 609992)
  • Make Ctrl+F4 work in tabmail (but not on Mac OS X) and add better keyboard Tab navigation on Mac (Bug 628918)
  • Make Print Preview work in viewsource and MailNews again (Bug 629900)
  • Make -compose command line options like bcc work if they are the first or only argument (Bug 627999)
  • Improve message composition logic performance (especially for forwarding many messages as attachments) (Bug 293100)
  • Prevent empty news articles when selecting during download from news server (Bug 540288)
  • Make F5 reload the view as in the browser (Bug 79397)
  • Add ability to detach grandchildren with MIME multipart/alternative (Bug 351224)
  • Add check for > 4 GB folder when appending to local Sent/Drafts folder (Bug 598104)
  • Add ability to drag feed URL from header pane (Bug 606992)
  • Convert composition security options for encrypt into a single menu item (with checkbox) like signing (Bug 537219)
  • Make Select Thread work in cross folder virtual/saved searched/unified folders again (Bug 544983)
  • Fix text field context menu (Bug 623590)
  • Fix renaming folders (Bug 588006)
  • Do not show disabled menu items (like Insert/Format in MailNews Compose) as enabled on hover (Bug 609422)
  • Fix mail reply painting issue (prevent documents loaded in mail editors to set up their own editors using the designMode or contentEditable APIs) (Bug 616590)
  • Fix collapsed folders appearing without children in MailNews subscription manager (Bug 592633)
Address Book:
  • Make lightweight themes/Personas work in the Address Book window (Bug 608966)
  • Add placeholdeer to Bookmarks and Address Book sidebars' search fields (Bug 610517)
  • Use GTK theme settings for background and text color in Address Book Output Panel (Bug 616699)
Bookmarks:
  • Improve Places File Bookmark (Ctrl+D) dialog (Bug 586947)
  • Turn bookmarks panel into an arrow panel (Bug 590105)
  • Add missing treelines to bookmarks sidebar and manager (Bug 620531)
  • Improve speed of managing multiple bookmarks in the Bookmarks Manager (Bug 613034)
  • Prevent bookmarks initialization locking with the first visit addition (Bug 620068)
  • Make the primary bookmarked indicator asynchronous (Bug 620066)
  • Initially import bookmarks from resource: scheme for Omnijar compatibility (Bug 628079)
  • Update bookmark tag list when manually adding, renaming, or deleting (Bug 627416)
  • Make sure tags of bookmarks are not lost when using undo after a cut or delete (Bug 597995)
Download Manager:
  • Make sure downloading of a file from a password protected directory does not fail (Bug 607560)
  • Remove all files left behind when a download is canceled (Bug 593815)
  • Make sure automatic updates do not get stalled when installed version is newer than a downloaded update restored using Windows system restore (Bug 601701)
Help:
  • Split mail_help.xhtml to several files (Bug 246405)
  • Clarify and update Help for Copies & Folders Account Settings (Bug 608152)
  • Document option "Only check for new mail after opening Mail & Newsgroups" (Bug 525973)
  • Document MailNews Default Account (Bug 227152)
  • Document shortcuts for Text Viewing, Navigation and Selection (Bug 232063)
Locales: Audio/Video:
  • Turn on OpenGL LayerManager for fullscreen video (Bug 556547)
  • Never play audio/video automatically in an editor (Bug 601881)
  • Work around alsa-pulse bug that causes hangs after resuming audio from pause (Bug 573924)
  • Ensure video controls don't show when we can't load a resource (Bug 595009)
  • Ensure video controls resize correctly when showing and hiding status overlay (Bug 604885)
  • Do not initiate media buffering before decode hits the end of downloaded data (Bug 623637)
  • Create media cache temp files with correct permissions and remove stray ones after 30s of idle time on Windows (initial wait time 3min) (Bug 572579)
  • Restore playback statistics to enable more accurate media buffering duration calculation (Bug 623637)
  • Add support for StereoMode element (Bug 584259)
  • Adjust ALSA start threshold to reduce the chance of deadlocking when recovering from under-run (Bug 615134)
Add-ons:
  • Fix installer for trunk builds (after Omnijar) so extensions are also installed (Bug 629037)
  • Add keyboard Ctrl+Shift+A shortcut to open Add-on Manager (and change MailNews Select Thread to Alt+Shift+A) (Bug 591483)
  • Do not lose pending installs/upgrades when upgrading to the new Add-on Manager (Bug 568251)
  • Update the UI with the new add-on details when bootstrapped add-ons are upgraded (Bug 596336)
  • Clear XUL fastload when new extensions are installed (Bug 606076)
  • Make revealing and hiding bootstrapped add-ons in non-profile install locations work correctly (Bug 553017)
  • Add final visual style and graphics to Add-on Manager (Bug 601022)
  • Allow upgrading an add-on to an add-on with a different ID (Bug 412819)
  • Make Get Add-ons tab the default selection in a new profile (Bug 610764)
  • Accelerate building the add-on lists (Bug 614416)
  • Allow add-ons to opt out of metadata collection (Bug 603409)
  • Add loading and error states to the Get Add-ons view (Bug 601143)
  • Ignore removed add-ons during update check (Bug 616457)
  • Support paid results in the add-ons search result (Bug 562790)
  • Pass Addon object to custom about dialogs (Bug 610661)
  • Recover gracefully from a broken extensions.bootstrappedAddon (Bug 619607)
  • Hide the disable button for add-ons that are waiting to install (Bug 616620)
  • Default Search to searching for available add-ons (Bug 611459)
  • Remove Disable item from context menu for already disabled extensions and plugins (Bug 616633)
  • Automatically install add-ons distributed with the application into the user's profile (Bug 474289)
  • Remove last updated date and sorting bar from Add-on Manager list view (Bug 623207)
  • Group add-ons in list view according to their status (enabled, disabled, etc.) (Bug 624808)
  • Remove add-on author name and link from Add-on Manager list view (Bug 623211)
  • Allow the tab key to only move to the items relevant to the selected extension (Bug 563912)
  • Download metadata for new add-ons when installed (Bug 595915)
  • Allow restarting extension downloads after failure (Bug 593535)
  • Make sure failed extension downloads can be resumed (Bug 593535)
  • Prevent multiple add-on entries in list view when downloading an update (Bug 618760)
  • Remove Pause button and make Cancel button work on download progress widget (Bug 581361)
  • Use InstallTrigger for XPI links (Bug 593025)
  • Rollback updates when file operations fail (Bug 587088)
  • Throw an exception if illegal arguments are passed to InstallTrigger.install (Bug 608680)
  • Support no contribution amount (Bug 617493)
  • Only show Available Updates pane when pending updates are available (Bug 591024)
  • Do not show hidden pane when clicking a few pixels down from Plugins (Bug 612053)
  • Fix display for long descriptions in detail view (Bug 624175)
  • Hide version numbers for lightweight themes (Personas) (Bug 580298)
Session Store:
  • Support form restore for securely transmitted sites (HTTPS) (Bug 603090)
  • Use Deferred Session Restore (Bug 614220)
Preferences:
  • Update Cache preferences panel for new cache size heuristic (Bug 594744)
  • Add preference for accessibility.blockautorefresh and Hardware Acceleration (Bug 465303)
  • Change the "No Proxy for" list UI from a textbox to a textarea (Bug 613198)
  • Update hardware acceleration preference for layer prefs tri-state (Bug 625318)
  • Add preference for link diversion restrictions (Bug 583625)
  • Add preference for do-not-track HTTP header (Bug 630270)
Sync:
  • Port Sync UI to SeaMonkey (Bug 576970)
  • Update Modern for Sync UI and fix about:sync-tabs theming (Bug 612172)
  • Hide context menu separator if about:sync-tabs is empty (Bug 628163)
  • Add a pref (services.sync.log.appender.debugLog.enabled) to control Sync back-end logging (Bug 599928)
DOM Inspector:
  • Make sure Inspect Contained Document followed by View Stylesheets works correctly (Bug 112674)
  • Prevent "Error: getSelectedItem is not defined" when switching from jsObject viewer to DOM viewer in document pane (Bug 617053)
  • Allow selecting/scrolling properties tree in CSS Rules viewer after undoing a deletion (Bug 620149)
  • Allow to watch a11y events for the whole application (Bug 551404)
  • Make the DOM Nodes viewer currentIndex-clean and do more intelligent rebuilding (Bug 589299)
  • Add Inspect in New Window to the Edit menu and give it a shortcut (Bug 588071)
  • Add Inspect in New Window to the stylesheets viewer (Bug 606821)
  • Disable DOM Nodes viewer's context menu's Paste and Insert menus if no items are enabled (Bug 589300)
  • Add Copy URI and View File to stylesheets viewer's context menu (Bug 607080)
  • Add tooltips to Inspect menus (Bug 612333)
  • Add Copy URI and View File to XBL Bindings Viewer (Bug 613718)
  • Allow navigating DOM Inspector mouselessly (Bug 256244)
  • Add Enhanced Box Model Viewer, showing all data at once and with bold style for significant data (value!=0) (Bug 615156)
HTML5:
  • Add support for the track element to the HTML5 parser (Bug 620664)
  • Add :-moz-ui-invalid pseudo-class (Bug 605124)
Graphics:
  • Handle device removal when using D3D10 (Bug 604271)
  • Block D3D9 on Windows 2000 (Bug 603204)
  • Enable GL shadow layer (Bug 602428)
  • Enable D3D10 layers by default (new layers.prefer-d3d9 pref replaces layers.use-d3d10) (Bug 605547)
  • Fix anti-aliasing problem of D2D (Bug 548964)
  • Turn the layer acceleration prefs into a tri-state (removes layers.accelerate-all and layers.accelerate-none and adds layers.acceleration.disabled and layers.acceleration.force-enabled) (Bug 623446)
  • Add 3D Vision stereoscopic rendering support to D3D10 layers (Bug 617220)
  • Disable OpenGL layers by default on Mac OS 10.5 (Bug 583499)
  • Honor the gfx.color_management.force_srgb pref when it is set as a default pref in addition to being set as a user pref (Bug 608030)
  • Block WebGL on OpenGL on Intel cards on Windows (Bug 625118)
  • Only white-list Intel, NVIDIA and ATI, but block old drivers for ATI and NVIDIA older than June 2010 (Bug 623338)
  • Rename webgl.prefer_gl pref to webgl.prefer-native-gl and introduce webgl.force-enabled and webgl.disabled prefs (Bug 628403)
  • Do not enable OpenGL on Mac OS 10.6 before minor version 3 (Bug 629016)
  • Re-enable WebGL on Linux (bug 578877)
  • Create prefs (one per nsIGfxInfo feature) that override the built-in blacklist if set (pref branch gfx.blacklist. suffixes: direct2d, layers.direct3d9, layers.direct3d10, layers.direct3d10-1, layers.opengl, webgl.opengl, webgl.angle) (Bug 625160)
  • Reset animations when .src is changed (Bug 594771)
  • Stop animated GIFs looping too often (Bug 222176)
  • Fix GIFs not animating on page reload (Bug 601723)
Linux:
  • Make F5 reload on other platforms than Windows (enable it for Linux/Unix only, since we don't want it on Mac) (Bug 509954)
  • Make Helper Applications panel in Preferences window usable on a non-Gnome system (Bug 606998)
Mac:
  • Set minimum required OS version for Mac builds (Bug 604666)
  • Style the Findbar (Bug 605586)
  • Enable full screen mode on Mac (Bug 606297)
  • Adjust default IPC prefs for Mac 64-bit support and dropping PPC (Bug 614231)
  • Polish the Edit Filter dialog on Mac and fix some obsolete styles (all OSs) (Bug 614382)
  • Use RTL-friendly scrollbuttons (Bug 624161)
  • Adopt CSS for click-through (Bug 611857)
  • Improve MailNews (tab)scrollbox arrows/buttons (Bug 602568)
  • Use a better focus ring color in the MailNews search dialog (Bug 620797)
  • Style the bookmarks arrow panel (Bug 620132)
  • Do not open two windows when opening external links on Mac (Bug 531552)
Compiling:
  • Add --enable-profiling configure option (Bug 604871)
  • Adapt PYTHON_VERSION check (Bug 613811)
  • Transition LDAP SDKs to Mercurial (pull the LDAP c-sdk from Mercurial rather than CVS) (Bug 506601)
  • Require SP1 of VC8 EE to build successfully, obsolete VC7.1 and VC8 without its SP1 (Bug 610936)
  • Update required Cairo version to 1.10 (Bug 608484)
  • Require system libpng to be at version 1.4.1 or later (Bug 608483)
  • Provide an intelligible error when switching from gmake to pymake or vice versa on an absolutely configured objdir (Bug 608173)
  • Support startup timeline (Bug 604849)
  • Allow to build GConf and GnomeVFS/GIO support independently (Bug 545343)
  • Link 32-bit Windows builds with LARGEADDRESSAWARE (Bug 556382)
  • Require GTK+ 2.4.0 or later for compilation (bug 621962)
  • Enable crashreporter on Win64 (Bug 580623)
  • Remove MSVC 6 support (Bug 508760)
  • Fix DirectX SDK platform detection (Bug 622158)
  • Require SP1 of VC8 EE to build (successfully); Obsolete VC7.1 and VC8 without its SP1 (Bug 610936)
  • Disable ctypes on x86/MSVC if MASM is unavailable (Bug 551724)
  • Add --enable-profiling configure option (Bug 592923)
General:
  • Fix Undo Close Tab for tabs that are only in the bfundo cache (Bug 597637)
  • Accept middle-click for the new tab button (Bug 603095)
  • Make findbar appear above content and style it properly (Bug 605622)
  • Remove Bloglines from the feed reader options (Bug 603132)
  • Focus on content for Tools/Search the Web or clicking the search button (Bug 606858)
  • Make full screen window controls, bookmark overflow chevron and tab/sidebar close button more visible against dark lightweight themes (Bug 610408)
  • Do not ignore "Always use Google to subscribe to feeds" setting (Bug 612265)
  • Add Firefox Sidebar API to SeaMonkey Sidebar (Bug 399310)
  • Make removing entries in Data Manager trees select the next entry (Bug 597994)
  • Fix accessibility.typeaheadfind.usefindbar=false for View Source and Help windows (Bug 626985)
  • Do not hide the invalid form popup if the user types in an invalid form control (Bug 620079)
  • Notify when installing a lightweight theme but e.g. Modern is current which means that a restart is needed (Bug 594776)
  • Use doorhangers for geolocation, login manager, application/add-on installations, indexedDB and other notifications (Bug 595810)
  • Deal with saved POST data in functions loading entries e.g. from Places (Bug 553459)
  • Add ability to open Data Manager to a specific domain (and panel) (Bug 588418)
  • Add an icon to the Data Manager tab (Bug 615014)
  • Decode IDN punycode in Data Manager (Bug 591324)
  • Switch SeaMonkey UI to open Data Manager instead of other windows (Bug 588419)
  • Make Esc key cancel Forget tab in Data Manager (Bug 613087)
  • Make DEL key set permission tab entry back to default in Data Manager (Bug 613086)
  • Add ability to add permissions in Data Manager (Bug 588417)
  • Add a possibility to Data Manager to only list domains of a certain data type (Bug 613795)
  • Switch to relevant tab for first domain with data in Data Manager when managing Permissions/Passwords (Bug 619098)
  • Fix Domain search in Data Manager with IDN (Bug 629678)
  • Remember zoom value on a site-specific basis (using Toolkit ZoomManager) (Bug 386363)
  • Give life to SeaMonkey (Bug 616874)
  • Warn people on startup if they run an old build with updates disabled (Bug 581319)
  • Update status bar correctly after switching tabs (and add support for the onUpdateCurrentBrowser notification) (Bug 583317)
  • Make SeaMonkey tab bar scrollable to cope with tab overflow (Bug 484968)
  • Support arrow panels in Modern and turn doorhangers into arrow panels (Bug 617661)
  • Make doorhanger menulist display correctly in Modern (Bug 617661)
  • Prevent clicking miscellaneous Location Bar icons from selecting the text (Bug 619309)
  • Provide screen reader accessibility for doorhanger notifications (Bug 617333)
  • Add "Add a Keyword for this Search" to websites' search fields (Bug 332538)
  • Switch SeaMonkey to Omnijar (Bug 588067)
  • Update right pane tree of Bookmark Manager when deleting a selected folder in the left pane tree (Bug 627408)
  • Enable the window resizer when the status bar is turned off (Bug 627755)
  • Prevent Sidebar from opening by default in new profiles (Bug 630124)
  • Prevent Location Bar from remembering invalid (Server not found) URLs (Bug 627416)
  • Fail to load with invalid port number instead of using default port (Bug 537381)
  • Implement File.slice (Bug 575946)
  • Truncate long text when pasting text that is longer than maxlength of text control (Bug 603556)
  • Add support for app.support.vendor, show it on about:support and remove support for general.useragent.vendor and vendorSub (Bug 591573)
  • Disable OOPP for Java on Windows (Bug 603417)
  • Do not hide doorhanger text when lightweight themes (Personas) are installed (Bug 604464)
  • Fix lightweight themes (Personas) chrome painting when entering/exiting full screen mode (Bug 604318)
  • Do not crash on closing print preview with iframe, position:fixed and input (Bug 595337)
  • Prevent browser from stalling with connections left hanging in TCP close wait state (Bug 606719)
  • Let build system provide an intelligible error when switching from gmake to pymake or vice-versa on an absolutely configured objdir (Bug 608173)
  • Do not handle files being dropped in an editable area (Bug 512717)
  • Ctrl+clicking on a text control border followed by an editing operation (e.g. paste) removes the table cell from a non-editable (Bug 424627)
  • Make sure pressing Enter in a paragraph with an id attribute does not create a second paragraph of same ID (Bug 607584)
  • Make sure caret is available when an iframe is put into design mode when it already has focus (Bug 542317)
  • Make sure bottom of spellchecker underline is painted in input element with certain fonts (Bug 548964)
  • Make ui.trackpoint_hack.enabled pref update live and add ui.window_class_override pref (Bug 594977)
  • Install Updates only installs the first update in the list (Bug 597397)
  • Recover from a corrupt database or incorrect schema after startup (Bug 602577)
  • Show four rows for select multiple by default (Bug 603141)
  • Do not crash when FIPS softtoken checksum verification fails (Bug 521849)
  • Recover from a corrupt database or incorrect schema after startup (Bug 602577)
  • Make installer add OOPP process plugin-container.exe to ShimInclusionList to prevent Windows Media Player from falling back to version 6.4 (Bug 609106)
  • Make the More Encodings sub menus non-localizable Bug 610638
  • Insert image files dropped onto editable areas as data: URI image (Bug 609632)
  • Make dropping arbitrary image files on editable areas actually work (Bug 609632)
  • Add pref (notification.disabled) to disable desktop notifications (Bug 605370)
  • Try to lock the main exe multiple times before giving up updating the application on Windows (Bug 611186)
  • Allow updating when files to be patched are in use on Windows (Bug 466778)
  • Start in Safe Mode if Shift is pressed during application startup on Windows (Bug 602562)
  • Do not truncate print job name to only 30 characters (Bug 531606)
  • Always strip leading "?" from keyword search (Bug 608198)
  • Only rewrite pluginreg.dat upon plugins list construction if there were changes (Bug 613679)
  • Accelerate TCP connection retries in HTTP (Bug 592284)
  • Add a pref (dom.allowXULXBL_for_file) to enable XUL and XBL for file: scheme (Bug 595397)
  • Use proper escaping in form submission names and values and treat textareas with an empty name the way that IE handles them (Bug 448611)
  • Do not make an element invalid if the value length is higher than the maxlength value (Bug 613021)
  • Make invalid output element block form submission (Bug 613113)
  • Scroll the whole selection into view, not just the focus point when finding on a page (Bug 559993)
  • Keep trying to scroll content into view even if it is clipped out (Bug 539949)
  • Fire reorder event on XUL tree when treeview is changed (Bug 614552)
  • Improve support for "Vary: Cookie" header (Bug 468426)
  • Only show "Available Updates" pane when pending updates are available (Bug 591024)
  • Do not treat body of HTTP 304 response as a HTTP/0.9 response to subsequent HTTP request (Bug 363109)
  • File fragmentation on update fix for partial updates which are by far the worst culprit (Bug 570058) - investigate small writes
  • HTTP Cache: use directory tree to store cache file (Bug 597224)
  • Disable WebSockets by default (pref network.websocket.override-security-block) (Bug 616733)
  • Disable accelerated SYN retry (workaround for bug 614677 and bug 613977)
  • Add architecture and list of invalid plugins to pluginreg (Bug 616271)
  • Only check plugin validity once (Bug 616271)
  • IndexedDB: Notifications should auto-dismiss in some circumstances (Bug 595253)
  • File size of pluginreg.dat increases steadily (Bug 620114)
  • Shift key for safe mode conflicts with Windows shortcut key (Bug 619866)
  • Fix editor's handling of surrogate-pair combining marks with backspace (Bug 332636)
  • Report some memory information with Windows crash reports (Bug 493779)
  • Autoscroll stops unintentionally while page is scrolling (Bug 605127)
  • Disable navigator.mozNotification by default (notification.feature.enabled pref) (Bug 607860)
  • Do not strip LFs following a pre or textarea (Bug 620267)
  • Prevent partially themed UI on first run after upgrade while using third-party theme (Bug 621475)
  • Fix View By Date and Site sorting for History sidebar (Bug 621843)
  • Fix alignment of common dialog icon and text (Bug 608604)
  • Make arrow panels use the direction of the anchor (Bug 619223)
  • Remove the possibility of other components breaking application update where possible (Bug 595078)
  • Display DirectWrite version in about:support (Bug 624970)
  • Present error page when someone tries to access remote XUL (Bug 623482)
  • Make the DOM timeout clamp a pref (dom.min_timeout_value) and enforce that it is non-negative (Bug 625256)
  • Show correct last modified time for local files (fix DST/UTC handling) (Bug 377307)
  • Prevent FTP list parse error when list returns double space between date and file name (Bug 543805)
  • Evaluate the graphics blacklist and set the per-feature "cache" prefs based on the results (Bug 625160)
  • Display non-customizable menubars correctly when a lightweight theme (Persona) is applied (Bug 617578)
  • Improve the position of the arrow for arrow panels (Bug 626605)
  • Detect corrupt places.sqlite and replace it on next startup (Bug 609286)
  • Make sure drag and drop is not disabled when a plugin is open in another tab on Linux (Bug 626157)
  • Disable hinting when printing (bug 490475)
  • Implement do-not-track HTTP header to express user intent to halt tracking across sites (Bug 628197)
  • Accelerate adding and removing lines in big textareas (Bug 597627)
  • Add font cache size info to about:support (Bug 629611)
  • Fix preference locking by reading defaults/autoconfig/* from Omnijar as appropriate (Bug 595522)
  • Do not strip characters when using Copy Link Location (Bug 377392)
  • Do not close pop-ups when a window is lowered while dragging (prevent Bookmarks menu from closing) (Bug 618248)
  • Create focus styles for split menu buttons in pop-up (doorhanger) notifications (Bug 595271)
  • Fix page context menu after dismissing notification bar (Bug 614152)
  • Make Password Manager work with input[type=email] (Bug 600551)

Labels: , , , , , , , , , , , , , , , , , , ,

Thursday, October 14, 2010

2.1 Beta 1 Roundup

Here we go again! After three alphas, the first of two betas of SeaMonkey 2.1 is just around the corner (ETA next week). As always, the Mozilla platform progressed at a fast pace (I stopped counting the Firefox 4 betas a while ago already, but they are close to shipping another one of those as well from what I can tell). In addition to better HTML5, CSS and WebM support, faster JavaScript and Add-on Manager improvements, some attention was paid to details like adding the ability to cancel modal dialog loops, too.

The list of improvements made to SeaMonkey is also quite noteworthy, though. Robert Kaiser (KaiRo) has been especially busy, bringing both the new Data Manager (which will replace the various password and permission managers in the next beta), OpenSearch support and a fast bookmarking icon in the location bar (similar to the star icon in Firefox) to SeaMonkey. And that is on top of the Places-based bookmarks integration and support for lightweight themes (Personas) that he added during the alpha period!

In a joint effort together with the Thunderbird developers, support for building SeaMonkey with libxul was added (and is now the default) which was a prerequisite for enabling plugin crash recovery (OOPP). Firefox features this since version 3.6, and now we do, too. :-)

One of the biggest problems users have had with SeaMonkey was websites that rendered incorrectly, were inaccessible or otherwise misbehaved. In many cases this could be traced back to poor browser detection, a.k.a. User Agent sniffing. KaiRo has blogged about the issue multiple times in the past (e.g. in Web Discrimination Or Browser Racism?) and even proposed a possible solution. Unfortunately no-one accepted the challenge. Time went by, but no solution was found. In the end, the SeaMonkey Council faced the truth and opted for enabling a new pref by default that makes SeaMonkey appear like Firefox to websites that use User Agent sniffing to detect browsers. Starting with 2.1 Beta 1, SeaMonkey users should have no need to fake their User Agent string anymore. Ideally, websites should work just as well as in Firefox now.

Some smaller changes include a new pref for opening new tabs relative to the current one and a Paste and Go option in the location bar. The "Report a Broken Website" functionality has been removed, mostly because it suggested that someone would take care of the reports when in fact that was not the case.

According to current plans, the only major feature left to be implemented for SeaMonkey 2.1 (scheduled for Beta 2 and having some larger impact on l10n) is the integration of Sync (f.k.a. Weave). This will be very similar to what is already included in Minefield (Firefox trunk nightlies), but available from both the browser and MailNews component, paving the way for future extensions (e.g. MailNews Sync, see Harini's Webspace).

Before we come to the list of notable changes between SeaMonkey 2.1 Alpha 3 and Beta 1 (see below), one more good news: The next version of the Add-on Compatibility Reporter will be compatible with SeaMonkey! Once it becomes available at AMO, give it a try and report your findings!

Progress:
  • split mail_help.xhtml to several files: almost done (Bug 246405)
  • doorhangers instead of notification bars: preliminary support (login manager) (Bug 595810)
  • Sync integration: get Tabs sync to work for SeaMonkey (Bug 567583)
MailNews:
  • add In-Reply-To or References header when forwarding a message (Bug 583587)
  • auto sync newly added messages more quickly (Bug 562115)
  • add account name to POP3 status message (Bug 66860)
  • do not crash while copying IMAP folder (Bug 531568)
  • stop partially downloaded messages from getting into the offline store (Bug 572974)
  • implement getBrowser() in MailNews windows (Bug 588895)
  • make the Account Manager window resizable on all platforms (Bug 591649)
  • use internationalized date for printing (Bug 294356)
  • do not scan plugin directories unnecessarily while loading messages (Bug 599119)
  • do not crash right after startup (Bug 573071)
  • show inserted images during composition if new mail started through external mailto: call (Bug 531437)
  • allow sending mail to postmaster (do not violate RFCs 821 and 2821) (Bug 383739)
  • add icons to MailNews tabs list (Bug 593944)
  • allow to import vCards (Bug 79709)
  • make all header fields tabbable, not just "Subject" and "Date" (Bug 479579)
Address Book:
  • remove "Check online presence (AOL)" from Address Book Tools menu (Bug 594081)
  • fix LDAP searching (Bug 585917)
Bookmarks:
  • show special icon for Unsorted Bookmarks entry in menu of Bookmarks button in Personal Toolbar (Bug 586056)
  • provide a fast bookmarking button in the location bar (Bug 589601)
Download Manager:
  • make Pause button work in Download Manager (Bug 588351)
  • prevent downloads from being stored in the cache (Bug 55307)
  • internationalize decimal separator in Download Manager (Bug 597852)
Help:
  • update Help for the new location of the 'Check for Updates' menu item (Bug 597172)
Audio/Video:
  • support Audio Data API: Get, Manipulate, Play & Save (Bug 490705)
  • do not assume first WebM track is video (Bug 596111)
  • implement buffered support for WebM (Bug 570904)
Troubleshooting Information:
  • add User Agent to about:support (Bug 591776)
  • add the ability for a DOM window to tell when it is accelerated and show that in about:support (Bug 590841)
  • expose Graphics feature status block reason in about:support (Bug 600620)
Preferences:
  • add pref (mailnews.ui.deleteMarksRead) to allow restoring old behavior of Move to Trash (do not mark as read) (Bug 465116)
  • allow to configure whether to open tabs relative to the current one (browser.tabs.insertRelatedAfterCurrent pref) (Bug 588122)
  • remove support for appending arbitrary data to the User Agent string via general.useragent.extra.* prefs (Bug 581008)
  • add pref (gfx.direct2d.disabled) to unconditionally disable Direct2D (Bug 590335)
  • add pref (layers.prefer-opengl) to enable OpenGL on Windows (Bug 593093)
  • remove general.useragent.extra User Agent pref, add UI for general.useragent.compatMode.firefox and turn it on by default (Bug 591327)
  • support signed updates in SeaMonkey (new prefs, e.g. app.update.log) (Bug 593135)
  • enable WebGL by default (pref webgl.enabled_for_all_sites), excluding Linux x64 for now (Bug 596720)
  • turn on Direct3D accelerated layers (layers.accelerate-all pref) by default on Windows (Bug 581212)
  • allow turning on Direct3D 10 layers through a pref (layers.use-d3d10) (Bug 546514)
  • adjust IPC prefs for PPC/i386 universal build (new prefix is dom.ipc.plugins.enabled.i386) (Bug 600378)
  • disable SSL false start (security.ssl.enable_false_start pref) by default (Bug 591523)
  • ignore middlemouse.contentLoadURL if general.autoScroll is true (middle-clicking to stop autoscroll should not activate clipboard address loading) (Bug 534248)
  • if dom.disable_window_flip pref is true, block .blur() and .focus() if opener is different from the caller (Bug 369306)
  • allow applications to specify the first update timer interval via a pref (app.update.timerFirstInterval) (Bug 594986)
Add-ons:
  • integrate Add-on Manager with browser session history (Bug 562797)
  • update compatibility information for installed add-ons when the application is upgraded (Bug 557956)
  • add install button to the Add-on Manager (Bug 567127)
  • visually differentiate between installed add-ons and available add-ons in list of search results (Bug 581084)
  • allow undo of uninstalling disabled add-ons (Bug 585339)
  • expose outdated plugins in Add-on Manager (Bug 563135)
  • do not report add-ons as incompatible if they are already incompatible with the current version (Bug 592785)
  • add context-related state change entries to context menu of add-ons (Bug 591465)
  • do not extract extensions into profile directory, but install/store as XPI file (Bug 533038)
  • remove the "Check for Updates Automatically" menu item from the Add-on Manager (Bug 595744)
  • add loading and error states to the Get Add-ons view (Bug 601143)
  • allow installing add-ons from FTP servers (Bug 599158)
  • do not show the compatibility dialog for new profiles (Bug 588440)
  • rename the Themes pane to Appearance (Bug 565300)
  • support specifying an XPI hash through the initial HTTPS request such that redirects to HTTP can be followed securely (Bug 591070)
  • allow installs and updates from non-built in certificate (Bug 435743)
  • provide ability "Update all now" within 'Available Updates' screen (Bug 587970)
  • show thumbnails instead of full screenshot in detail view (Bug 593217)
  • make installTrigger function available in IFRAMEs (Bug 589598)
  • make Remove buttons easier to discover in list view (Bug 590201)
CSS:
  • implement the CSS3 pseudo-classes :required and :optional for HTML (Bug 506554)
  • change valid/invalid form elements state to use CSS3 pseudo-classes :valid and :invalid (Bug 558788)
  • add support for calc() to 'vertical-align', 'text-indent', '{margin,padding}-{top,right,bottom,left}' and '-moz-margin-{start,end}', -moz-border-radius and -moz-outline-radius properties (Bug 585715)
  • add calc() support for outline-width and column-gap (Bug 363249)
  • support calc() on background-position, background-size, -moz-transform-origin, and background-image gradient stop positions. (Bug 594934)
  • remove support for min() and max() in calc() (Bug 363249)
  • implement :-moz-submit-invalid pseudo-class applying on submit buttons when the form is invalid (Bug 580575)
  • rename -moz-box-shadow to box-shadow (Bug 590039)
  • add -moz-device-pixel-ratio media query (Bug 474356)
  • change -moz-border-radius* properties to css3-background names (Bug 451134)
HTML5:
  • implement list attribute (Bug 556007)
  • implement datalist element (Bug 555840)
  • implement formaction for input and button elements (Bug 566160)
  • implement input type="email" (Bug 555559)
  • implement pattern attribute for input elements (Bug 345512)
  • implement input type="url" (Bug 344615)
  • implement required attribute (Bug 345822)
  • implement HTML 5's Constraint Validation API (Bug 345624)
  • implement formtarget for input and button which override form target attribute (Bug 566064)
  • implement @formmethod and @formenctype (Bug 582412)
  • implement form attribute (Bug 588683)
  • implement formnovalidate attribute for submit controls (Bug 589696)
  • implement fieldset element disabled attribute (Bug 557087)
  • implement novalidate attribute for form elements (Bug 556013)
  • filter items shown in list dropdown with current field value by default; use mozNoFilter attribute to disable (Bug 595067)
  • remove PUT and DELETE form methods (Bug 600813)
  • add UI for invalidformsubmit (Bug 599745)
Linux:
  • reformat x86-on-x86_64 part of Linux User Agent string (Bug 590258)
  • implement bilinear filtering of upscaled images for Linux (Bug 422179)
  • scrollboxes should use native scroll arrow (Default theme) (Bug 585935)
Mac:
  • allow to open Bookmark Manager if all windows are closed on Mac (Bug 586363)
  • allow to open Add-on Manager if all windows are closed on Mac (Bug 586360)
Compiling:
  • require version 2.5 of python (Bug 550959)
  • end-of-life Python 2.4 for build support (Bug 599743)
  • automatically set TOPSRCDIR and MOZ_OBJDIR when using pymake (Bug 592575)
  • add -s (silent) support to pymake (Bug 542582)
  • remove options from configure (e.g. --disable-view-source, --disable-jsloader and --disable-inspector-apis) (Bug 546177)
  • let build system honor --disable-printing (Bug 362455)
  • let client.mk define MOZ_OBJDIR if it is not set (Bug 589507)
  • use YASM to compile libvpx on Windows (Bug 583849)
  • error out on packaging if not using libxul (Bug 598644)
  • remove wifi scanning code on Windows for versions less than XP SP3 (Bug 600235)
General:
  • implement a Data Manager unifying cookie, permission, password, and form data management (Bug 569341)
  • add OpenSearch support (Bug 410613)
  • add "Paste and Go" to the context menu of the location bar (Bug 599833)
  • allow deselecting optional installer components (Bug 590575)
  • make Find Again work when Find As You Type isn't using the find bar (Bug 97023)
  • reuse empty tabs for loading content (Bug 589659)
  • make Alt+Home keyboard shortcut work again (Bug 587398)
  • make keywords matching case insensitive again (Bug 590081)
  • remove Reporter from SeaMonkey (Bug 590102)
  • remove compreg/xpti.dat at the right location (Bug 594571)
  • do not crash if source profile is not available during migration (Bug 601347)
  • support linking application components into libxul (Bug 597465)
  • switch to a default configuration of libxul with all comm-central libs being linked into libxul (Bug 394502)
  • use out-of-process-plugins (OOPP) framework in SeaMonkey (Bug 545716)
  • link JS staticially for libxul builds, only currently supported on non-Windows platforms (Bug 601128)
  • make notifications from sidebar documents work again (Bug 589910)
  • make clearing cache on shutdown work again (Bug 580892)
  • make drop down menus for back and forward buttons middle-/Ctrl-clickable (Bug 529240)
  • save media resources when doing 'Save As' on a page (Bug 449141)
  • display external URIs correctly while they load (Bug 586340)
  • show new prefs in about:config while a filter is applied (Bug 251431)
  • show the default cursor for disabled splitters (Default theme) (Bug 589570)
  • disable XUL for pages, unless user specifically opts in for domain (Bug 546857)
  • implement moz-device: protocol handler (Bug 507749)
  • enable basic stereoscopic rendering support for Direct3D 9 layers with 3D Vision (Bug 584255)
  • implement Strict-Transport-Security (was: ForceTLS) to allow sites to specify HTTPS-only connections (Bug 495115, Bug 590825)
  • make sure restart after closing application from fullscreen mode displays fullscreen UI (Bug 575195)
  • allow file input .click() to bring up filepicker (Bug 36619)
  • notify user when the certificate attribute check fails during application update (Bug 583408)
  • after several background update check failures, notify user that check for new version should be done manually (Bug 595455)
  • rework Windows installer for 64 bit (install into 'Program Files', write to 64 bit registry hives, etc.) (Bug 568949)
  • disable hardware acceleration in Safe Mode (Bug 591139)
  • lower threshold for large cache entry eviction: set max cache entry size to be MIN(5MB, 1/8 cache capacity) (was: 64 MB/2) (Bug 81640)
  • skip caching if Content-Length is greater than eviction size (Bug 588507)
  • raise cookies per basedomain limit to 150 (was: 50) (Bug 590611)
  • make SSL pages work when using NTLM proxy (Bug 592197)
  • make running application with "-profile /tmp/newdir" work again (Bug 581182)
  • make -1 as port number fail to load instead of causing default port to be used (Bug 537381)
  • make disabled selects with size and multiple still look disabled (Bug 594737)
  • give users a way out of inifinite modal dialog loops (Bug 61098)
  • port duplicateTabIn function (Bug 595483)
  • apply Persona/lwtheme correctly to sidebar headers (Bug 581382)
  • fix some missed issues regarding Personas and sidebar (Bug 599621)
  • make it possible to undo close tab synchronously after closing tab (Bug 528582)
  • do not insert non-breaking spaces when multiple spaces typed in pre-wrap-styled text (Bug 592592)
  • make maxlength in textarea prevent newline characters from being inserted (Bug 590554)
  • add ability to paste HTML as plain text (shortcut Cmd+Option+Shift+V on Mac) in contenteditable areas (Bug 410986)

Labels: , , , , , , , , , , , , ,

Friday, August 27, 2010

2.1 Alpha 3 Roundup

Here it is, with a small delay: The SeaMonkey 2.1 Alpha 3 Roundup.

Since the last alpha, some major changes appeared on trunk. KaiRo was especially busy, landing both Places-based bookmarks and Lightweight Themes (Personas) support for the browser, and his Data Manager integration has already gone through several reviews. As always, the SeaMonkey 2.1 features page gives a good impression of the overall progress.

Developers will surely appreciate that the JavaScript Debugger (Venkman) is usable again after the XPCOM components registration changes broke it.

For the platform changes, have a look at the Firefox Beta release notes (b2, b3, b4).

Progress:
MailNews:
  • set correct file permissions when saving or detaching an attachment (Bug 533976)
  • if SMTP server doesn't advertise auth mechanisms, try to send mail directly (Bug 534158)
  • add option to keep the folders structure when archiving (no configuration UI yet, pref example: mail.server.server1.archive_keep_folder_structure) (Bug 573392)
  • do not display return receipt notification bar for local mail after the first time the user responds to the request (Bug 558543)
  • fix pasting images into the Compose window (Bug 572637)
  • make sure clicking Get Mail for POP twice or during startup (while first round not finished) does not show alert "This folder is being processed. Please wait until processing is complete to get messages." (Bug 392680)
  • make sure setting POP/IMAP port to the default value for the security setting that is not selected does not get reset (Bug 580764)
  • make sure importing HTML mail from Outlook does not import emails as plain text (Bug 250878)
  • fix loading multipart/mixed messages from the memory/disk cache (non-offline IMAP) (Bug 565852)
  • do not fetch audio parts inline when doing IMAP mime parts on demand (Bug 584523)
  • make sure title value of HTML signature file does not show up in signature (Bug 572290)
  • make sure imported Japanese email from Outlook does not show as garbled text (Bug 547119)
  • make sure to display multipart/alternative messages with inline part and text/plain part (when name of Content-Type and/or filename of Content-Disposition: inline is specified for mail body part with text/xxx in multipart/alternative) (Bug 551698)
  • fix handling of stat errors and do not stat noselect folders when checking individual folders for new messages (Bug 581707)
  • fix saving authentication method "normal password" as a preference (Bug 580270)
Address Book:
  • make Address Book toolbars customizable (Bug 575956)
Bookmarks:
  • remove old bookmarks system code (Bug 580663)
  • add management UI for Places-based bookmarks (Bug 580662)
  • switch browser UI to Places-based bookmarks (Bug 580660)
  • initialize and migrate Places-based bookmarks (Bug 580658)
  • add new Places core for bookmarks (and history) (Bug 580656)
  • make the Modern theme work nicely with Places-based bookmarks (Bug 584752)
  • remove double separator in menu of Bookmarks button in the Personal Toolbar (Bug 586050)
Download Manager:
  • make sure executing files via the Download Manager causes Win7 compatibility mode to apply to the downloaded file and not the application (Bug 567497)
Help:
  • update Help for new Link Behavior preference panel (Bug 574609)
  • remove references to nonexistent IDs from Help (excluding those of two follow-up bugs) (Bug 582710)
DOM Inspector:
  • fix menu bar keyboard navigation issue (Bug 346725)
  • make strings in the XBL Bindings viewer easier to read (Bug 586149)
JavaScript Debugger (Venkman):
  • load script source for files loaded by mozIJSSubScriptLoader.loadSubScript (Bug 449673)
  • update for the new component registration world (Bug 576869)
  • fix Display Profile Data to actually show something (Bug 460633)
  • display array elements in sequence when an array is expanded (Bug 213494)
  • exclude add-on components when excluding chrome files (Bug 356267)
Audio/Video:
  • implement the accept attribute for audio/*, video/* (Bug 565272)
  • buffer non-autobuffer videos upon first playback to ensure smooth playback (Bug 543769)
  • send correct Accept header when requesting video and audio resources (Bug 489071)
  • fix sound output via libesd if no esound daemon is running (Bug 579877)
  • add Ogg support for HTMLMediaElement.buffered (Bug 462957)
  • add WAV support for HTMLMediaElement.buffered (Bug 462957)
  • add on* event handler property support for media events (Bug 569301)
Preferences:
  • move the Link Behaviour preferences from the tabs pane to a separate pane (Bug 570970)
  • remove redundant pref-offline UI which was commented out since 2001 (Bug 577514)
  • perform case-insensitive comparison in the Add Languages dialog (e.g. find match between "en-US", set via intl.accept_languages, and "en-us") (Bug 370387)
Add-on Manager:
Linux:
  • make dragging the menubar drag the window on GTK themes where that should work (and also fix GTK resize drags to initialize drag better) (Bug 566480)
  • add a scriptable interface to operating-system performance measurement APIs (Linux only for now) (Bug 568863)
Mac:
  • make lightweight themes / Personas work with the browser on Mac (Bug 579737)
  • fix query icon for new Places UI (Bug 586026)
  • add toggletoolbar=true to the windows that should have a Mac toolbar toggle pill (Bug 536904)
Compiling:
  • add --disable-webm besides --disable-wave and --disable-ogg to configure for non-audio environment (Bug 572635)
  • add -r/--rev option to control tag/revision to pull in client.py (Bug 556394)
  • make it even easier to build with pymake (set MOZ_OBJDIR and detect TOPSRCDIR automatically) (Bug 572529)
  • add configure option (--with-ccache) to use ccache (Bug 577636)
  • make --with-ccache more powerful (add ability to detect ccache automatically) (Bug 579704)
  • require yasm for architectures where we have code for it (Bug 582955)
  • add jemalloc support for Windows x64 build (VC 2005/2008) (Bug 572937)
  • use showIncludes for a substantial build perf win with pymake (Bug 518136)
General:
  • default to tabbed browsing (Bug 505311)
  • change Restart dialog button labels from Cancel/Restart to Restart Later/Now (Bug 561176)
  • make lightweight themes / Personas work with the browser window (Bug 563261)
  • make the tab bar look better in the default theme, including lightweight themes (Bug 579732)
  • improve the security button look in the default theme (Bug 579731)
  • default to Find toolbar instead of inline FAYT/Find dialog (Bug 97023)
  • focus FAYT/Find on correct tab so that it returns correct results (Bug 584630)
  • make sure making changes in Page Info Permissions take effect on HTTPS sites (Bug 579747)
  • draw Page Info tabs correctly (Bug 581686)
  • remove gopher references from SeaMonkey code (Bug 572389)
  • make about: link the SeaMonkey website and release notes, override Toolkit's about: (Bug 555939)
  • make tabbrowser tell Gecko which tab is active and which is not (Bug 585264)
  • load favicon images into faviconService when allowed to (Bug 585515)
  • make sure favicons are set on the right tab (Bug 585511)
Platform:
  • add error console logging for missing/incorrect command-line handlers (Bug 579497)
  • use GDI shaper by default on Windows XP and handle bitmap fonts better (Bug 561304)
  • ignore 'www.' when searching in the location bar (strip out www. from found URLs and the query after already stripping off http:// etc. (Bug 461483)
  • make sure windows are never movable in fullscreen mode (Bug 574861)
  • bump Gecko version to 2.0x (Bug 570022)
  • switch back to the default theme if the previous theme is made incompatible by an application update (Bug 565064)
  • remove xpti.dat caching which harms us in runtime and code complexity (Bug 570488)
  • make about:cache and about:cache-entry pretty (Bug 538813)
  • do not send the useless crypto token in the UA string (Bug 572668)
  • remove the UI language from the UA string and navigator.appVersion (Bug 572656)
  • remove "Windows;" from the UA string (Bug 581783)
  • a tag with target attribute and window.open('foo', 'bar') should not be treated identically by browser.link.restriction (Bug 351235)
  • change -moz-resize to resize (Bug 553576)
  • do not create temporary moz-screenshot.jpg when pasting images into rich text editors (Bug 490879)
  • do not hard code get_discard_timer_ms, use a pref (image.mem.min_discard_timeout_ms) instead (Bug 478398)
  • implement -moz-font-feature-settings and -moz-font-language-override in CSS (Bug 511339)
  • reorder size and position events in nsXULWindow so windows are positioned before they are shown (Bug 574690)
  • implement the SVG load event in text/html, make the SVG load event in XML async and only supported on svg tag (Bug 552938)
  • check X-Frame-Options header and redirect to about:blank if need be (Bug 475530)
  • split about:memory reporting into more detailed sections for SQLite (Bug 575667)
  • speed up createElement() (Bug 566466)
  • support undo uninstall for restartless and already disabled add-ons (Bug 553494)
  • implement -moz-appearance: button-arrow-up/down/next/previous (Bug 412773)
  • support TrueType kerning in the harfbuzz font shaper back-end (Bug 575695)
  • support a.text as defined in HTML5 (Bug 573258)
  • add support for signed AUS update snippet (Bug 544442)
  • implement the HTML5 hidden attribute (Bug 567663)
  • add experimental MozTouch events (Bug 508906)
  • do not trigger multiple Master Password prompts when filling form logins in multiple tab (Bug 499233)
  • make InstallTrigger support cross-process communication (asynchronous with an optional callback) (Bug 550936)
  • enable TLS false start by default and add a pref (security.ssl.enable_false_start) to disable it (Bug 583908)
  • prevent a body-less window (title bar only) from appearing at the upper left corner of the screen (Bug 579421)
  • prevent toolbar elements from losing the command attribute when removing and reinserting them (Bug 540838)
  • enable WebGL shader validation and remove obsolete texture API (Bug 584815)
  • add ANGLE/D3D WebGL support (Bug 583838)
  • add pref (accessibility.mouse_focuses_formcontrol) to allow form elements to be focused when clicked (Bug 577316)
  • make pc, in, mm and cm be a fixed number of CSS pixels (Bug 537890)

Labels: , , , , , , , , , , , , , ,