Bug 883071 - Don't send opted-out SSIDs when querying Google Location Service. r=dougt

This commit is contained in:
Chris Peterson 2013-06-13 20:20:15 -07:00
parent 44d26ad07a
commit 14bc8b71cf

View File

@ -213,10 +213,15 @@ WifiGeoPositionProvider.prototype = {
if (accessToken !== "")
providerUrl = providerUrl + "&access_token="+accessToken;
function sort(a, b) {
function bySignal(a, b) {
return b.signal - a.signal;
};
function noOptOut(ap) {
let optOut = (ap.ssid === "" || ap.ssid.endsWith("_nomap"));
return !optOut;
};
function encode(ap) {
// make sure that the ssid doesn't contain any | chars.
ap.ssid = ap.ssid.replace("|", "\\|");
@ -225,7 +230,10 @@ WifiGeoPositionProvider.prototype = {
};
if (accessPoints) {
providerUrl = providerUrl + accessPoints.sort(sort).map(encode).join("");
providerUrl += accessPoints.filter(noOptOut)
.sort(bySignal)
.map(encode)
.join("");
}
providerUrl = encodeURI(providerUrl);