Bug 79858
Summary: | The way we invalidate high accuracy geolocation listener is incorrect | ||
---|---|---|---|
Product: | WebKit | Reporter: | Benjamin Poulain <benjamin> |
Component: | WebCore Misc. | Assignee: | Benjamin Poulain <benjamin> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | ap, steveblock |
Priority: | P2 | Keywords: | InRadar |
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Benjamin Poulain
Add a high accuracy
Add a non-high accuracy
Remove the high accuracy
-->we stay in high accuracy
The problem is we have one client for all the controller, and the controller assume its client manage setEnableHighAccuracy per controller:
void GeolocationController::removeObserver(Geolocation* observer)
{
if (!m_observers.contains(observer))
return;
m_observers.remove(observer);
m_highAccuracyObservers.remove(observer);
if (m_client) {
if (m_observers.isEmpty())
m_client->stopUpdating();
else if (m_highAccuracyObservers.isEmpty())
m_client->setEnableHighAccuracy(false);
}
}
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Benjamin Poulain
<rdar://problem/10951749>
Steve Block
> The problem is we have one client for all the controller, and the controller
> assume its client manage setEnableHighAccuracy per controller:
Do you mean that you're sharing a single implementation of GeolocationClient between all GeolocationController instances? That would be a port-specific bug. Is this on Mac?
Steve Block
Having re-read this bug, I think you're referring to the problem in Bug 41341 ?
Benjamin Poulain
Yep. I close this bug as duplicate.
*** This bug has been marked as a duplicate of bug 41341 ***