зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1035044 - Use timestamp equality to check if a consecutive location is cached, removed unnecessary additional cached location from nsGeolocation class. r=jdm
This commit is contained in:
Родитель
6630b815be
Коммит
d8b860963f
|
@ -502,10 +502,9 @@ nsGeolocationRequest::SendLocation(nsIDOMGeoPosition* aPosition)
|
|||
return;
|
||||
}
|
||||
|
||||
nsRefPtr<Position> wrapped, cachedWrapper = mLocator->GetCachedPosition();
|
||||
if (cachedWrapper && aPosition == cachedWrapper->GetWrappedGeoPosition()) {
|
||||
wrapped = cachedWrapper;
|
||||
} else if (aPosition) {
|
||||
nsRefPtr<Position> wrapped;
|
||||
|
||||
if (aPosition) {
|
||||
nsCOMPtr<nsIDOMGeoPositionCoords> coords;
|
||||
aPosition->GetCoords(getter_AddRefs(coords));
|
||||
if (coords) {
|
||||
|
@ -518,7 +517,6 @@ nsGeolocationRequest::SendLocation(nsIDOMGeoPosition* aPosition)
|
|||
return;
|
||||
}
|
||||
|
||||
mLocator->SetCachedPosition(wrapped);
|
||||
if (!mIsWatchPositionRequest) {
|
||||
// Cancel timer and position updates in case the position
|
||||
// callback spins the event loop
|
||||
|
@ -1030,7 +1028,6 @@ NS_IMPL_CYCLE_COLLECTING_ADDREF(Geolocation)
|
|||
NS_IMPL_CYCLE_COLLECTING_RELEASE(Geolocation)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(Geolocation,
|
||||
mCachedPosition,
|
||||
mPendingCallbacks,
|
||||
mWatchingCallbacks,
|
||||
mPendingRequests)
|
||||
|
@ -1203,18 +1200,6 @@ Geolocation::NotifyError(uint16_t aErrorCode)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
Geolocation::SetCachedPosition(Position* aPosition)
|
||||
{
|
||||
mCachedPosition = aPosition;
|
||||
}
|
||||
|
||||
Position*
|
||||
Geolocation::GetCachedPosition()
|
||||
{
|
||||
return mCachedPosition;
|
||||
}
|
||||
|
||||
void
|
||||
Geolocation::GetCurrentPosition(PositionCallback& aCallback,
|
||||
PositionErrorCallback* aErrorCallback,
|
||||
|
|
|
@ -145,9 +145,6 @@ public:
|
|||
int32_t WatchPosition(PositionCallback& aCallback, PositionErrorCallback* aErrorCallback, const PositionOptions& aOptions, ErrorResult& aRv);
|
||||
void GetCurrentPosition(PositionCallback& aCallback, PositionErrorCallback* aErrorCallback, const PositionOptions& aOptions, ErrorResult& aRv);
|
||||
|
||||
void SetCachedPosition(Position* aPosition);
|
||||
Position* GetCachedPosition();
|
||||
|
||||
// Returns true if any of the callbacks are repeating
|
||||
bool HasActiveCallbacks();
|
||||
|
||||
|
@ -206,9 +203,6 @@ private:
|
|||
// owning back pointer.
|
||||
nsRefPtr<nsGeolocationService> mService;
|
||||
|
||||
// cached Position wrapper
|
||||
nsRefPtr<Position> mCachedPosition;
|
||||
|
||||
// Watch ID
|
||||
uint32_t mLastWatchId;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче