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