Showing posts with label experimental. Show all posts
Showing posts with label experimental. Show all posts

10 August 2010

HELP WANTED testing experimental bug fix

As described in the previous blog post, some users have reported that the Clippings Manager window would not appear when invoking it, either through the web page textbox context menu or by double-clicking the Clippings icon on the status bar. This was caused by the Clippings Manager window being positioned outside the viewable screen area.

This problem seems sporadic, as I have not been able to reproduce it. I have entered this as bug 23103.

I have uploaded a test build of Clippings which contains an experimental fix for this bug. You can download and install it by clicking here.

If you are affected by the problem described above, please install this build and let me know by replying to this Clippings forum post if the Clippings Manager display problem is resolved.

06 December 2008

Using Google Apps and Yahoo! Mail in Send Tab URLs 2.0

Send Tab URLs 2.0 comes with experimental support for Yahoo! Mail Classic (not the so-called "all-new" Yahoo! Mail) and Google Apps Gmail (hereafter referred to as Google Apps, and not to be confused with regular Gmail, which already works out of the box). Support for those two web mail apps is disabled by default, but can be enabled if you wish to try it.

Why?

Send Tab URLs has not been tested with Google Apps, as I have not been able to gain access to any Google Apps installations to use for testing. If Send Tab URLs can't be tested with Google Apps, then there is no assurance that it will work with it.

As for Yahoo! Mail, the problem of not being able to use a quick compose URL in the so-called "all-new" Yahoo! Mail precludes support for that web mail app. And the setup required to make Send Tab URLs work with classic Yahoo! Mail would be too difficult for "normal" computer users to bother with.

Nonetheless, testers and advanced users are welcome to try using Send Tab URLs with these two unsupported web mail applications. If that is you, then do so at your own risk.

To Enable Support for Yahoo! Mail (Classic)
  1. Start Firefox. Then in about:config, set the pref sendtabs.mailclient.yahoomail.enabled to true.
  2. Open a new browser window or tab and login to your Yahoo! Mail account.
  3. Once you are viewing your Yahoo! Mail inbox, observe the URL in the Firefox address bar. Select and copy the URL up to, and including, the last slash character (/) in the URL. Be sure to include the "http://" prefix.
  4. Return to about:config and edit the pref sendtabs.mailclient.yahoomail.mail_url, changing its value to what you selected and copied in step 3.
After following these steps, you should be able to use Send Tab URLs with Yahoo! Mail Classic.

To Enable Support for Google Apps
  1. Start Firefox. Then in about:config, set the pref sendtabs.mailclient.googleapps.enabled to true.
  2. The first time you send the URL list to Google Apps, you will be prompted for the Google Apps domain. Consult your system administrator if you do not know this information. You can change it later from the extension preferences dialog (from a Firefox browser window, choose Tools -> Add-ons, select Send Tab URLs and click Options -> Google Apps tab).
Things You Should Know About

The URL list generated by Send Tab URLs won't display properly when the Yahoo! Mail editor is in rich text mode. However, you can switch from plain text to rich text in Yahoo! Mail's editor to compose and send the URL list as an HTML email.

05 November 2008

Delicious Post

A while ago, I came across del.icio.us post, a simple Firefox extension that lets you post a link or the current page to del.icio.us Delicious. It has just the basics you need to quickly create a del.icio.us   Delicious bookmark to the current page, and while it lacked some features from the official Post to Delicious bookmarklet, it was still quite useful.

The author doesn't appear to be maintaining it anymore; but since the code is licensed under a Creative Commons license which permits modification of the work, I decided to start my own fork of this extension -- which, as it turns out, two others already exist (Post to del.icio.us and Jaggnito).

My version is named "Delicious Post" -- not only to distinguish it from the original extension, but to (grudgingly) reflect the new name given to this popular social bookmarking service.

» Download: Delicious Post 0.7.3 (10.5 KB; English (United States); compatible with Firefox 3.0-3.0.*)

This release introduces compatibility with Firefox 3, and includes some behind-the-scenes code fixes to give it a stable foundation for future planned enhancements. There are no new features in this release. Full details of changes can be found in the changelog.

Why?

Because eventually, I want to add a few additional features that are missing in the original del.icio.us post -- such as allowing private bookmarks, tag name autocompletion, and automatically using the selected text in the web page as the bookmark notes. But most importantly, I want to be able to use it on Firefox 3.

But I like del.icio.us post the way it was!

I suppose that you, and many others, do. That is why the additional features I have planned will be configurable so that they can be disabled if you prefer the primitive UI.

Will Delicious Post be compatible with Firefox 2?

No. The Mozilla Corp. plans on ending support for Firefox 2 in December 2008 (that is next month), and there is no point in making it compatible with a version of Firefox that will be officially retired in a month. I also want to make use of some APIs and developer features that is only available in Firefox 3 and above.

If you are still using Firefox 2, you should install the original del.icio.us post extension.

I found a bug. How do I report it?

Send bug reports to the AE Creations mailing list; please mention Delicious Post in the subject line. If you have a Bugzilla account on Mozdev, you can file a bug here.

02 October 2008

Using Yahoo! Mail in Send Tab URLs 2.0 beta

In the previous post, I alluded to experimental support for Yahoo! Mail in Send Tab URLs 2.0 beta. For those of you who are familiar with the Email This! Firefox extension, the instructions for enabling support for Yahoo! Mail are very similar.

Please note that Send Tab URLs will work with Yahoo! Mail classic, not the "all-new" Yahoo! Mail.

To Enable Support for Yahoo! Mail (Classic)
  1. Start Firefox. Then in about:config, set the pref sendtabs.mailclient.yahoomail.enabled to true.
  2. Open a new browser window or tab and login to your Yahoo! Mail account.
  3. Once you are viewing your Yahoo! Mail inbox, observe the URL in the Firefox address bar. Select and copy the URL up to, and including, the last slash character (/) in the URL, and omitting the "http://" prefix.
  4. Return to about:config and edit the pref sendtabs.mailclient.yahoomail.mail_url, changing its value to what you selected and copied in step 3.
After following these steps, you should now be able to send the browser tab URLs to Yahoo! Mail.

Things You Should Know About
  • As stated above, this will only work with Yahoo! Mail classic, not the "all-new" Yahoo! Mail.
  • The URL list generated by Send Tab URLs won't display properly when the Yahoo! Mail editor is in rich text mode. However, you can switch from plain text to rich text in Yahoo! Mail's editor to compose and send the URL list as an HTML email. (Remember to switch back to plain text mode afterwards.)
These two points are the reasons why support for Yahoo! Mail is considered experimental.

Acknowledgment

Web mail support in Send Tab URLs is adapted from Email This!, a Firefox extension by Lazyrussian Productions.


27 December 2007

The twin floating toolbar predicament

Hope everyone had a great Christmas! With the holidays winding down, and me not being in much of a mood to participate in the Boxing Day consumerism frenzy, it's time to dive back into Clippings.

Earlier, I wrote about the problem where it's impossible to determine which host application the floating toolbar palette is originating from, if both Firefox and Thunderbird are running and the toolbar was invoked from both host apps.

The ideal solution is to make the floating toolbar disappear whenever the host application window loses focus, and make it reappear, if it was hidden, when the user restores focus to the host app window. This behaviour is the same as that found in Microsoft Word. Another idea is to put an icon in the floating toolbar's title bar to indicate which host app the toolbar was invoked from. But trademark concerns would prevent me from using the official Firefox or Thunderbird logos in Clippings, and any kind of substitute would be unrecognizable by most users. Plus, the latter idea didn't address the issue of two floating toolbar windows appearing simultaneously if the toolbar was invoked from both host apps -- and that just looks silly, as the following screen shot illustrates:

The rather silly result of invoking the Clippings floating toolbar from both Firefox and Thunderbird.

The first solution was clearly the ideal, and one I tried to get it to work. The key to it is to be able to determine when the host app window loses or gains its focus so that the floating toolbar can be hidden. Unfortunately, there is no way to determine if the host app window has lost focus. The activeWindow property of the nsIWindowWatcher interface always refers to an open window -- even if that window doesn't have focus! Another approach was to hide the toolbar if the blur event on the XUL window is fired, and show the toolbar (if it was hidden) when the focus event is fired. While it is possible to handle a focus event, that isn't the case with the blur event; I tried putting an onblur event handler on the XUL window element, as well as using addEventListener() to register a blur event handler, but to no avail. A seemingly promising newsgroup discussion that I found only lead me to a dead end.

Rather than hiding the toolbar when the host app window loses focus and restoring it when the host app window regains focus, why not hide it when the user moves the mouse out of the host app window, and show it again when the mouse moves into the host app window? Seemed like a great idea... except that the mouseout and mouseover events are fired not just on the window, but on any element contained in it that can trigger mouseout and mouseover events. And when I say this, I don't just mean the XUL elements that define the host app window UI -- but the HTML elements in the Web page displayed in Firefox's browser content area, or the content area of Thunderbird's message compose window! There was no pattern that I could find to help me filter out unwanted event invocations, and at this point I knew that this wasn't going to work, either.

Sadly, the Clippings toolbar isn't ready for prime time, and having worked on this for some time with no results that's really usable, I decided that it's time to move on. The toolbar is still there, but it is now disabled by default. The boolean preference "clippings.toolbar.enabled" needs to be created and set to true in about:config to make the Clippings Toolbar command visible in the Clippings status bar icon menu in the host app.

Users itching to try it out now can do so by downloading and installing the latest experimental snapshot release from http://downloads.mozdev.org/clippings/experimental/. Look for the XPI file named clippings-2.99.3+_20071227.xpi.

15 December 2007

Creating the Clippings Toolbar

Finally I've got the Clippings toolbar to work reasonably well. It can be invoked by right-clicking on the Clippings icon on the host application's status bar and choosing the Clippings Toolbar command. It is a floating palette toolbar (or "windoid" as the Mac folks say), so it appears above all windows.


You can try it out now by going to http://downloads.mozdev.org/clippings/experimental/ and downloading and installing the XPI file named clippings-2.99.3+_20071215.xpi (there is another XPI file in the same directory with the word "toolbar" at the end of its file name; it is an older, buggy build, so ignore it). Note that it hasn't yet been tested on Firefox or Thunderbird 1.5 series, and thus it isn't guaranteed to work on those versions.

A few challenges had to be overcome in order to implement the Clippings toolbar:
  1. The features string in the window.open() call which invokes the floating toolbar window includes the unknown string "popup" - this makes the window appear as a popup window which UI elements like menus and tooltips render as. However, this results in a chromeless window, lacking the title bar and borders. I had to style my own window border and title bar, resulting in a floating toolbar window that, as you can see from the above screen shot, won't necessarily match the appearance of floating toolbar windows in the user's desktop environment.

    The toolbar was invoked in this fashion to satisfy the criteria of a floating toolbar palette -- specifically, that it floats above all windows and that a taskbar button (in Windows) should not appear for the floating toolbar. Invoking the floating toolbar as a modeless dialog would satisfy the criteria, but on the Mac it may be rendered as a dialog sheet.

  2. The toolbar needs a reference to the most recent host application window so that it will perform its operations (insert clipping, new from selection) in the context of that window. This was made possible through the very useful XPCOM interface nsIWindowMediator.

  3. Moving the floating toolbar window by dragging its title bar was painful to implement. After over a week of trying to get it to work I gave up and searched online for drag-and-drop DHTML code, hoping that I could somehow adapt it to work with dragging an XUL window to move it. In the end, I figured it out on my own.

    In a nutshell, the drag start and stop can be initiated from the onmousedown and onmouseup events, respectively, on the toolbar palette's title bar (actually an XUL <vbox> element) -- but the actual move event handling needs to be invoked from the onmousemove event from the XUL <window> element. Handling the mouse move from the title bar (the <vbox> element) works only as long as the mouse stays within that element during the move operation; if the mouse is moved at a great distance on the screen, the mouse cursor jumps out of the title bar rather than moving the floating toolbar window. I still haven't figured out exactly why, although I suspect it has something to do with the DOM event flow as explained in the W3C's DOM 3 Events specification.
There's another problem: if the Clippings toolbar is invoked from both host applications (Firefox and Thunderbird), and both are open at the same time, two Clippings toolbars appear on the screen, and it's nearly impossible to distinguish which of the two is from which host app. More about this in another post.

16 December 2006

Clippings 2.5.0+ for Thunderbird 2.0 beta 1

Now that Thunderbird 2.0 beta 1 is released, I've uploaded an experimental build of Clippings with the install manifest's maxVersion value for Thunderbird incremented to 2.0b1.

This build is being made available for testing purposes only. It is recommended that only testers, early adopters and advanced users (the same type of users who would be using a Thunderbird beta release) should download and install this experimental build of Clippings.

Download: clippings-2.5.0+.tb2-b1.xpi (102 KB; compatible with Firefox 1.5-2.0.0.* and Thunderbird 1.5-2.0b1)

Because this is a pre-release build, it will not be automatically updated in Thunderbird or Firefox. If you already have Clippings installed, you must uninstall it first, then download and install Clippings 2.5.0+.

The changes from the last stable release (Clippings 2.5) are minimal:
  • Support for Thunderbird 2.0 beta 1
  • Prevent potential JS variable redefinition errors (bug 16029).
Please test carefully and report any regressions. If you have a Bugzilla account on Mozdev, you may file a bug report at http://clippings.mozdev.org/bugs.html. General feedback should be posted in the Clippings mailing list.

31 July 2006

Clippings 2.0 for Firefox 2.0b1

After getting a few requests from users to make Clippings work with the recent Firefox 2.0 beta 1 release, I have uploaded an experimental build of Clippings 2.0 with the maxVersion value in the install manifest incremented.

The XPI is available from here: http://downloads.mozdev.org/clippings/experimental/fx2-b1/

A few issues have been identified with Firefox 2.0b1 compatibility; please see the readme file. I have also opened bug 24715.

A minor release of Clippings to coincide with Firefox 2 is in the works. In the meantime, it is recommended that only testers, early adopters and advanced users (the same type of users who would be using a Firefox beta release) should download and install this experimental build of Clippings into Firefox 2.0b1.