<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Jabbering Giraffe &#187; firefox</title>
	<atom:link href="http://happygiraffe.net/blog/tag/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://happygiraffe.net/blog</link>
	<description></description>
	<lastBuildDate>Wed, 19 Oct 2011 10:40:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Firebug 0.4 Preview</title>
		<link>http://happygiraffe.net/blog/2006/05/13/firebug-0-4-preview/</link>
		<comments>http://happygiraffe.net/blog/2006/05/13/firebug-0-4-preview/#comments</comments>
		<pubDate>Sat, 13 May 2006 12:20:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2006/05/13/firebug-0-4-preview/</guid>
		<description><![CDATA[firebug is one of the best tools I&#8217;ve seen for web development in Firefox. There&#8217;s a new version due out soon, and Encytemedia have put up a fantastic preview. I&#8217;m drooling with anticipation!]]></description>
			<content:encoded><![CDATA[<p><a href="http://joehewitt.com/software/firebug/">firebug</a> is one of the best tools I&#8217;ve seen for web development in Firefox.  There&#8217;s a new version due out soon, and Encytemedia have put up a fantastic <a href="http://encytemedia.com/blog/articles/2006/05/12/an-in-depth-look-at-the-future-of-javascript-debugging-with-firebug">preview</a>.  I&#8217;m drooling with anticipation!</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2006/05/13/firebug-0-4-preview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cross Browser JavaScript Still Hard</title>
		<link>http://happygiraffe.net/blog/2006/04/09/cross-browser-javascript-still-hard/</link>
		<comments>http://happygiraffe.net/blog/2006/04/09/cross-browser-javascript-still-hard/#comments</comments>
		<pubDate>Sun, 09 Apr 2006 14:35:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[msie]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2006/04/09/cross-browser-javascript-still-hard/</guid>
		<description><![CDATA[Recently, I&#8217;ve been doing a reasonable amount of playing around with prototype and scriptaculous. They&#8217;re both really great libraries that give you loads of features and take a lot of trouble out of your hands. But they certainly don&#8217;t absolve &#8230; <a href="http://happygiraffe.net/blog/2006/04/09/cross-browser-javascript-still-hard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently, I&#8217;ve been doing a reasonable amount of playing around with <a href="http://prototype.conio.net/">prototype</a> and <a href="http://script.aculo.us/">scriptaculous</a>.  They&#8217;re both really great libraries that give you loads of features and take a lot of trouble out of your hands.  But they certainly don&#8217;t absolve you from cross browser compatibility testing.  Whilst the libraries themselves are pretty much cross browser compatible, your own code likely isn&#8217;t until proved otherwise&#8230;</p>
<p>The discoveries I have made that lead to this:</p>
<ul>
<li><span class="caps">MSIE</span> doesn&#8217;t like trailing commas.  e.g. this throws up an a JScript error in Internet Explorer.</li>
</ul>
<pre>
  {
    foo: 1,
    bar: 2,
  }
</pre>
<ul>
<li>I&#8217;m still tracking this one down, but I started getting errors when I did <code>Element.show('non-existent-id')</code> in Internet Explorer, but not FireFox.  Why doesn&#8217;t Firefox complain?  I think it should do.
<ul>
<li>Oh all right, it does complain.  I missed the warning.</li>
</ul>
</li>
</ul>
<p>Doubtless this is just the beginning of a list.</p>
<p>Of course, I managed to waste <em>plenty</em> of time arriving at these problems, because Internet Explorer has such incredibly lacklustre development tools.  For example, to get any idea at all of where the error in your code is<sup><a href="#fn1">1</a></sup>, you have to install the <a href="http://en.wikipedia.org/wiki/Microsoft_Script_Debugger">Microsoft Script Debugger</a>.  This is very primitive, but it will show you where the error actually occurred, and gives you a fighting chance of examining some variables in the locality<sup><a href="#fn2">2</a></sup>.</p>
<p>In my case, the script debugger didn&#8217;t even work properly when first installed.  After reading somewhere that Visual Studio surperceded the Script Debugger, I remembered an <a href="http://happygiraffe.net/blog/archives/2005/02/25/win32-build-environment">experiment</a> I&#8217;d performed a while back.  It turned out that something called <acronym title="Machine Debug Manager">MDM</acronym> had gottened installed.  Deleting it and all associated registry entries made the Script Debugger spring back into life.  Finally!</p>
<p>Another hint worth noting about the Script Debugger: if you want it to run in a non-administrator account, you need to put yourself in the &#8220;Debugger Users&#8221; group.</p>
<p id="fn1"><sup>1</sup> The error that pops up in Internet Explorer gives you a line number without a filename which is none too helpful.</p>
<p id="fn2"><sup>2</sup> Hint: you have to use <code>alert()</code> to see any useful output in the command window, then flick back to the browser to see the popup.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2006/04/09/cross-browser-javascript-still-hard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A useful setup for developing firefox extensions</title>
		<link>http://happygiraffe.net/blog/2005/08/22/a-useful-setup-for-developing-firefox-extensions/</link>
		<comments>http://happygiraffe.net/blog/2005/08/22/a-useful-setup-for-developing-firefox-extensions/#comments</comments>
		<pubDate>Mon, 22 Aug 2005 00:01:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2005/08/22/a-useful-setup-for-developing-firefox-extensions/</guid>
		<description><![CDATA[Finally, after much trial and error, I have something approaching a usable development environment for a firefox extension. It&#8217;s based around roachfiend&#8217;s helloworld tutorial. Set up a separate development profile in firefox that you can play around with. The article &#8230; <a href="http://happygiraffe.net/blog/2005/08/22/a-useful-setup-for-developing-firefox-extensions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Finally, after much trial and error, I have something approaching a usable development environment for a firefox extension.  It&#8217;s based around <a href="http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/">roachfiend&#8217;s helloworld tutorial</a>.</p>
<ol>
<li>Set up a separate development profile in firefox that you can play around with.  The article <a href="http://kb.mozillazine.org/Setting_up_extension_development_environment">Setting up extension development environment</a> is a good source for this.  I also found this in my <code>~/.zshrc</code> useful:
<pre>alias firefoxdev="MOZ_NO_REMOTE=1 firefox -p dev -console"</pre>
</li>
<li>Download roachfiend&#8217;s <a href="http://extensions.roachfiend.com/helloworld.xpi">helloworld extension</a>.  Extract it into a directory called <code>helloworld</code>.</li>
<li>Inside the helloworld directory, remove the <code>install.js</code> file.  It&#8217;s only used by older mozilla&#8217;s and we don&#8217;t care about it.</li>
<li>Inside <code>helloworld/chrome</code>, create a new <code>helloworld</code> directory and extract the contents of <code>helloworld.jar</code> into it.  Then remove <code>helloworld.jar</code>.</li>
<li>Edit the <code>install.rdf</code> so that <code>urn:mozilla:extension:file:helloworld</code> no longer has a &#8221;.jar&#8221; on the end.</li>
<li>Now we&#8217;re ready to import this lot into subversion:
<pre>% cd helloworld
% svn import $SVNROOT/helloworld/trunk/src</pre>
</li>
<li>The extension needs to be built and imported into firefox once.
<pre>% zip -9r ../helloworld.xpi *</pre>
</li>
<li>Start firefox (in your development profile), do File / Open / helloworld.xpi and install.  Then quit firefox.</li>
<li>Change into the development profile directory (I chose ~/work/mozdev to make it easy to find.  Then replace the installed extension with the one checked out of subversion.
<pre>% cd ~/work/mozdev
% cd extensions
% uuid="{9AA46F4F-4DC7-4c06-97AF-5035170633FE}"
% mv $uuid $uuid.old
% svn co $SVNROOT/helloworld/trunk/src $uuid
% mv $uuid.old/uninstall $uuid</pre>
<p>Of course, this will differ if you have a different <span class="caps">UUID</span> (in which case don&#8217;t forget to update <code>install.rdf</code>!).</li>
<li>You probably want to set a property to ignore that uninstall directory:
<pre>% svn propset svn:ignore uninstall $uuid
% svn commit -m 'Ignore uninstall.'</pre>
</li>
<li>Start firefox and check that the extension still works.</li>
<li>You might want to create a symbolic link to get into the directory easily.
<pre>% cd
% ln -s ~/work/mozdev/extensions/$uuid helloworld</pre>
</li>
</ol>
<p>At this point, you have a version of firefox, with access to a full expanded extension, which you can start developing in.  Also the extension is inside subversion, so you can keep track of things sensibly.  You&#8217;ll note that I imported the extension into a directory called &#8220;src&#8221;&#8212;that&#8217;s so that I can put a build script and other stuff above it, in case I ever actually get as far as releasing something.</p>
<p>The steps for cvs instead of subversion should be pretty similiar.</p>
<p>Two very good sources of documentation are: <a href="http://kb.mozillazine.org/Extension_development">mozillazine knowledgebase: Extension development</a> and <a href="http://developer.mozilla.org/en/docs/Extensions">devmo: Extensions</a>.  It seems like they held all the pieces I needed to pull this together even though I wasn&#8217;t coherent enough to spot it.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2005/08/22/a-useful-setup-for-developing-firefox-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox Extensions</title>
		<link>http://happygiraffe.net/blog/2005/08/21/firefox-extensions/</link>
		<comments>http://happygiraffe.net/blog/2005/08/21/firefox-extensions/#comments</comments>
		<pubDate>Sun, 21 Aug 2005 22:21:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2005/08/21/firefox-extensions/</guid>
		<description><![CDATA[After a bit of research, I&#8217;ve concluded that there are many different ways of developing extensions in mozilla / firefox. And they all vary over time. Most of the problems appear to surround the registration of chrome (the actual browser &#8230; <a href="http://happygiraffe.net/blog/2005/08/21/firefox-extensions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After a bit of research, I&#8217;ve concluded that there are many different ways of developing extensions in mozilla / firefox.  And they all vary over time.  Most of the problems appear to surround the registration of chrome (the actual browser bits as opposed to the content it displays).</p>
<p>Originally, you had to register the chrome by hand.  This involved editing the file <code>chrome/installed-chrome.txt</code> in the mozilla application directory (source: Rapid Application Developmen with Mozilla).  You also had to develop your application in the same place.  This is probably ok if you&#8217;re on windows, but it utterly sucks if you&#8217;re in Unix as you don&#8217;t have permission to do any of this.</p>
<p>Later on, along came firefox with it&#8217;s <a href="http://www.mozilla.org/projects/firefox/extensions/">extension manager</a>.  This let you easily install extensions into your profile instead of system wide&#8212;a blessing for us Unix users, and probably making life easier for windows users too.</p>
<p>Developing under this setup now used install.rdf and chrome.manifest files.  I have no idea if you can develop using the &#8220;edit+reload&#8221; style with this version.</p>
<p>Now, for firefox 1.1, the extension manager has <a href="http://www.mozilla.org/projects/firefox/extensions/em-changes.html">changed</a> again.  And it&#8217;s all different.  Whilst I understand all the reasons for doing so, the lack of documentation about how all this fits together is very annoying for people trying to develop against a stable platform.</p>
<p>But, looking at the docs shows that extensions really should be easier to get going with this new method.  I hope.</p>
<p>Of course, all my troubles are probably because I&#8217;m using Ubuntu&#8217;s version of firefox instead of one of the official builds&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2005/08/21/firefox-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox Plugin Development</title>
		<link>http://happygiraffe.net/blog/2005/08/18/firefox-plugin-development/</link>
		<comments>http://happygiraffe.net/blog/2005/08/18/firefox-plugin-development/#comments</comments>
		<pubDate>Thu, 18 Aug 2005 06:33:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2005/08/18/firefox-plugin-development/</guid>
		<description><![CDATA[I&#8217;ve tried a few times to play with firefox (or it&#8217;s parent, mozilla) in order to write a plugins. There&#8217;s no shortage of ideas that I could implement&#8230; But every time I get stymied at the first step: getting the &#8230; <a href="http://happygiraffe.net/blog/2005/08/18/firefox-plugin-development/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve tried a few times to play with firefox (or it&#8217;s parent, mozilla) in order to write a plugins.  There&#8217;s no shortage of ideas that I could implement&#8230; But every time I get stymied at the first step: getting the development environment set up.</p>
<p>This time, I was following <a href="http://kb.mozillazine.org/Getting_started_with_extension_development">Getting started with extension development</a>, which looked like just the ticket for getting going.  Everything laid out in nice, easy steps.  Except that I can&#8217;t make it work.  The extension manager plainly refuses to see the extension I have created.  And I have no idea why, because there appears to be no logging at all.</p>
<p>I&#8217;ve actually purchased two books on mozilla development over the years, but whilst they have good coverage of the innards, they have less than stellar coverage of how to get there.</p>
<p>Whilst I like firefox greatly, I do wish that it was more like Emacs in how it exposes its development functionality.  That&#8217;s a lot easier to get started with.</p>
<p><strong>Update:</strong> Pilot error.  I failed to notice the &#8220;requires firefox 1.1 or better&#8221; notices contained within&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2005/08/18/firefox-plugin-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sage RSS Reader</title>
		<link>http://happygiraffe.net/blog/2005/07/30/sage-rss-reader/</link>
		<comments>http://happygiraffe.net/blog/2005/07/30/sage-rss-reader/#comments</comments>
		<pubDate>Sat, 30 Jul 2005 14:24:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[aggregator]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2005/07/30/sage-rss-reader/</guid>
		<description><![CDATA[If you use firefox, then sage provides a very useful improvement over the default implementation of RSS (&#8220;Live Bookmarks&#8221;). Some of the features: Tells you which items you haven&#8217;t read yet. Better feed autodiscovery. Proper OPML export. If you&#8217;re using &#8230; <a href="http://happygiraffe.net/blog/2005/07/30/sage-rss-reader/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you use <a href="http://www.getfirefox.com/">firefox</a>, then <a href="http://sage.mozdev.org/">sage</a> provides a very useful improvement over the default implementation of <span class="caps">RSS</span> (&#8220;Live Bookmarks&#8221;).  Some of the features:</p>
<ul>
<li>Tells you which items you haven&#8217;t read yet.</li>
<li>Better feed autodiscovery.</li>
<li>Proper <span class="caps">OPML</span> export.</li>
</ul>
<p>If you&#8217;re using Live Bookmarks at all in firefox, it&#8217;s worth checking out.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2005/07/30/sage-rss-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox / Thunderbird Extensions</title>
		<link>http://happygiraffe.net/blog/2005/04/18/firefox-thunderbird-extensions/</link>
		<comments>http://happygiraffe.net/blog/2005/04/18/firefox-thunderbird-extensions/#comments</comments>
		<pubDate>Mon, 18 Apr 2005 18:24:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[thunderbird]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2005/04/18/firefox-thunderbird-extensions/</guid>
		<description><![CDATA[There are two things that I could really, really use: A firefox extension to summarize all live bookmarks by download time, so you can immediately see which ones have new items. A thunderbird extension to understand Mailing List headers, so &#8230; <a href="http://happygiraffe.net/blog/2005/04/18/firefox-thunderbird-extensions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are two things that I could really, really use:</p>
<ul>
<li>A firefox extension to summarize all live bookmarks by download time, so you can immediately see which ones have new items.</li>
<li>A thunderbird extension to understand Mailing List headers, so you can have a Reply-To-List button.</li>
</ul>
<p>I suppose I&#8217;d better start cracking on them&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2005/04/18/firefox-thunderbird-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FireFox Extensions</title>
		<link>http://happygiraffe.net/blog/2005/03/20/firefox-extensions-2/</link>
		<comments>http://happygiraffe.net/blog/2005/03/20/firefox-extensions-2/#comments</comments>
		<pubDate>Sun, 20 Mar 2005 17:11:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2005/03/20/firefox-extensions-2/</guid>
		<description><![CDATA[Firefox is a fine web browser. But one of the best features is the ability to add in extensions. These are a few of the extensions that I have to install. AdBlock. Lets you switch off the annoying flashing adverts. &#8230; <a href="http://happygiraffe.net/blog/2005/03/20/firefox-extensions-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mozilla.org/products/firefox/">Firefox</a> is a fine web browser.  But one of the best features is the ability to add in <a href="https://addons.update.mozilla.org/?application=firefox">extensions</a>.  These are a few of the extensions that I have to install.</p>
<ul>
<li><a href="http://adblock.mozdev.org/">AdBlock</a>.  Lets you switch off the annoying flashing adverts.</li>
<li><a href="http://www.chrispederick.com/work/firefox/webdeveloper/">Web Developer</a>.  If you&#8217;re developing web sites, you <em>need</em> this to understand how your web pages really work.</li>
<li><a href="http://www.bitstorm.org/extensions/">View Cookies</a>. A simple but useful tool if you&#8217;re developing web sites.</li>
<li><a href="http://livehttpheaders.mozdev.org/">Live <span class="caps">HTTP</span> Headers</a>.  Shows you what really happened under the hood.  Again, more useful for web site developers.</li>
<li><a href="http://greasemonkey.mozdev.org/">GreaseMonkey</a>.  This should be installed by default.  It lets you use JavaScript to alter any web page in any way.  Very handy for fixing up those little &#8220;broken&#8221; things lying around the web.</li>
<li><a href="http://pcdingo.freestarthost.com/firefox/">Show Anchors</a>.  Really handy for linking to some particular piece of a web page instead of the page as a whole.</li>
</ul>
<p>The other extremely handy extension is the <a href="http://kb.mozillazine.org/DOM_Inspector"><span class="caps">DOM</span> Inspector</a>, but that&#8217;s more of a builtin thing than an extension.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2005/03/20/firefox-extensions-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

