Closed
Bug 681941
Opened 13 years ago
Closed 13 years ago
update() method of nsIGeolocationUpdate cannot be used with multiple tabs
Categories
(Core :: DOM: Geolocation, defect)
Tracking
()
RESOLVED
FIXED
mozilla9
People
(Reporter: public, Unassigned)
Details
(Whiteboard: [inbound])
Attachments
(2 files, 1 obsolete file)
2.05 KB,
application/javascript
|
Details | |
2.25 KB,
patch
|
dougt
:
review+
|
Details | Diff | Splinter Review |
the update() method of nsIGeolocationUpdate can be used to pass a location (coords) to every "geolocation listener" (watchPosition or getCurrentPosition). I'm trying to use it from an addon to be able to generate arbitrary locations. When the addon is active in multiple tabs, only the first tab is able to detect location updates. Worse: when the first tab is reloaded, it doesn't receive updates anymore. I have to reinstall the addon or restart firefox. Test case: 1. Open http://fiddle.jshell.net/louisremi/DXTmH/1/show/ to track your current location with watchPosition 2. set pref "devtools.chrome.enabled" to true (once for all) 3. Open scratchpad and switch "environment" to "browser" 3. paste the content of the attached file in it 4. Modify your location on line 66-68 5. Run the code 6. See your position updated in the test page 7. Repeat steps 4 to 6 at will 8. Open the test page in a new tab 9. Modify your location & run the code 10. See your position not being updated in the current tab 11. Switch to the first tab and see your position updated 12. Reload the first tab 13. Modify your location & run the code 14. See your position not being updated anymore
Comment 1•13 years ago
|
||
Thanks, this testcase was great. Patch coming up; look like we messed up the logic of when to cancel requests a bit.
Comment 2•13 years ago
|
||
Attachment #555805 -
Flags: review?(doug.turner)
Updated•13 years ago
|
Attachment #555805 -
Attachment is obsolete: true
Attachment #555805 -
Flags: review?(doug.turner)
Comment 4•13 years ago
|
||
Hi Josh, I helped Louis-rémi building his addon around geolocation. I was wondering if there is any way to fix this issue by using geolocation xpcom component in a alternative way so that all tabs gets update correctly? (In order to get something working on current Firefox releases, before this fix finally end up in a release)
Comment 5•13 years ago
|
||
I can think of a couple ways - use getLocation and setInterval, but the logic error being fixed here is weird enough that this may not be foolproof. Alternatively, you could try getting the geolocation information from a chrome listener, then load a content script which has a message listener which listens for messages your addon sends whenever a geolocation update occurs. That's assuming that it's possible to add geolocation listeners from non-content pages.
Reporter | ||
Comment 6•13 years ago
|
||
Thank you for being so quick at fixing this bug Josh. I hope it gets reviewed and commited soon so I can move on with my own work.
Comment 7•13 years ago
|
||
Comment on attachment 555807 [details] [diff] [review] Ensure that we always clear geolocation requests that are not long-lived, and never clear ones that are. The white space looks kinda off in one place.
Attachment #555807 -
Flags: review?(doug.turner) → review+
Reporter | ||
Comment 8•13 years ago
|
||
Wow that was really quick too! Thank you Doug.
Updated•13 years ago
|
Whiteboard: [inbound]
Comment 10•13 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/0938cf5252cd
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla9
You need to log in
before you can comment on or make changes to this bug.
Description
•