Closed Bug 498691 Opened 15 years ago Closed 15 years ago

Google Latitude Gadget on iGoogle does not work on Firefox but works in other browsers.

Categories

(Tech Evangelism Graveyard :: English US, defect)

All
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: felimz, Unassigned)

References

()

Details

(Keywords: regression, Whiteboard: [See comment 8 for steps to reproduce])

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1) Gecko/20090612 Firefox/3.5 (.NET CLR 3.5.30729)
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1) Gecko/20090612 Firefox/3.5 (.NET CLR 3.5.30729)

The Google Latitude gadget must be added to iGoogle to replicate this bug. Then if you maximize the gadget, it will not function at all (nothing will load or work).

Reproducible: Always

Steps to Reproduce:
1.Go on iGoogle (with Google Latitude Gadget added)
2.Click on Maximize Gadget button
3.Try to perform any action on the gadget
Actual Results:  
Nothing happens.

Expected Results:  
Gadget should function.
Bug has been reproduced on different computers on XP, Vista, and Win7 on both Firefox 3.5 RC1 and Firefox 3.5 RC2
Also reproduced on RC3.

I know it happened on Beta 4 as well ... not sure about how much before that it started.
Thread from Google Mobile forums also mentions latest 3.6 build as not working with Google Latitude.

http://www.google.com/support/forum/p/Google+Mobile/thread?tid=13aafec08f3d7aa8&hl=en
works:
http://hg.mozilla.org/mozilla-central/rev/1630d60e624e
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b1pre) Gecko/20081006 Minefield/3.1b1pre ID:20081006034237
fails:
http://hg.mozilla.org/mozilla-central/rev/55366228f456
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b1pre) Gecko/20081007 Minefield/3.1b1pre ID:20081007033730

you get quite some error console warnings related to
Source file: http://lfkq9vbe9u4sg98ip8rfvf00l7atcn3d.ig.ig.gmodules.com/ig/modules/friendview/fv-canvas.js

=> range:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=1630d60e624e&tochange=55366228f456
=> caused by checkin of Bug 433616?
Status: UNCONFIRMED → NEW
Component: General → DOM
Ever confirmed: true
OS: Windows 7 → Windows XP
Product: Firefox → Core
QA Contact: general → general
Version: unspecified → 1.9.1 Branch
I sure hope this bug gets fixed soon ... tired of using IE :S
So what are the actual step-by-step steps to reproduce here?  The url in the url field doesn't seem to be iGoogle, the reporter seems to be assuming everyone knows what the heck iGoogle is (I don't), etc.

What I need are steps to reproduce for someone who has never used anything Google or Firefox before, basically.  Step by step; describe exactly which urls to load and which buttons to click.
Note that the regression range has some geolocation changes in it.  Is this google latitude thing something geolocation-related?
* Create a Google Account if you don't have one
* Go to http://www.google.com/ig?referrer=ign&hl=en (the parameters are important since otherwise Google will tell you that Latitude is not available in your location)
* Go to http://www.google.com/ig/directory?hl=en&type=gadgets&url=www.google.com/ig/modules/fv.xml , choose "add it now"
* Come back to http://www.google.com/ig?referrer=ign&hl=en
* On the left menu, click on "Google Latitude"

--> Google Latitude gadget goes fullscreen. With FF 3.5 and 3.6, it's stuck on "loading friends" and showing a map of Palo Alto, CA. But with FF 3.0, it loads normally. 

Error console will also show some errors.

EDIT : yes Google Latitude is related to geolocation, but the issue doesn't seem to be related with the geolocation functions.
Pardon my non-rigorous bug report. I got lured into laziness by the ubiquity of Google--as I assumed everybody knew what Google and iGoogle were; I just added the link to the add-on. So, thanks to Mathieu Marquer for typing up a set of rigorous steps to reproduce the bug.

On an additional note, the Google Latitude programmers have been notified of the bug, in case it has to do with something on their end.
Mathieu, thanks!  That's exactly what I needed.

I can reproduce the issue with changeset 6ecedbcf4d05 but not changeset e3b597862e2a.  That gives http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=e3b597862e2a&tochange=6ecedbcf4d05 as the regression range.  That would be the native JSON landing.

I suspect this is a bug on Google's end.  Either they're assuming that "JSON" is unbound and breaking when it points to something, or they're using the native JSON instead of their own thing when available and it doesn't quite handle their not-quite-JSON data.

Of course it could also be a bug in our JSON stuff.  Over to js engine for evaluation.
Assignee: nobody → general
Blocks: 408838
Component: DOM → JavaScript Engine
QA Contact: general → general
Flags: blocking1.9.1.1?
does it work in IE8?
seems to work fine in Minefield. wonder if there's a UA check followed by a JSON detection botch.
oops, I eventually got an error to show up by taking the widget to full screen
Whiteboard: [See comment 8 for steps to reproduce]
It works fine in IE8 and Chrome 2.0
(In reply to comment #14)
> It works fine in IE8 and Chrome 2.0

OK, thanks. Given the changeset, chrome 2.0 seems irrelevant, since it doesn't have a native JSON object. The fact that IE8 works is troubling.
OK.  When the fullscreen widget, I do see js_json_parse getting called.  The js_ConsumeJSONText call this makes returns false.

The top frame of the JS stack at this point is:

0 anonymous(B = "[0,[,[[,[,"8329595214727999480",3,1,1]
,"bzbarsky@gmail.com","Boris Zbarsky"]
]
,[,[,0]
,0]
,"ADLe8C6nraoGtPmelP_y_PbyJtQC6Q5VekiQEUnxr35g_z8EGIkvI6Ql3CAd0xnQgX0tOPsM7VeH8NbqvNFltA9tGy1S-tQsEg"]
]
") ["http://www.ig.gmodules.com/gadgets/js/core:core.iglegacy:core.io.js?v=d192dc76e11111418442a309beae4d2&container=ig&debug=0":223]

and the relevant part of the JS file is (slightly pretty-printed):

  if (window.JSON) {
    gadgets.json= {
      parse: function(B) { 
        try {
          return window.JSON.parse(B) 
        } catch(A) {
          return false
        }
      },
      stringify: function(B) {
        try { 
          return window.JSON.stringify(B)
        } catch(A) {
          return null
        }
      }
    }
  } else {
    gadgets.json = function(){

and then they have their own client-side impl.  So yeah, they're passing non-JSON data (note all those leading commas in arrays) to our native JSON impl.
I have referred the above post to the Google Help forums for their review.
IE8 also throws on that "json" string when using its native JSON object.  I'll bet money that google.com is on IE8's "render like IE7" blacklist.  I did check, and in IE7 mode window.JSON tests false in IE8.

Over to tech evangelism; this is a bug in Google's code.
Assignee: general → english-us
Component: JavaScript Engine → English US
Flags: blocking1.9.1.1?
Product: Core → Tech Evangelism
QA Contact: general → english-us
Hardware: x86_64 → All
Version: 1.9.1 Branch → unspecified
http://ie8blacklist.appspot.com/google.com says that I get to keep my money from comment 18.  ;)
Google fixed this on their end.  Works with 3.0.12 and 3.5.1
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Product: Tech Evangelism → Tech Evangelism Graveyard
You need to log in before you can comment on or make changes to this bug.