Help get this topic noticed by sharing it on Twitter, Facebook, or email.

What on Earth was Google thinking?

Story Time!

So, I was looking at the official web page for Google Earth — no, this is not about http://www.google.com/js/gweb/analytics/autotrack.js — and I saw this link: Read the Google Lat Long Blog. (OK, I haven't done that in a while.) I proceeded to click it, and this is what I got:


Firefox 3.6.23 + Ghostery 2.6.0.1 on Ubuntu 10.04.3 LTS

(The gears were spinning.) That's it, no text.

Block Log:

Blocked script: http://www.google-analytics.com/ga.js origin: google-latlong.blogspot.com

No surprises there.

Error Console:

Error: uncaught exception: [Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "http://www.blogblog.com/dynamicviews/76916e5d590e0be6/js/common.js Line: 125"]

That would seem to narrow things down to:

function go(a){var b={};window.localStorage&&window.JSON&&(a=window.localStorage.getItem(ho(a)))&&(b=window.JSON.parse(a)||{});return b}function co(a,b){var c=fo(a,b);if(c)delete c.custom,c.modified=l,J().template(c.name,c.source),$(nc+b+la).removeClass(ai),c=go(a),delete c[b],window.localStorage&&window.JSON&&window.localStorage.setItem(ho(a),window.JSON.stringify(c))};function io(){this.xb=l;this.Wa=0}io.prototype.init=function(a,b){this.c=a;this.d=b;$(this.c).bind(Wl,$.proxy(this.Xa,this));jo(this)};io.prototype.dispose=function(){$(this.c).unbind(ce);$(pd).unbind(ce);delete this.c;delete this.d};function jo(a){if(!a.xb){var b=$(yj);if(b.length)$(b).bind(Lj,$.proxy(a.Xa,a)),a.xb=h}}io.prototype.Xa=function(a){a.type==Sl?(jo(this),$(pd).val()&&this.d.items().length!=this.Wa&&this.cb()):(clearTimeout(this.oc),this.oc=setTimeout($.proxy(this.cb,this),300))};

We've seen this error before with localStorage. Now, before you jump to conclusions, here's what about:config has to say:

Preference Name | Status | Type | Value
dom.storage.default_quota default integer 5120
dom.storage.enabled default boolean true

Translation: Nothing to see here, move along.

If I were to disable JavaScript, I'd get this helpful recommendation:

This site requires JavaScript.
You can still visit a non-dynamic version of this blog.

That links to:

http://google-latlong.blogspot.com/?v=0

... which doesn't exhibit the symptom. Google knows how to make this page work, they simply chose not to.

What does this have to do with Ghostery?

Nothing, actually. Disabling Ghostery doesn't solve the problem; it just makes the half-a-purple box go away.

The Mystery Solved

It turned out to be a known issue with Firefox: details appear in Mozilla Bug 365772. Had Google bothered to include a "try...catch" for this predictable situation, the whole mess could have been avoided.

The Takeaway

Ghostery isn't to blame when a site malfunctions because its authors are lazy, ignorant, or just plain arrogant. I suspect Google's "dynamic" blogs are perfectly usable if your browser just happens to be Google Chrome.

On a related note: I have mixed feelings about Ghostery surrogates, as I would with any "harm reduction" approach. Perhaps, the Options page should have a checkbox to enable/disable surrogation, with the suggestion that if the setting makes a difference, that's cause for concern. That doesn't necessarily mean staging an "intervention," but a stint in "web rehab" might not be such a bad thing for certain offenders.

Hopefully, we can use what we've learned to educate the "bug" — er, "3pes" — purveyors to update their drop-in code snippets, and revise their implementation guides, to promote "fault tolerance" — in the interest of delivering the best possible consumer experience. Plus, we wouldn't have to work as hard. ;-)

1 person has
this question
+1
Reply