The roads I take...
KaiRo's weBlog
| Zeige Beiträge veröffentlicht im Dezember 2008 und mit "SeaMonkey 2" gekennzeichnet an. Zurück zu allen aktuellen Beiträgen |
22. Dezember 2008
Firefox Extension Work For SeaMonkey-specific Code?
It sounds strange, but today I worked on a Firefox (or actually Minefield) extension because I wanted to write SeaMonkey-specific code!
As SeaMonkey 2 will be switching to the toolkit download manager backend but wants to keep its own, much different, UI for the download manager, there needs to be quite some work done. Justin Wood ("Callek") has been doing a large part of that, making SeaMonkey able to build with the toolkit download manager, and trying to get the option for having progress dialogs instead of the manager window working with that new backend.
One thing Callek left out for now is getting a tree-based download manager UI for the new backend though, as he (just like me) doesn't have too much experience with custom tree views. After working on places history, I got a first piece of insight into that area though, and so I figured I could at least try how far I could get with such a download manager window.
The problem I had though is that SeaMonkey still has the xpfe backend, and my code needs to work with the new toolkit one. After thinking about this for a while, I realized that it should be possible to just write some code to replace the Firefox download manager with what we want and move it "back" to SeaMonkey once we have the patches for the new backend.
This is what I could get in a few hours of work:
Using nsIDownloadManagerUI, this completely replaces the toolkit download manager even though it's an in-profile extension. Note that it shows grippies as I just symlinked comm.jar etc. from SeaMonkey into my extension and made it define the "communicator" chrome package - I'm not targeting Firefox but SeaMonkey in the end.
The screen shot probably also looks better than reality, the current state doesn't show all info correctly yet or update active downloads, or even do fancy stuff like sorting, searching or managing the downloads yet.
What it does is loads a basic list of downloads at the time the dialog is opened, and show some raw info about it in the cells, without nice formatting.
It's a somewhat interesting way to work on (to-be) SeaMonkey-specific code as a Firefox extension, but I hope it'll help to achieve getting the UI and backend we want in a similar timeframe for SeaMonkey 2.
As SeaMonkey 2 will be switching to the toolkit download manager backend but wants to keep its own, much different, UI for the download manager, there needs to be quite some work done. Justin Wood ("Callek") has been doing a large part of that, making SeaMonkey able to build with the toolkit download manager, and trying to get the option for having progress dialogs instead of the manager window working with that new backend.
One thing Callek left out for now is getting a tree-based download manager UI for the new backend though, as he (just like me) doesn't have too much experience with custom tree views. After working on places history, I got a first piece of insight into that area though, and so I figured I could at least try how far I could get with such a download manager window.
The problem I had though is that SeaMonkey still has the xpfe backend, and my code needs to work with the new toolkit one. After thinking about this for a while, I realized that it should be possible to just write some code to replace the Firefox download manager with what we want and move it "back" to SeaMonkey once we have the patches for the new backend.
This is what I could get in a few hours of work:
Using nsIDownloadManagerUI, this completely replaces the toolkit download manager even though it's an in-profile extension. Note that it shows grippies as I just symlinked comm.jar etc. from SeaMonkey into my extension and made it define the "communicator" chrome package - I'm not targeting Firefox but SeaMonkey in the end.
The screen shot probably also looks better than reality, the current state doesn't show all info correctly yet or update active downloads, or even do fancy stuff like sorting, searching or managing the downloads yet.
What it does is loads a basic list of downloads at the time the dialog is opened, and show some raw info about it in the cells, without nice formatting.
It's a somewhat interesting way to work on (to-be) SeaMonkey-specific code as a Firefox extension, but I hope it'll help to achieve getting the UI and backend we want in a similar timeframe for SeaMonkey 2.
Von KaiRo, um 02:54 | Tags: download manager, Firefox, Mozilla, SeaMonkey, SeaMonkey 2 | 4 Kommentare | TrackBack: 2
11. Dezember 2008
SeaMonkey 2.0 Alpha 2 released!
The second alpha release for the upcoming SeaMonkey 2 just hit the virtual shelves!
SeaMonkey 2.0 Alpha 2 is our first release shipping an RSS/Atom feed reader as well as feed detection in the browser (welcome to the 21st century!) as well as the new per-toolbar icon/text mode controls, TraceMonkey turned on by default, the reworked FAYT, the geolocation notification bar (no geolocation provider though), lots of other smaller fixes, and of course, everything that's new in the backend we share with Firefox 3.1 Beta 2 and Thunderbird 3.0 Beta 1.
With a small echo effect to the post about the latter by fellow project manager David Ascher, I'm inclined to say that in some ways, this is a typical alpha: There's a ton of new patches in this release, large code and functionality changes, and surely a handful of rough edges that need some ironing out until we arrive at beta or even final phases of this release cycle.
Continuing that slight echo, however, in some other ways, it's far from a typical alpha: We have lots of reports from people who consider our current alpha builds more stable and usable than the stable SeaMonkey 1.1 series, esp. on Windows Vista, where the current 1.9.1-based code understands much better how to talk to the OS. The core is stable enough that the Firefox team released their second beta based on almost the same Mozilla platform code, and Thunderbird released a lot of the code we share in their first beta. We're a bit more conservative in naming, as we still have a significant list of larger changes we want to get into SeaMonkey 2, including places-based history, really customizable toolbars, session restore, new download and password manager implementations based on the new Mozilla platform toolkit instead of the old Mozilla suite implementations, just to name the major ones. Due to this list, the next release will be another alpha, but we might only do a single beta after that one, before finalizing SeaMonkey 2.
This is an untypical alpha for other reasons as well: Contrary to what other Mozilla projects usually do, we're shipping automated updates to users of Alpha 1, if only complete updates, as this is the first time we can test that mechanism in SeaMonkey at all. Additionally, we're releasing "experimental" language packs in 11 languages to get wider-spread testing of the localizations provided by our contributors before we will be able to ship localized binary builds as well in the future.
Even though this is a mere testing preview of what's to come, SeaMonkey 2.0 Alpha 2 is surely worth a try and a strong signal of how much alive the SeaMonkey project is!
SeaMonkey 2.0 Alpha 2 is our first release shipping an RSS/Atom feed reader as well as feed detection in the browser (welcome to the 21st century!) as well as the new per-toolbar icon/text mode controls, TraceMonkey turned on by default, the reworked FAYT, the geolocation notification bar (no geolocation provider though), lots of other smaller fixes, and of course, everything that's new in the backend we share with Firefox 3.1 Beta 2 and Thunderbird 3.0 Beta 1.
With a small echo effect to the post about the latter by fellow project manager David Ascher, I'm inclined to say that in some ways, this is a typical alpha: There's a ton of new patches in this release, large code and functionality changes, and surely a handful of rough edges that need some ironing out until we arrive at beta or even final phases of this release cycle.
Continuing that slight echo, however, in some other ways, it's far from a typical alpha: We have lots of reports from people who consider our current alpha builds more stable and usable than the stable SeaMonkey 1.1 series, esp. on Windows Vista, where the current 1.9.1-based code understands much better how to talk to the OS. The core is stable enough that the Firefox team released their second beta based on almost the same Mozilla platform code, and Thunderbird released a lot of the code we share in their first beta. We're a bit more conservative in naming, as we still have a significant list of larger changes we want to get into SeaMonkey 2, including places-based history, really customizable toolbars, session restore, new download and password manager implementations based on the new Mozilla platform toolkit instead of the old Mozilla suite implementations, just to name the major ones. Due to this list, the next release will be another alpha, but we might only do a single beta after that one, before finalizing SeaMonkey 2.
This is an untypical alpha for other reasons as well: Contrary to what other Mozilla projects usually do, we're shipping automated updates to users of Alpha 1, if only complete updates, as this is the first time we can test that mechanism in SeaMonkey at all. Additionally, we're releasing "experimental" language packs in 11 languages to get wider-spread testing of the localizations provided by our contributors before we will be able to ship localized binary builds as well in the future.
Even though this is a mere testing preview of what's to come, SeaMonkey 2.0 Alpha 2 is surely worth a try and a strong signal of how much alive the SeaMonkey project is!
Von KaiRo, um 00:07 | Tags: Mozilla, release, SeaMonkey, SeaMonkey 2 | 5 Kommentare | TrackBack: 1
7. Dezember 2008
Places History Landed on SeaMonkey Trunk!
As I mentioned before, I've been working on places history UI for some time now to finish up the switch of SeaMonkey trunk to places on the history side of things. (No, we're not changing anything related to bookmarks at this stage!)
After a few iterations of the patch, we've now arrived at a stage where we decided to land it in trunk - the point of time after alpha 2 and early in the alpha 3 cycle is carefully decided, as we know it's a large change and the current state is not perfect yet. It also needs a good amount of testing and feedback before before releasing it on a wider audience, esp. since it touches a core feature of the browser.
So, what does that mean for a user of SeaMonkey nightlies or self-compiled trunk builds? Here are the main differences between the old and new history implementations:
New features:
Some of those missing features will be implemented with patches following up on the big landing done right now - we hope to get things like grouping in the history window even before alpha 3. We also will be adding a few UI preferences based on this work, esp. for tweaking how the location bar search algorithm works - the new code gives us some possibilities there but we didn't stuff this into the current patch to not make it even larger than it is now.
If you're not too fond of what you heard about the location bar search algorithm (which is basically the same as used by Firefox 3), please give it a try for at least a week of daily browsing, it learns from what entries in the search results you actually choose to load, and you won't see its full extent unless you give it this possibility to learn how important which sites are to you.
I hope that in the end, the increased amount of history stored and the improved search capabilities will enhance our users' browsing experience as much as it will delight anyone who has had the misfortune to read the source of the mork history.
After a few iterations of the patch, we've now arrived at a stage where we decided to land it in trunk - the point of time after alpha 2 and early in the alpha 3 cycle is carefully decided, as we know it's a large change and the current state is not perfect yet. It also needs a good amount of testing and feedback before before releasing it on a wider audience, esp. since it touches a core feature of the browser.
So, what does that mean for a user of SeaMonkey nightlies or self-compiled trunk builds? Here are the main differences between the old and new history implementations:
New features:
- More intelligent algorithm to search and list items in the location bar dropdown, including search in titles and in the middle of URL/title strings
- Not keeping all history loaded in memory (less memory needed)
- Information stored in a SQLite relational database on disk instead of the clumsy mork database format used previously
- Storing more history (180 days instead of 9 days by default) without performance decrease or memory increase
- Can sort the history manager on columns not displayed
- Can search sidebar and manager inline with a search bar
- Can change the grouping in the sidebar
- Hovering the history sidebar updates the status bar
- No bookmarks included in location bar searches
- No combined history and bookmarks window
- Bookmarks storage and management is completely unchanged
- Location bar dropdown stays in the same layout as before, with one item per line
- Can't group the history manager
- History sidebar only shows the title (you can't pick or sort columns)
- Open Link in New Window/Bookmark only appears when one link is selected
- Can't delete all history from a site or domain
- No First Visited, Hostname (minor) or Referrer columns
- No Select All context menuitem (minor)
- History manager hover doesn't update the status bar
Some of those missing features will be implemented with patches following up on the big landing done right now - we hope to get things like grouping in the history window even before alpha 3. We also will be adding a few UI preferences based on this work, esp. for tweaking how the location bar search algorithm works - the new code gives us some possibilities there but we didn't stuff this into the current patch to not make it even larger than it is now.
If you're not too fond of what you heard about the location bar search algorithm (which is basically the same as used by Firefox 3), please give it a try for at least a week of daily browsing, it learns from what entries in the search results you actually choose to load, and you won't see its full extent unless you give it this possibility to learn how important which sites are to you.
I hope that in the end, the increased amount of history stored and the improved search capabilities will enhance our users' browsing experience as much as it will delight anyone who has had the misfortune to read the source of the mork history.
Von KaiRo, um 14:21 | Tags: Mozilla, places, SeaMonkey, SeaMonkey 2 | 6 Kommentare | TrackBack: 1
3. Dezember 2008
SeaMonkey 2.0a2 candidate build1 - please help testing!
We have built a first candidate build for the SeaMonkey 2.0a2 release, which is available at http://ftp.mozilla.org/pub/mozilla.org/seamonkey/nightly/2.0a2-candidates/build1/ as of now.
Please help us testing that build by downloading a package for your platform and running smoketests on it.
Once we have completed smoketests on all three platforms without any major problems, we will be able to make this Alpha public (I hope this will be some time next week).
We might need some testing for automatic updates once we're nearing or doing the release, I haven't figured out all the partial update magic and how to do testing etc. yet, though.
Thanks for your help!
Please help us testing that build by downloading a package for your platform and running smoketests on it.
Once we have completed smoketests on all three platforms without any major problems, we will be able to make this Alpha public (I hope this will be some time next week).
We might need some testing for automatic updates once we're nearing or doing the release, I haven't figured out all the partial update magic and how to do testing etc. yet, though.
Thanks for your help!
Von KaiRo, um 20:18 | Tags: Mozilla, SeaMonkey, SeaMonkey 2 | 1 Kommentar | TrackBack: 0