dom/tests/browser/network_geolocation.sjs

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 function parseQueryString(str)
     2 {
     3   if (str == "")
     4     return {};
     6   var paramArray = str.split("&");
     7   var regex = /^([^=]+)=(.*)$/;
     8   var params = {};
     9   for (var i = 0, sz = paramArray.length; i < sz; i++)
    10   {
    11     var match = regex.exec(paramArray[i]);
    12     if (!match)
    13       throw "Bad parameter in queryString!  '" + paramArray[i] + "'";
    14     params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);
    15   }
    17   return params;
    18 }
    20 function getPosition(expectedAccessToken, providedAccessToken, desiredAccessToken)
    21 {  
    22   var response = {
    23     status: "OK",
    24     location: {
    25       lat: providedAccessToken ?
    26              (expectedAccessToken == providedAccessToken ? 200 : 404) : 200,
    27       lng: -122.08769,
    28     },
    29     accuracy: 100,
    30     access_token: desiredAccessToken
    31   };
    33   return JSON.stringify(response);
    34 }
    36 function handleRequest(request, response)
    37 {
    38   var params = parseQueryString(request.queryString);
    40   response.setStatusLine("1.0", 200, "OK");
    41   response.setHeader("Cache-Control", "no-cache", false);
    42   response.setHeader("Content-Type", "aplication/x-javascript", false);
    43   response.write(getPosition(params.expected_access_token, params.access_token,
    44                              params.desired_access_token));
    45 }

mercurial