<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Mark Finkle's Weblog</title>
	
	<link>http://starkravingfinkle.org/blog</link>
	<description />
	<lastBuildDate>Wed, 28 Jul 2010 14:19:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/weborama" /><feedburner:info uri="weborama" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><item>
		<title>The Future of JavaXPCOM</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/wjmwvnx7WRw/</link>
		<comments>http://starkravingfinkle.org/blog/2010/07/the-future-of-javaxpcom/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 14:19:34 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[XPCOM]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=807</guid>
		<description><![CDATA[This is a public service announcement for those people interested in the future of JavaXPCOM. JavaXPCOM has been disabled and will likely to removed from the Mozilla source tree in the future. See Benjamin Smedberg&#8217;s newsgroup post for more details.
Please follow up (add comments) to the newsgroup post.
]]></description>
			<content:encoded><![CDATA[<p>This is a public service announcement for those people interested in the future of <a href="https://developer.mozilla.org/en/javaxpcom">JavaXPCOM</a>. JavaXPCOM has been disabled and will likely to removed from the Mozilla source tree in the future. See Benjamin Smedberg&#8217;s <a href="http://groups.google.com/group/mozilla.dev.extensions/browse_thread/thread/e142c1f4a702b856/054790d894ab05ca?show_docid=054790d894ab05ca">newsgroup post</a> for more details.</p>
<p>Please follow up (add comments) to the newsgroup post.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/wjmwvnx7WRw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/07/the-future-of-javaxpcom/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/07/the-future-of-javaxpcom/</feedburner:origLink></item>
		<item>
		<title>Fennec 2.0 – Now with Firefox Sync Builtin</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/XMGYFiWtAQw/</link>
		<comments>http://starkravingfinkle.org/blog/2010/07/fennec-2-0-now-with-firefox-sync-builtin/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 16:17:41 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=801</guid>
		<description><![CDATA[The Mozilla Labs team has been working very hard to move the core part of Firefox Sync (nee Weave Sync) into the main Mozilla source repository. They finished a few days ago. Now any Mozilla application can start to use the core features of Firefox Sync without requiring the user to install an add-on. The [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://mozillalabs.com/">Mozilla Labs</a> team has been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=571902">working very hard</a> to move the core part of <a href="http://mozillalabs.com/sync/">Firefox Sync</a> (nee Weave Sync) into the main Mozilla source repository. They finished a few days ago. Now any Mozilla application can start to use the core features of Firefox Sync without requiring the user to install an add-on. The system is built right into the application.</p>
<p>The Mobile team<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=571898"> integrated the basic user interface</a> for Firefox Sync directly into Fennec. Now you can synchronize your tabs, history, bookmarks, form data and passwords  &#8211; desktop to mobile device and back again &#8211; without installing an add-on!</p>
<p>If you&#8217;re using a nightly Fennec 2.0a1pre build, take a look in the preferences area for the Sync settings. We&#8217;re not finished yet. <a href="https://wiki.mozilla.org/Mobile/Planning/2.0#Projects">Plans for Fennec 2.0</a> include re-organizing the UI for accessing remote-synced tabs.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/XMGYFiWtAQw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/07/fennec-2-0-now-with-firefox-sync-builtin/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/07/fennec-2-0-now-with-firefox-sync-builtin/</feedburner:origLink></item>
		<item>
		<title>Fennec 2.0: What’s Coming</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/xSyPfWOF0JE/</link>
		<comments>http://starkravingfinkle.org/blog/2010/06/fennec-2-0-whats-coming/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 04:22:36 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=787</guid>
		<description><![CDATA[We haven&#8217;t even released the final Firefox for Maemo 1.1 yet, but we have been very busy working on features and changes for the next major release. Check out the Fennec 2.0 project planning page.
The biggest changes are related to out-of-process web content (Project Electrolysis) and accelerated rendering (Project Layers). Significant amounts of platform work [...]]]></description>
			<content:encoded><![CDATA[<p>We haven&#8217;t even released the final <a href="http://starkravingfinkle.org/blog/2010/06/firefox-for-maemo-1-1-rc-1/">Firefox for Maemo 1.1</a> yet, but we have been very busy working on features and changes for the next major release. Check out the Fennec 2.0 project <a href="https://wiki.mozilla.org/Mobile/Planning/2.0">planning page</a>.</p>
<p>The biggest changes are related to out-of-process web content (Project <a href="https://wiki.mozilla.org/Electrolysis">Electrolysis</a>) and accelerated rendering (Project <a href="https://wiki.mozilla.org/Gecko:Layers">Layers</a>). Significant amounts of platform work have been done on both projects. Fennec 2.0 will integrate both Electrolysis and Layers.</p>
<p>Electrolysis will be the first of the two making an appearance in Fennec. Benjamin Smedberg&#8217;s <a href="http://benjamin.smedbergs.us/blog/2009-06-16/electrolysis-making-mozilla-faster-and-more-stable-using-multiple-processes/">kickoff post</a> for Electrolysis summarizes the project goals:</p>
<blockquote>
<ul>
<li><em>Increased stability</em>: if a plugin or webpage tries to use all the processor, memory, or even crashes, a process can isolate that bad behavior from the rest of the browser.</li>
<li><em>Performance</em>: By splitting work up among multiple processes, the browser can make use of multiple processor cores available on modern desktop computers and the next generation of mobile processors. The user interface can also be more responsive because it doesn’t need to block on long-running web page activities.</li>
<li><em>Security</em>: If the operating system can run a process with lower privileges, the browser can isolate web pages from the rest of the computer, making it harder for attackers to infect a computer.</li>
</ul>
</blockquote>
<p>In fact, Electrolysis has already been used in <a href="http://blog.mozilla.com/blog/2010/06/22/firefox-3-6-4-with-crash-protection-now-available/">Firefox 3.6.4</a> to protect against plugin crashes. Fennec will extend this beyond plugins to the entire web content. All web content will execute in a separate process from the main application. This does create some interesting code changes for both the application and add-ons.</p>
<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/06/Multi-process.png" alt="" title="Multi-process" width="472" height="241" class="alignnone size-full wp-image-799" /></p>
<p>We started a <a href="https://wiki.mozilla.org/Mobile/Fennec/Extensions/Electrolysis">transition document</a> and I&#8217;ll cover more details on those changes soon. Look for multi-process web content to appear in Fennec 2.0 Alpha 1 &#8211; coming soon.</p>
<p>Work to integrate Layers into Fennec will start shortly after the release of Alpha 1. In addition to the potential of hardware accelerated rendering on mobile devices, Layers also allows Fennec to remove the custom built canvas-tile-cache rendering solution used to achieve decent panning performance and responsiveness. Layers supports a &#8220;retained mode&#8221; rendering system, which means the application can drop the canvas-tile-cache system and use traditional XUL <code>&lt;browser&gt;</code> elements for the browsing surface.</p>
<p>There is a lot of work to do, but progress is happening at a surprisingly fast pace. <a href="http://starkravingfinkle.org/blog/2010/06/firefox-for-maemo-1-1-rc-1/">Fennec 1.1</a> adds a lot of solid UX features and although we&#8217;ll continue to improve the UX for Fennec 2.0, the primary reasons for many of the platform changes are: <strong>Speed</strong>, <strong>Responsiveness</strong> and <strong>Stability</strong>!</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/xSyPfWOF0JE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/06/fennec-2-0-whats-coming/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/06/fennec-2-0-whats-coming/</feedburner:origLink></item>
		<item>
		<title>Firefox for Maemo 1.1 RC 1</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/G8DEhu0JADI/</link>
		<comments>http://starkravingfinkle.org/blog/2010/06/firefox-for-maemo-1-1-rc-1/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 22:27:52 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=777</guid>
		<description><![CDATA[
Firefox for Maemo 1.1 RC 1 is ready to install. For this release, the focus was some UI features we didn’t have time to put in the initial release. We also used your feedback from previous releases and nightly builds to help improve the browsing experience.
Some of the bigger features include:

Form assistant improvements, including autocomplete
Start [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/06/firefox_11rc1_quartersize.png" alt="" title="firefox for maemo 1.1 rc1" width="457" height="148" class="alignnone size-full wp-image-778" /></p>
<p><a href="https://www.mozilla.com/en-US/mobile/1.1rc1/releasenotes/">Firefox for Maemo 1.1 RC 1</a> is ready to <a href="http://www.mozilla.com/en-US/m/beta">install</a>. For this release, the focus was some UI features we didn’t have time to put in the initial release. We also used your feedback from previous releases and nightly builds to help improve the browsing experience.</p>
<p>Some of the bigger features include:</p>
<ul>
<li>Form assistant improvements, including <a href="http://madhava.com/egotism/archive/005048.html">autocomplete</a></li>
<li><a href="http://madhava.com/egotism/archive/005044.html">Start Page</a> redesign</li>
<li><a href="http://starkravingfinkle.org/blog/2010/05/updating-add-ons-in-firefox-mobile-1-1/">Auto update</a> add-ons</li>
<li>New <a href="http://starkravingfinkle.org/blog/2010/05/smart-tapping-in-mobile-firefox/">smart-tapping system</a> for better tapping links, fields and buttons</li>
<li><a href="http://madhava.com/egotism/archive/005049.html">Portrait support</a> on N900</li>
<li><a href="http://starkravingfinkle.org/blog/2010/04/fennec-1-1-context-menus/">Context Menu</a> with Open Link in New Tab and Save Image</li>
<li>Web content theme update</li>
<li>Improved <a href="http://madhava.com/egotism/archive/005043.html">Site Menu</a></li>
<li>Use <a href="http://madhava.com/egotism/archive/005047.html">volume keys to zoom</a> on N900</li>
<li><a href="http://madhava.com/egotism/archive/005045.html">Save page to PDF</a></li>
<li>Built in <a href="http://starkravingfinkle.org/blog/2010/05/crash-reporting-comes-to-firefox-mobile/">Crash Reporter</a></li>
</ul>
<p>As always, we’ve provided unbranded Fennec desktop builds on <a href="http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/1.1rc1/win32-i686/fennec-1.1.en-US.win32.zip">Windows</a>, <a href="http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/1.1rc1/macosx-i686/fennec-1.1.en-US.mac.dmg">Mac</a>, and <a href="http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/1.1rc1/linux-i686/fennec-1.1.en-US.linux-i686.tar.bz2">Linux</a>.  You can use these if you don’t have a Maemo device or to aid in add-on development. This is the final call for Add-on developers to <a href="http://starkravingfinkle.org/blog/2010/04/firefox-mobile-1-1-beta-1-and-add-ons/">update their add-ons</a> from Firefox 1.0.x for Maemo.</p>
<p><strong>Note to Ovi Store Customers:</strong> If you installed Firefox 1.0.x from the Ovi Store, you will not be able to upgrade to Firefox 1.1 RC 1 (either from the N900 Application Manager or by downloading the software from Mozilla). We are working to solve this for future releases so that anyone can participate in our Beta programs. Don&#8217;t worry, though, if you got Firefox 1.0.x from either the Ovi store or directly from Mozilla, you will be updated to Firefox 1.1 (final) when it is released.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/G8DEhu0JADI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/06/firefox-for-maemo-1-1-rc-1/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/06/firefox-for-maemo-1-1-rc-1/</feedburner:origLink></item>
		<item>
		<title>Updating Add-ons in Firefox Mobile 1.1</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/2-WUtKoeotk/</link>
		<comments>http://starkravingfinkle.org/blog/2010/05/updating-add-ons-in-firefox-mobile-1-1/#comments</comments>
		<pubDate>Fri, 28 May 2010 20:09:51 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=763</guid>
		<description><![CDATA[In previous versions of Firefox Mobile, you could check for and install updates for your add-ons by pressing the &#8220;Update&#8221; button in the Add-ons Manager.  This meant that you could check whenever and as often as you wanted, but, if you didn&#8217;t really want to manage these things manually, you could find yourself without [...]]]></description>
			<content:encoded><![CDATA[<p>In previous versions of <a href="http://www.mozilla.com/mobile/">Firefox Mobile</a>, you could check for and install updates for your add-ons by pressing the &#8220;Update&#8221; button in the Add-ons Manager.  This meant that you could check whenever and as often as you wanted, but, if you didn&#8217;t really want to manage these things manually, you could find yourself without the latest versions.</p>
<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/05/fennec-addons-update-button-300x96.png" alt="" title="fennec-addons-update-button" width="300" height="96" class="alignnone size-medium wp-image-764" /></p>
<p>Desktop versions of Firefox will prompt you that a new version of an add-on is available. Maybe this prompt is enough for you to actually update the add-on, maybe it isn&#8217;t. Maybe you find the whole process annoying and/or boring.</p>
<p>In Firefox Mobile 1.1, we introduce automatic add-on upgrades. Once a day, Firefox will check your add-ons for an update and if an update is found, we download and install the new version. If you&#8217;re interested, you can go to the Add-ons Manager and see what add-ons have been updated. If you&#8217;re eager to use the new add-on, you can restart. In the future, some add-ons may not even need a restart.</p>
<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/05/fennec-addons-update-auto-300x187.png" alt="" title="fennec-addons-update-auto" width="300" height="187" class="alignnone size-medium wp-image-765" /></p>
<p>Of course, you can still use the &#8220;Update&#8221; button to force add-ons to update right away, without waiting for the next automatic check.</p>
<p>If you want to turn off automatic add-on updates, you can use <code>about:config</code> and set <code>extensions.autoupdate.enabled</code> to <code>false</code>. If you&#8217;d like to change the timing for automatic updates, set <code>extensions.autoupdate.interval</code> to a different number of seconds.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/2-WUtKoeotk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/05/updating-add-ons-in-firefox-mobile-1-1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/05/updating-add-ons-in-firefox-mobile-1-1/</feedburner:origLink></item>
		<item>
		<title>Crash Reporting Comes to Firefox Mobile</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/FdN7RzrQ0FE/</link>
		<comments>http://starkravingfinkle.org/blog/2010/05/crash-reporting-comes-to-firefox-mobile/#comments</comments>
		<pubDate>Wed, 26 May 2010 14:05:08 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=753</guid>
		<description><![CDATA[The latest Firefox Mobile nightly builds have enabled the Mozilla Crash Reporter, powered by the same Breakpad system as desktop Firefox. While desktop Firefox has been using Breakpad since Firefox 3.0, it was only recently ported to the ARM architecture of the Nokia N900.
Now, when Firefox Mobile (or Fennec nightlies) crash, you should see this [...]]]></description>
			<content:encoded><![CDATA[<p>The latest <a href="http://www.mozilla.com/en-US/mobile/">Firefox Mobile</a> nightly builds have enabled the Mozilla Crash Reporter, powered by the same <a href="https://wiki.mozilla.org/Breakpad">Breakpad</a> system as desktop Firefox. While desktop Firefox has been using Breakpad since <a href="http://benjamin.smedbergs.us/blog/2007-05-30/crash-bang-boom/">Firefox 3.0</a>, it was only recently ported to the ARM architecture of the Nokia N900.</p>
<p>Now, when Firefox Mobile (or Fennec nightlies) crash, you should see this application appear:</p>
<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/05/crashreporter.jpg" alt="" title="crashreporter" width="500" height="300" class="alignnone size-full wp-image-754" /></p>
<p>If you decide to send a crash report to Mozilla, and we really hope you do, you can see your crash, and other crashes, at the <a href="http://crash-stats.mozilla.com/">Mozilla Crash Reports</a> web site. Here&#8217;s a list of all the Firefox Mobile <a href="http://bit.ly/9j5L9O">crashes</a>. For example:</p>
<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/05/crashreportpage.jpg" alt="" title="crashreportpage" width="500" height="300" class="alignnone size-full wp-image-757" /></p>
<p>You can also manage crash reports from Firefox Mobile itself. Use <strong>about:crashes</strong> to view all the crash reports created on your device:</p>
<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/05/aboutcrashes.jpg" alt="" title="aboutcrashes" width="500" height="300" class="alignnone size-full wp-image-758" /></p>
<p>Crash reporting and the data they provide will be a huge help to the mobile team. A big <strong>thank you</strong> goes out to everyone who helped get crash reporting enabled on Maemo!</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/FdN7RzrQ0FE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/05/crash-reporting-comes-to-firefox-mobile/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/05/crash-reporting-comes-to-firefox-mobile/</feedburner:origLink></item>
		<item>
		<title>Smart Tapping in Mobile Firefox</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/fUt0PQoJBkE/</link>
		<comments>http://starkravingfinkle.org/blog/2010/05/smart-tapping-in-mobile-firefox/#comments</comments>
		<pubDate>Thu, 13 May 2010 00:00:14 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=738</guid>
		<description><![CDATA[It&#8217;s now well understood that, when designing for a touchscreen, there are certain minimum usable sizes for touchable targets.  While the amount you can display on a screen is increasing with higher resolutions, human finger sizes aren&#8217;t changing, and fingertips are much larger than a mouse pointer.  As a result, most UI recommendations [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s now well understood that, when designing for a touchscreen, there are certain minimum usable sizes for touchable targets.  While the amount you can display on a screen is increasing with higher resolutions, human finger sizes aren&#8217;t changing, and fingertips are much larger than a mouse pointer.  As a result, most UI recommendations for <a href="http://www.lukew.com/ff/entry.asp?1085">touch-target sizes</a> on mobile devices range from around 7mm to 9mm.</p>
<p>It&#8217;s relatively easy to take these minimum sizes into account when designing your own interface.  But what about when you&#8217;re displaying something that someone else has designed, and that wasn&#8217;t built with fingers in mind?  This is the situation mobile browsers encounter in most web pages: links, fields, and buttons are often much smaller than you&#8217;d want them to be in order to tap on them, but making them bigger would interfere with the designer&#8217;s intended layout.</p>
<p>An approach that a number of touch-oriented OSes take is to make a small target&#8217;s tap-sensitive area larger, invisibly, than the visible target itself. This approach has been <a href="http://www.designinggesturalinterfaces.com/">cleverly referred to</a> as using &#8220;iceberg buttons&#8221; because the visible part of the target is much smaller than what&#8217;s lurking below.  In fact, the <a href="http://ignorethecode.net/blog/2009/08/07/virtual-keyboards-on-iphone-and-android/">iPhone does this with their keyboard</a> as well, dynamically changing the invisible button target size based on what letters it predicts are most likely to come next.</p>
<p>Given how central link-tapping is to a browser, and how frustrating it is to tap the wrong link or not be able to tap at all, we decided to build our own approach.</p>
<p><strong>Introducing SmartTap</strong></p>
<p>In Firefox Mobile 1.1, we&#8217;ve added a smart-tapping scheme with the goal of allowing for accurate and easy tapping on links, form widgets and other focusable targets in web content. The main concepts of the approach are:</p>
<ul>
<li>Using a region, not just a point, to define the tap location</li>
<li>Creating a list of focusable element candidates in the region of the tap</li>
<li>Weight the elements by z-order</li>
<li>Weight the elements by distance from the actual touch point</li>
<li>Weight the links by number of visits</li>
</ul>
<p>The result of the algorithm should be the element you were most likely trying to tap. Initial results show that tapping elements in Firefox Mobile 1.1 is much easy than previous versions.  From a user&#8217;s perspective, taps just seem to work as they should.</p>
<p><strong>Implementation Details</strong></p>
<p>The code to support SmartTap was added to both the Mozilla platform and the Firefox front-end. It&#8217;s very flexible. The platform already exposes an <code>elementFromPoint</code> API to chrome and web content. The new API, <a href="http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindowUtils.idl#321"><code>nsIDOMWindowUtils.nodesFromRect</code></a>, is very similar, but is only available to chrome content. For a given region, established by top/right/bottom/left, and a point, the method will return a list of possible DOM nodes.</p>
<p>The returned list is sorted in z-order. The Firefox front-end code then applies additional heuristics to the node list to find the most likely candidate. The code filters the nodes by &#8220;focusable&#8221; elements, weights by the distance of each node from touch point and, finally, weights visited links higher than other elements.</p>
<p>The region passed to <code>nodesFromRect</code> can be controlled via preferences (<em>browser.ui.touch.top</em>, <em>browser.ui.touch.right</em>, <em>browser.ui.touch.bottom</em>, <em>browser.ui.touch.left</em>). The weighting used for the visited links can also be adjusted using the <em>browser.ui.touch.weight.visited</em> preference.</p>
<p>Firefox Mobile uses a region that is offset more above the touch point. This has the affect of favoring elements above the touch point &#8211; which is based on our observations that people tend to &#8220;tap&#8221; below elements. Here&#8217;s a simple illustration:</p>
<p><a href="http://starkravingfinkle.org/blog/wp-content/uploads/2010/05/smart-touch.jpg"><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/05/smart-touch.jpg" alt="" title="smart-touch" width="500" height="231" class="alignnone size-full wp-image-743" /></a><br />
<em>click for larger image</em></p>
<p>The red dot is the actual touch point. The red box is the region passed to <code>nodesFromRect</code>. The title link will end up being &#8220;clicked&#8221; even though the author&#8217;s name text was actually &#8220;tapped.&#8221;</p>
<p>Another bit of intelligence in this system is based on the same insight that drives the Firefox awesomebar: that people tend to visit the same pages over and over again.  Links are given higher weightings if they&#8217;ve been visited before, so visited links are more likely to &#8220;win&#8221; if a tap target is ambiguous because multiple small links are very close together.  In practice, from the user&#8217;s perspective, tapping on the intended link just seems to work more often.</p>
<p>Thanks to <a href="http://madhava.com/egotism/">Madhava Enros</a>, Vivien Nicolas and <a href="http://felipe.wordpress.com/">Felipe Gomes</a> for contributing to this post.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/fUt0PQoJBkE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/05/smart-tapping-in-mobile-firefox/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/05/smart-tapping-in-mobile-firefox/</feedburner:origLink></item>
		<item>
		<title>Firefox 1.1 Beta 1 for Maemo</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/7NHxAPunb0o/</link>
		<comments>http://starkravingfinkle.org/blog/2010/04/firefox-1-1-beta-1-for-maemo/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 20:24:56 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=727</guid>
		<description><![CDATA[
Firefox 1.1 Beta 1 for Maemo is ready to install. For this release, the focus was some UI features we didn’t have time to put in the initial release. We are also using your feedback from previous releases and nightly builds to help improve the browsing experience.
Some of the bigger features include:

Form assistant improvements, including [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/04/1_1_beta_horizontal.png" alt="" title="1_1_beta_horizontal" width="436" height="124" class="alignnone size-full wp-image-731" /></p>
<p><a href="https://www.mozilla.com/en-US/mobile/1.1b1/releasenotes/">Firefox 1.1 Beta 1 for Maemo</a> is ready to <a href="http://www.mozilla.com/en-US/m/beta">install</a>. For this release, the focus was some UI features we didn’t have time to put in the initial release. We are also using your feedback from previous releases and nightly builds to help improve the browsing experience.</p>
<p>Some of the bigger features include:</p>
<ul>
<li>Form assistant improvements, including autocomplete</li>
<li><a href="http://madhava.com/egotism/archive/005044.html">Start Page</a> redesign</li>
<li>Auto update add-ons</li>
<li>Portrait support on N900</li>
<li><a href="http://starkravingfinkle.org/blog/2010/04/fennec-1-1-context-menus/">Context Menu</a> with Open Link in New Tab and Save Image</li>
<li>Web content theme update</li>
<li>Manage site preferences (clearing passwords and others)</li>
<li>Improved <a href="http://madhava.com/egotism/archive/005043.html">Site Menu</a></li>
<li>Use volume keys to zoom on N900</li>
<li><a href="http://madhava.com/egotism/archive/005045.html">Save page to PDF</a></li>
</ul>
<p>As always, we’ve provided unbranded Fennec desktop builds on <a href="http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/1.1b1/win32-i686/fennec-1.1b1.en-US.win32.zip">Windows</a>, <a href="http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/1.1b1/macosx-i686/fennec-1.1b1.en-US.mac.dmg">Mac</a>, and <a href="http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/1.1b1/linux-i686/fennec-1.1b1.en-US.linux-i686.tar.bz2">Linux</a>.  You can use these if you don’t have a Maemo device or to aid in add-on development. Add-on developers should use this release to <a href="http://starkravingfinkle.org/blog/2010/04/firefox-mobile-1-1-beta-1-and-add-ons/">update add-ons</a> from Firefox 1.0.x for Maemo.</p>
<p><strong>Note to Ovi Store Customers:</strong> If you installed Firefox 1.0 from the Ovi Store, you will not be able to upgrade to Firefox 1.1 Beta 1 (either from the N900 Application Manager or by downloading the software from Mozilla). We are working to solve this for future releases so that anyone can participate in our Beta programs. Don&#8217;t worry, though, if you got Firefox 1.0 from either the Ovi store or directly from Mozilla, you will be updated to Firefox 1.1 (final) when it is released.</p>
<p>We want to get as much feedback as possible before moving to a final release candidate, so please leave comments or <a href="https://bugzilla.mozilla.org/">file bugs</a>.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/7NHxAPunb0o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/04/firefox-1-1-beta-1-for-maemo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/04/firefox-1-1-beta-1-for-maemo/</feedburner:origLink></item>
		<item>
		<title>Firefox Mobile 1.1 Beta 1 and Add-ons</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/cWpB1dYu3gs/</link>
		<comments>http://starkravingfinkle.org/blog/2010/04/firefox-mobile-1-1-beta-1-and-add-ons/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 19:51:29 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=707</guid>
		<description><![CDATA[With Firefox 1.1 Beta 1 for Maemo ready to go and the final release not far away, now is an excellent time for add-on developers to update their add-ons. Obviously, Mozilla wants as many add-ons as possible to be compatible with the latest version of Firefox Mobile.
AMO (addons.mozilla.org) is ready for add-ons to set maxVersion [...]]]></description>
			<content:encoded><![CDATA[<p>With Firefox 1.1 Beta 1 for Maemo ready to go and the final release not far away, now is an excellent time for add-on developers to update their add-ons. Obviously, Mozilla wants as many add-ons as possible to be compatible with the latest version of <a href="http://www.mozilla.com/en-US/mobile/">Firefox Mobile</a>.</p>
<p>AMO (addons.mozilla.org) is ready for add-ons to set maxVersion to 1.1.*</p>
<p>Please test your add-on <strong>before</strong> bumping the version. You can use the <a href="http://starkravingfinkle.org/blog/2009/11/fennec-nightly-maemo-updates/">nightly builds for Maemo</a>, as well as the <a href="http://www.mozilla.com/en-US/mobile/getinvolved">desktop versions</a> to help test. Here are a few things to keep in mind while testing add-ons:</p>
<ul>
<li><strong>Site Menu:</strong> The site menu was <a href="http://madhava.com/egotism/archive/005043.html">redesigned</a> and uses different XUL and JS. If your add-on adds a command to the site menu, please check out the changes and update your code.</li>
<li><strong>Context Menu:</strong> Long taps (or right clicks on desktop) will display a <a href="http://starkravingfinkle.org/blog/2010/04/fennec-1-1-context-menus/">context menu</a>, but only limited targets are allowed (images, links and mailto: links). If your add-on can benefit form the context menu, use it. But use it wisely.</li>
<li><strong>Startup:</strong> When starting the browser, the Awesomebar Screen is no longer shown. A true <a href="http://madhava.com/egotism/archive/005044.html">Start Page system</a>  is now used. Adjust your add-on startup process if needed.</li>
<li><strong>Portrait Mode:</strong> Firefox for Maemo (and Android) now supports dynamic portrait/landscape orientation. Make sure your add-on <a href="http://starkravingfinkle.org/blog/2009/09/fennec-of-screens-and-orientation/">works well</a> in both orientations.</li>
<li><strong>Theme Breakage:</strong> Check to make sure the add-on is not including the <code>chrome://global/content/global.css</code> stylesheet. It will break the mobile platform CSS. An easy way to see this breakage is to look at the toggle buttons in Preferences UI. If those buttons look like checkboxes, the CSS is broken. This seems to be very common for new add-ons.</li>
<li><strong>Check for Errors:</strong> When testing the add-on, launch the browser from a terminal and use | fennec &#8211;jsconsole | to open the JS Error Console. Make sure no errors appear in the console while testing the add-on.</li>
</ul>
<p>If you have any questions, please use <a href="http://irc.mozilla.org/">Mozilla IRC</a> and join the #mobile channel. Use <a href="http://www.mibbit.com/chat/">mibbit</a> if you don&#8217;t have an IRC client. I&#8217;ll be there (mfinkle), as will many other helpful people who can help answer your questions.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/cWpB1dYu3gs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/04/firefox-mobile-1-1-beta-1-and-add-ons/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/04/firefox-mobile-1-1-beta-1-and-add-ons/</feedburner:origLink></item>
		<item>
		<title>Fennec 1.1 Context Menus</title>
		<link>http://feedproxy.google.com/~r/weborama/~3/vYc79SfeOwk/</link>
		<comments>http://starkravingfinkle.org/blog/2010/04/fennec-1-1-context-menus/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 19:45:36 +0000</pubDate>
		<dc:creator>Mark Finkle</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://starkravingfinkle.org/blog/?p=713</guid>
		<description><![CDATA[Fennec 1.1 now supports context menus. Using a long tap (aka tap-n-hold), or right-click on desktop versions, you can get a context menu to appear.

We intentional designed the context menu system to be simple and minimalistic. We do not want large context menus with many, many commands. Currently, context menus are only displayed if the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mozilla.com/en-US/mobile/">Fennec 1.1</a> now supports <a href="http://starkravingfinkle.org/blog/2010/04/firefox-mobile-1-1-whats-coming/">context menus</a>. Using a long tap (aka tap-n-hold), or right-click on desktop versions, you can get a context menu to appear.</p>
<p><img src="http://starkravingfinkle.org/blog/wp-content/uploads/2010/04/fennec-contextpanel-02-300x239.png" width="300" height="239" class="alignnone size-medium wp-image-695" /></p>
<p>We intentional designed the context menu system to be simple and minimalistic. We do not want large context menus with many, many commands. Currently, context menus are only displayed if the user long-taps on a link or an image. Technically, not all links will activate the context menu. <code>javascript:</code> links, for example will not activate the context menu.</p>
<p>Fennec 1.1 will only ship with two context menu commands: <strong>Open Link in New Tab</strong> and <strong>Save Image</strong>.</p>
<p>Add-ons can extend the context menu. Just overlay the context menu list of commands, which is <code>&lt;richlistbox id="context-commands"&gt;</code> in the XUL. Each command must have a <code>type</code> attribute and only 3 types are recognized: link, image, mailto.</p>
<p>The context menu system will automatically show/hide commands based on where the user long-taps. Under normal circumstances, the add-on will not need to worry about showing or hiding the context menu command:</p>
<ul>
<li>If an image is tapped, only <code>type="image"</code> commands will be shown.</li>
<li>If the element is an image inside a link, both types of commands will be shown.</li>
<li>If no link or image is picked, no context menu will be shown at all.</li>
</ul>
<p>Yes, this is a bit restrictive, but that&#8217;s the way we want context menus to work for now. Feedback is always appreciated and Mozilla IRC (#mobile channel) is available to help answer questions.</p>
<img src="http://feeds.feedburner.com/~r/weborama/~4/vYc79SfeOwk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://starkravingfinkle.org/blog/2010/04/fennec-1-1-context-menus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://starkravingfinkle.org/blog/2010/04/fennec-1-1-context-menus/</feedburner:origLink></item>
	</channel>
</rss>
