mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Bug 909768 - Replace idl::GeoPositionOptions with dom::PositionOptions. r=jdm
This commit is contained in:
parent
fdd9e3f2a6
commit
107bcf1f66
@ -8,26 +8,23 @@ interface nsIDOMGeoPositionCallback;
|
|||||||
interface nsIDOMGeoPositionErrorCallback;
|
interface nsIDOMGeoPositionErrorCallback;
|
||||||
|
|
||||||
%{C++
|
%{C++
|
||||||
#include "DictionaryHelpers.h"
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
class PositionOptions;
|
||||||
|
}
|
||||||
|
}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
dictionary GeoPositionOptions
|
[ptr] native NamespacedPositionOptions(mozilla::dom::PositionOptions);
|
||||||
{
|
|
||||||
boolean enableHighAccuracy;
|
|
||||||
long timeout;
|
|
||||||
long maximumAge;
|
|
||||||
};
|
|
||||||
|
|
||||||
[ptr] native NamespacedGeoPositionOptions(mozilla::idl::GeoPositionOptions);
|
|
||||||
|
|
||||||
[builtinclass, uuid(1bc7d103-c7ae-4467-881c-21a8dfa17938)]
|
[builtinclass, uuid(1bc7d103-c7ae-4467-881c-21a8dfa17938)]
|
||||||
interface nsIDOMGeoGeolocation : nsISupports
|
interface nsIDOMGeoGeolocation : nsISupports
|
||||||
{
|
{
|
||||||
int32_t watchPosition(in nsIDOMGeoPositionCallback callback,
|
int32_t watchPosition(in nsIDOMGeoPositionCallback callback,
|
||||||
in nsIDOMGeoPositionErrorCallback errorCallback,
|
in nsIDOMGeoPositionErrorCallback errorCallback,
|
||||||
in NamespacedGeoPositionOptions options);
|
in NamespacedPositionOptions options);
|
||||||
void getCurrentPosition(in nsIDOMGeoPositionCallback callback,
|
void getCurrentPosition(in nsIDOMGeoPositionCallback callback,
|
||||||
in nsIDOMGeoPositionErrorCallback errorCallback,
|
in nsIDOMGeoPositionErrorCallback errorCallback,
|
||||||
in NamespacedGeoPositionOptions options);
|
in NamespacedPositionOptions options);
|
||||||
void clearWatch(in long watchId);
|
void clearWatch(in long watchId);
|
||||||
};
|
};
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "mozilla/dom/bluetooth/PBluetoothParent.h"
|
#include "mozilla/dom/bluetooth/PBluetoothParent.h"
|
||||||
#include "mozilla/dom/PFMRadioParent.h"
|
#include "mozilla/dom/PFMRadioParent.h"
|
||||||
#include "mozilla/dom/devicestorage/DeviceStorageRequestParent.h"
|
#include "mozilla/dom/devicestorage/DeviceStorageRequestParent.h"
|
||||||
|
#include "mozilla/dom/GeolocationBinding.h"
|
||||||
#include "mozilla/dom/telephony/TelephonyParent.h"
|
#include "mozilla/dom/telephony/TelephonyParent.h"
|
||||||
#include "SmsParent.h"
|
#include "SmsParent.h"
|
||||||
#include "mozilla/Hal.h"
|
#include "mozilla/Hal.h"
|
||||||
@ -150,7 +151,6 @@ using namespace mozilla::dom::power;
|
|||||||
using namespace mozilla::dom::mobilemessage;
|
using namespace mozilla::dom::mobilemessage;
|
||||||
using namespace mozilla::dom::telephony;
|
using namespace mozilla::dom::telephony;
|
||||||
using namespace mozilla::hal;
|
using namespace mozilla::hal;
|
||||||
using namespace mozilla::idl;
|
|
||||||
using namespace mozilla::ipc;
|
using namespace mozilla::ipc;
|
||||||
using namespace mozilla::layers;
|
using namespace mozilla::layers;
|
||||||
using namespace mozilla::net;
|
using namespace mozilla::net;
|
||||||
@ -2642,8 +2642,8 @@ AddGeolocationListener(nsIDOMGeoPositionCallback* watcher, bool highAccuracy)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
GeoPositionOptions* options = new GeoPositionOptions();
|
PositionOptions* options = new PositionOptions();
|
||||||
options->enableHighAccuracy = highAccuracy;
|
options->mEnableHighAccuracy = highAccuracy;
|
||||||
int32_t retval = 1;
|
int32_t retval = 1;
|
||||||
geo->WatchPosition(watcher, nullptr, options, &retval);
|
geo->WatchPosition(watcher, nullptr, options, &retval);
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -71,13 +71,13 @@ class nsGeolocationRequest
|
|||||||
nsGeolocationRequest(Geolocation* aLocator,
|
nsGeolocationRequest(Geolocation* aLocator,
|
||||||
const GeoPositionCallback& aCallback,
|
const GeoPositionCallback& aCallback,
|
||||||
const GeoPositionErrorCallback& aErrorCallback,
|
const GeoPositionErrorCallback& aErrorCallback,
|
||||||
idl::GeoPositionOptions* aOptions,
|
PositionOptions* aOptions,
|
||||||
bool aWatchPositionRequest = false,
|
bool aWatchPositionRequest = false,
|
||||||
int32_t aWatchId = 0);
|
int32_t aWatchId = 0);
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
|
|
||||||
void SendLocation(nsIDOMGeoPosition* location);
|
void SendLocation(nsIDOMGeoPosition* location);
|
||||||
bool WantsHighAccuracy() {return mOptions && mOptions->enableHighAccuracy;}
|
bool WantsHighAccuracy() {return mOptions && mOptions->mEnableHighAccuracy;}
|
||||||
void SetTimeoutTimer();
|
void SetTimeoutTimer();
|
||||||
nsIPrincipal* GetPrincipal();
|
nsIPrincipal* GetPrincipal();
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ class nsGeolocationRequest
|
|||||||
nsCOMPtr<nsITimer> mTimeoutTimer;
|
nsCOMPtr<nsITimer> mTimeoutTimer;
|
||||||
GeoPositionCallback mCallback;
|
GeoPositionCallback mCallback;
|
||||||
GeoPositionErrorCallback mErrorCallback;
|
GeoPositionErrorCallback mErrorCallback;
|
||||||
nsAutoPtr<idl::GeoPositionOptions> mOptions;
|
nsAutoPtr<PositionOptions> mOptions;
|
||||||
|
|
||||||
nsRefPtr<Geolocation> mLocator;
|
nsRefPtr<Geolocation> mLocator;
|
||||||
|
|
||||||
@ -102,15 +102,14 @@ class nsGeolocationRequest
|
|||||||
bool mShutdown;
|
bool mShutdown;
|
||||||
};
|
};
|
||||||
|
|
||||||
static idl::GeoPositionOptions*
|
static PositionOptions*
|
||||||
GeoPositionOptionsFromPositionOptions(const PositionOptions& aOptions)
|
CreatePositionOptionsCopy(const PositionOptions& aOptions)
|
||||||
{
|
{
|
||||||
nsAutoPtr<idl::GeoPositionOptions> geoOptions(
|
nsAutoPtr<PositionOptions> geoOptions(new PositionOptions());
|
||||||
new idl::GeoPositionOptions());
|
|
||||||
|
|
||||||
geoOptions->enableHighAccuracy = aOptions.mEnableHighAccuracy;
|
geoOptions->mEnableHighAccuracy = aOptions.mEnableHighAccuracy;
|
||||||
geoOptions->maximumAge = aOptions.mMaximumAge;
|
geoOptions->mMaximumAge = aOptions.mMaximumAge;
|
||||||
geoOptions->timeout = aOptions.mTimeout;
|
geoOptions->mTimeout = aOptions.mTimeout;
|
||||||
|
|
||||||
return geoOptions.forget();
|
return geoOptions.forget();
|
||||||
}
|
}
|
||||||
@ -336,7 +335,7 @@ PositionError::NotifyCallback(const GeoPositionErrorCallback& aCallback)
|
|||||||
nsGeolocationRequest::nsGeolocationRequest(Geolocation* aLocator,
|
nsGeolocationRequest::nsGeolocationRequest(Geolocation* aLocator,
|
||||||
const GeoPositionCallback& aCallback,
|
const GeoPositionCallback& aCallback,
|
||||||
const GeoPositionErrorCallback& aErrorCallback,
|
const GeoPositionErrorCallback& aErrorCallback,
|
||||||
idl::GeoPositionOptions* aOptions,
|
PositionOptions* aOptions,
|
||||||
bool aWatchPositionRequest,
|
bool aWatchPositionRequest,
|
||||||
int32_t aWatchId)
|
int32_t aWatchId)
|
||||||
: mIsWatchPositionRequest(aWatchPositionRequest),
|
: mIsWatchPositionRequest(aWatchPositionRequest),
|
||||||
@ -460,11 +459,11 @@ nsGeolocationRequest::Allow()
|
|||||||
|
|
||||||
uint32_t maximumAge = 30 * PR_MSEC_PER_SEC;
|
uint32_t maximumAge = 30 * PR_MSEC_PER_SEC;
|
||||||
if (mOptions) {
|
if (mOptions) {
|
||||||
if (mOptions->maximumAge >= 0) {
|
if (mOptions->mMaximumAge >= 0) {
|
||||||
maximumAge = mOptions->maximumAge;
|
maximumAge = mOptions->mMaximumAge;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gs->SetHigherAccuracy(mOptions && mOptions->enableHighAccuracy);
|
gs->SetHigherAccuracy(mOptions && mOptions->mEnableHighAccuracy);
|
||||||
|
|
||||||
bool canUseCache = lastPosition && maximumAge > 0 &&
|
bool canUseCache = lastPosition && maximumAge > 0 &&
|
||||||
(PRTime(PR_Now() / PR_USEC_PER_MSEC) - maximumAge <=
|
(PRTime(PR_Now() / PR_USEC_PER_MSEC) - maximumAge <=
|
||||||
@ -497,7 +496,7 @@ nsGeolocationRequest::SetTimeoutTimer()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t timeout;
|
int32_t timeout;
|
||||||
if (mOptions && (timeout = mOptions->timeout) != 0) {
|
if (mOptions && (timeout = mOptions->mTimeout) != 0) {
|
||||||
|
|
||||||
if (timeout < 0) {
|
if (timeout < 0) {
|
||||||
timeout = 0;
|
timeout = 0;
|
||||||
@ -600,7 +599,7 @@ nsGeolocationRequest::Shutdown()
|
|||||||
|
|
||||||
// This should happen last, to ensure that this request isn't taken into consideration
|
// This should happen last, to ensure that this request isn't taken into consideration
|
||||||
// when deciding whether existing requests still require high accuracy.
|
// when deciding whether existing requests still require high accuracy.
|
||||||
if (mOptions && mOptions->enableHighAccuracy) {
|
if (mOptions && mOptions->mEnableHighAccuracy) {
|
||||||
nsRefPtr<nsGeolocationService> gs = nsGeolocationService::GetGeolocationService();
|
nsRefPtr<nsGeolocationService> gs = nsGeolocationService::GetGeolocationService();
|
||||||
if (gs) {
|
if (gs) {
|
||||||
gs->SetHigherAccuracy(false);
|
gs->SetHigherAccuracy(false);
|
||||||
@ -1200,9 +1199,8 @@ Geolocation::GetCurrentPosition(PositionCallback& aCallback,
|
|||||||
GeoPositionCallback successCallback(&aCallback);
|
GeoPositionCallback successCallback(&aCallback);
|
||||||
GeoPositionErrorCallback errorCallback(aErrorCallback);
|
GeoPositionErrorCallback errorCallback(aErrorCallback);
|
||||||
|
|
||||||
nsresult rv =
|
nsresult rv = GetCurrentPosition(successCallback, errorCallback,
|
||||||
GetCurrentPosition(successCallback, errorCallback,
|
CreatePositionOptionsCopy(aOptions));
|
||||||
GeoPositionOptionsFromPositionOptions(aOptions));
|
|
||||||
|
|
||||||
if (NS_FAILED(rv)) {
|
if (NS_FAILED(rv)) {
|
||||||
aRv.Throw(rv);
|
aRv.Throw(rv);
|
||||||
@ -1214,7 +1212,7 @@ Geolocation::GetCurrentPosition(PositionCallback& aCallback,
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
Geolocation::GetCurrentPosition(nsIDOMGeoPositionCallback* aCallback,
|
Geolocation::GetCurrentPosition(nsIDOMGeoPositionCallback* aCallback,
|
||||||
nsIDOMGeoPositionErrorCallback* aErrorCallback,
|
nsIDOMGeoPositionErrorCallback* aErrorCallback,
|
||||||
idl::GeoPositionOptions* aOptions)
|
PositionOptions* aOptions)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aCallback);
|
NS_ENSURE_ARG_POINTER(aCallback);
|
||||||
|
|
||||||
@ -1227,7 +1225,7 @@ Geolocation::GetCurrentPosition(nsIDOMGeoPositionCallback* aCallback,
|
|||||||
nsresult
|
nsresult
|
||||||
Geolocation::GetCurrentPosition(GeoPositionCallback& callback,
|
Geolocation::GetCurrentPosition(GeoPositionCallback& callback,
|
||||||
GeoPositionErrorCallback& errorCallback,
|
GeoPositionErrorCallback& errorCallback,
|
||||||
idl::GeoPositionOptions *options)
|
PositionOptions *options)
|
||||||
{
|
{
|
||||||
if (mPendingCallbacks.Length() > MAX_GEO_REQUESTS_PER_WINDOW) {
|
if (mPendingCallbacks.Length() > MAX_GEO_REQUESTS_PER_WINDOW) {
|
||||||
return NS_ERROR_NOT_AVAILABLE;
|
return NS_ERROR_NOT_AVAILABLE;
|
||||||
@ -1289,9 +1287,8 @@ Geolocation::WatchPosition(PositionCallback& aCallback,
|
|||||||
GeoPositionCallback successCallback(&aCallback);
|
GeoPositionCallback successCallback(&aCallback);
|
||||||
GeoPositionErrorCallback errorCallback(aErrorCallback);
|
GeoPositionErrorCallback errorCallback(aErrorCallback);
|
||||||
|
|
||||||
nsresult rv =
|
nsresult rv = WatchPosition(successCallback, errorCallback,
|
||||||
WatchPosition(successCallback, errorCallback,
|
CreatePositionOptionsCopy(aOptions), &ret);
|
||||||
GeoPositionOptionsFromPositionOptions(aOptions), &ret);
|
|
||||||
|
|
||||||
if (NS_FAILED(rv)) {
|
if (NS_FAILED(rv)) {
|
||||||
aRv.Throw(rv);
|
aRv.Throw(rv);
|
||||||
@ -1303,7 +1300,7 @@ Geolocation::WatchPosition(PositionCallback& aCallback,
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
Geolocation::WatchPosition(nsIDOMGeoPositionCallback *aCallback,
|
Geolocation::WatchPosition(nsIDOMGeoPositionCallback *aCallback,
|
||||||
nsIDOMGeoPositionErrorCallback *aErrorCallback,
|
nsIDOMGeoPositionErrorCallback *aErrorCallback,
|
||||||
idl::GeoPositionOptions *aOptions,
|
PositionOptions *aOptions,
|
||||||
int32_t* aRv)
|
int32_t* aRv)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aCallback);
|
NS_ENSURE_ARG_POINTER(aCallback);
|
||||||
@ -1317,7 +1314,7 @@ Geolocation::WatchPosition(nsIDOMGeoPositionCallback *aCallback,
|
|||||||
nsresult
|
nsresult
|
||||||
Geolocation::WatchPosition(GeoPositionCallback& aCallback,
|
Geolocation::WatchPosition(GeoPositionCallback& aCallback,
|
||||||
GeoPositionErrorCallback& aErrorCallback,
|
GeoPositionErrorCallback& aErrorCallback,
|
||||||
idl::GeoPositionOptions* aOptions,
|
PositionOptions* aOptions,
|
||||||
int32_t* aRv)
|
int32_t* aRv)
|
||||||
{
|
{
|
||||||
if (mWatchingCallbacks.Length() > MAX_GEO_REQUESTS_PER_WINDOW) {
|
if (mWatchingCallbacks.Length() > MAX_GEO_REQUESTS_PER_WINDOW) {
|
||||||
|
@ -176,8 +176,8 @@ private:
|
|||||||
|
|
||||||
~Geolocation();
|
~Geolocation();
|
||||||
|
|
||||||
nsresult GetCurrentPosition(GeoPositionCallback& aCallback, GeoPositionErrorCallback& aErrorCallback, mozilla::idl::GeoPositionOptions* aOptions);
|
nsresult GetCurrentPosition(GeoPositionCallback& aCallback, GeoPositionErrorCallback& aErrorCallback, PositionOptions* aOptions);
|
||||||
nsresult WatchPosition(GeoPositionCallback& aCallback, GeoPositionErrorCallback& aErrorCallback, mozilla::idl::GeoPositionOptions* aOptions, int32_t* aRv);
|
nsresult WatchPosition(GeoPositionCallback& aCallback, GeoPositionErrorCallback& aErrorCallback, PositionOptions* aOptions, int32_t* aRv);
|
||||||
|
|
||||||
bool RegisterRequestWithPrompt(nsGeolocationRequest* request);
|
bool RegisterRequestWithPrompt(nsGeolocationRequest* request);
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
# Dictionary interface name, interface file name
|
# Dictionary interface name, interface file name
|
||||||
dictionaries = [
|
dictionaries = [
|
||||||
[ 'GeoPositionOptions', 'nsIDOMGeoGeolocation.idl' ],
|
|
||||||
[ 'DOMFileMetadataParameters', 'nsIDOMLockedFile.idl' ],
|
[ 'DOMFileMetadataParameters', 'nsIDOMLockedFile.idl' ],
|
||||||
[ 'CameraSize', 'nsIDOMCameraManager.idl' ],
|
[ 'CameraSize', 'nsIDOMCameraManager.idl' ],
|
||||||
[ 'CameraRegion', 'nsIDOMCameraManager.idl' ],
|
[ 'CameraRegion', 'nsIDOMCameraManager.idl' ],
|
||||||
|
Loading…
Reference in New Issue
Block a user