mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backing out dougt. a=orange
This commit is contained in:
commit
08f7f154d1
@ -512,27 +512,22 @@ ContentParent::RecvAsyncMessage(const nsString& aMsg, const nsString& aJSON)
|
||||
bool
|
||||
ContentParent::RecvGeolocationStart()
|
||||
{
|
||||
if (mGeolocationWatchID == -1) {
|
||||
nsCOMPtr<nsIDOMGeoGeolocation> geo = do_GetService("@mozilla.org/geolocation;1");
|
||||
if (!geo) {
|
||||
return true;
|
||||
}
|
||||
geo->WatchPosition(this, nsnull, nsnull, &mGeolocationWatchID);
|
||||
nsCOMPtr<nsIDOMGeoGeolocation> geo = do_GetService("@mozilla.org/geolocation;1");
|
||||
if (!geo) {
|
||||
return true;
|
||||
}
|
||||
geo->WatchPosition(this, nsnull, nsnull, &mGeolocationWatchID);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
ContentParent::RecvGeolocationStop()
|
||||
{
|
||||
if (mGeolocationWatchID != -1) {
|
||||
nsCOMPtr<nsIDOMGeoGeolocation> geo = do_GetService("@mozilla.org/geolocation;1");
|
||||
if (!geo) {
|
||||
return true;
|
||||
}
|
||||
geo->ClearWatch(mGeolocationWatchID);
|
||||
mGeolocationWatchID = -1;
|
||||
nsCOMPtr<nsIDOMGeoGeolocation> geo = do_GetService("@mozilla.org/geolocation;1");
|
||||
if (!geo) {
|
||||
return true;
|
||||
}
|
||||
geo->ClearWatch(mGeolocationWatchID);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -741,11 +741,6 @@ nsGeolocationService::StartDevice()
|
||||
if (!sGeoEnabled)
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
// we do not want to keep the geolocation devices online
|
||||
// indefinitely. Close them down after a reasonable period of
|
||||
// inactivivity
|
||||
SetDisconnectTimer();
|
||||
|
||||
#ifdef MOZ_IPC
|
||||
if (XRE_GetProcessType() == GeckoProcessType_Content) {
|
||||
ContentChild* cpc = ContentChild::GetSingleton();
|
||||
@ -755,18 +750,26 @@ nsGeolocationService::StartDevice()
|
||||
#endif
|
||||
|
||||
// Start them up!
|
||||
nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
|
||||
if (!obs)
|
||||
return NS_ERROR_FAILURE;
|
||||
nsresult rv = NS_ERROR_NOT_AVAILABLE;
|
||||
for (PRUint32 i = mProviders.Count() - 1; i != PRUint32(-1); --i) {
|
||||
// If any provder gets started without error, go ahead
|
||||
// and proceed without error
|
||||
nsresult temp = mProviders[i]->Startup();
|
||||
if (NS_SUCCEEDED(temp)) {
|
||||
rv = NS_OK;
|
||||
|
||||
for (PRUint32 i = 0; i < mProviders.Count(); i++) {
|
||||
mProviders[i]->Startup();
|
||||
mProviders[i]->Watch(this);
|
||||
obs->NotifyObservers(mProviders[i],
|
||||
"geolocation-device-events",
|
||||
NS_LITERAL_STRING("starting").get());
|
||||
mProviders[i]->Watch(this);
|
||||
}
|
||||
}
|
||||
|
||||
if (NS_FAILED(rv))
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
// we do not want to keep the geolocation devices online
|
||||
// indefinitely. Close them down after a reasonable period of
|
||||
// inactivivity
|
||||
SetDisconnectTimer();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -799,15 +802,8 @@ nsGeolocationService::StopDevice()
|
||||
}
|
||||
#endif
|
||||
|
||||
nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
|
||||
if (!obs)
|
||||
return;
|
||||
|
||||
for (PRUint32 i = 0; i <mProviders.Count(); i++) {
|
||||
for (PRUint32 i = mProviders.Count() - 1; i != PRUint32(-1); --i) {
|
||||
mProviders[i]->Shutdown();
|
||||
obs->NotifyObservers(mProviders[i],
|
||||
"geolocation-device-events",
|
||||
NS_LITERAL_STRING("shutdown").get());
|
||||
}
|
||||
}
|
||||
|
||||
@ -948,11 +944,7 @@ nsGeolocation::Shutdown()
|
||||
PRBool
|
||||
nsGeolocation::HasActiveCallbacks()
|
||||
{
|
||||
for (PRUint32 i = 0; i < mWatchingCallbacks.Length(); i++)
|
||||
if (mWatchingCallbacks[i]->IsActive())
|
||||
return PR_TRUE;
|
||||
|
||||
return PR_FALSE;
|
||||
return mWatchingCallbacks.Length() != 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -97,7 +97,6 @@ class nsGeolocationRequest
|
||||
|
||||
void SendLocation(nsIDOMGeoPosition* location);
|
||||
void MarkCleared();
|
||||
PRBool IsActive() {return !mCleared;}
|
||||
PRBool Allowed() {return mAllowed;}
|
||||
void SetTimeoutTimer();
|
||||
|
||||
|
@ -1,41 +0,0 @@
|
||||
|
||||
const Ci = Components.interfaces;
|
||||
const Cc = Components.classes;
|
||||
|
||||
function successCallback(pos){}
|
||||
|
||||
var observer = {
|
||||
QueryInterface: function(iid) {
|
||||
if (iid.equals(Components.interfaces.nsISupports) ||
|
||||
iid.equals(Components.interfaces.nsIObserver))
|
||||
return this;
|
||||
throw Components.results.NS_ERROR_NO_INTERFACE;
|
||||
},
|
||||
|
||||
observe: function(subject, topic, data) {
|
||||
if (data == "shutdown") {
|
||||
do_check_true(1)
|
||||
do_test_finished();
|
||||
}
|
||||
else if (data == "starting") {
|
||||
do_check_true(1)
|
||||
}
|
||||
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
function run_test()
|
||||
{
|
||||
// only kill this test when shutdown is called on the provider.
|
||||
do_test_pending();
|
||||
|
||||
var obs = Cc["@mozilla.org/observer-service;1"].getService();
|
||||
obs = obs.QueryInterface(Ci.nsIObserverService);
|
||||
obs.addObserver(observer, "geolocation-device-events", false);
|
||||
|
||||
var geolocation = Cc["@mozilla.org/geolocation;1"].getService(Ci.nsIDOMGeoGeolocation);
|
||||
var watchID = geolocation.watchPosition(successCallback);
|
||||
do_timeout(1000, function() { geolocation.clearWatch(watchID);})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user