From f08dc8ee8b37d9a7dfc8ef83bd987e383111d5ad Mon Sep 17 00:00:00 2001 From: Clochix Date: Tue, 29 Oct 2013 23:07:59 +0100 Subject: [PATCH] Initial commit --- .htaccess | 2 + README.md | 13 ++++ index.html | 23 ++++++ js/stumbler.js | 161 +++++++++++++++++++++++++++++++++++++++ manifest.webapp | 31 ++++++++ package.manifest | 32 ++++++++ stumbler.zip | Bin 0 -> 35052 bytes style/icons/README | 2 + style/icons/icon-128.png | Bin 0 -> 18783 bytes style/icons/icon-30.png | Bin 0 -> 6169 bytes style/icons/icon-60.png | Bin 0 -> 6169 bytes 11 files changed, 264 insertions(+) create mode 100644 .htaccess create mode 100644 README.md create mode 100644 index.html create mode 100644 js/stumbler.js create mode 100644 manifest.webapp create mode 100644 package.manifest create mode 100644 stumbler.zip create mode 100644 style/icons/README create mode 100644 style/icons/icon-128.png create mode 100644 style/icons/icon-30.png create mode 100644 style/icons/icon-60.png diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..b89ca53 --- /dev/null +++ b/.htaccess @@ -0,0 +1,2 @@ +ExpiresByType text/cache-manifest "access plus 0 seconds" +AddType application/x-web-app-manifest+json .webapp diff --git a/README.md b/README.md new file mode 100644 index 0000000..56c9a51 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# FxStumbler + +Firefox OS Stumbler for Mozilla [http://location.services.mozilla.com](). + +This application uses API only available to certified apps. So you can only install it on a developer phone. You need to [enable remote debugging](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings#Remote_debugging) on your phone. + +To push the application to the phone, I [push it from the Firefox OS Simulator](https://developer.mozilla.org/en-US/docs/Tools/Firefox_OS_Simulator#Push_to_device). + + +To create the package, use + + rm stumbler.zip && zip -r stumbler.zip index.html js locales manifest.webapp style + diff --git a/index.html b/index.html new file mode 100644 index 0000000..f299486 --- /dev/null +++ b/index.html @@ -0,0 +1,23 @@ + + + + + + + FxStumbler + + + +

Push location Infos

+

+ + +

+

+

+      
+

+ + diff --git a/js/stumbler.js b/js/stumbler.js new file mode 100644 index 0000000..e309194 --- /dev/null +++ b/js/stumbler.js @@ -0,0 +1,161 @@ +//jshint browser: true +var result; +function log(message) { + "use strict"; + if (typeof message === 'object') { + message = JSON.stringify(message, null, ' '); + } + result.textContent += '[' + new Date().toISOString() + ']' + message + "\n"; +} +function getMobileInfos() { + //jshint maxstatements: 30 + "use strict"; + var options = { + enableHighAccuracy: true, + timeout: 60000, // 1 minute + maximumAge: 0 + }, + items = [], + item = {}; + result.textContent = ''; + + // Cell {{ + function getCellInfos() { + var conn, data, voice, cell = {}; + log("[cell] Getting cell infos"); + try { + conn = window.navigator.mozMobileConnection; + data = conn.data; + voice = conn.voice; + cell.radio = voice.type; + cell.mcc = voice.network.mcc; + cell.mnc = voice.network.mnc; + cell.lac = voice.cell.gsmLocationAreaCode; + cell.cid = voice.cell.gsmCellId; + cell.signal = voice.signalStrength; + cell.asu = undefined; + cell.ta = undefined; + cell.psc = undefined; + log("[cell] Done"); + } catch (e) { + log("[cell] Error : " + e); + } + return cell; + } + // }} + // Wifi {{ + function getWifiInfos(cb) { + var wifi, + request, + networks = []; + + log("[wifi] Getting Wifi infos"); + try { + wifi = navigator.mozWifiManager; + request = wifi.getNetworks(); + request.onsuccess = function () { + log("[wifi] found " + this.result.length + " networks"); + this.result.forEach(function (network) { + var net; + if (!/_nomap/.test(network.ssid)) { + net = { + key: network.bssid, + channel: undefined, + frequency: undefined, + signal: network.signalStrength + }; + networks.push(net); + } + }); + log("[wifi] Done"); + cb(networks); + }; + request.onerror = function (err) { + log('[wifi] Something goes wrong: ' + err); + cb(networks); + }; + } catch (e) { + log('[wifi] Something goes wrong: ' + e); + cb(networks); + } + } + function onWifiInfos(networks) { + item.wifi = networks; + item.cell = [ getCellInfos() ]; + items.push(item); + send(items); + } + // }} + // send {{ + function send() { + var xhr, res, options; + options = { + mozAnon: true, + mozSystem: true + }; + log("Sending…"); + log(items); + try { + xhr = new XMLHttpRequest(options); + xhr.open("POST", "https://location.services.mozilla.com/v1/submit", false); + xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); + xhr.send(JSON.stringify({items: items})); + if (xhr.status === 204) { + log("OK"); + } else { + log("K0"); + try { + log("Error sending datas: "); + res = JSON.parse(xhr.responseText).errors; + res.forEach(function (error) { log(error); }); + } catch (e) { + log('Unable to parse response: ' + e); + } + } + } catch (e) { + log('Error sending datas: ' + e); + } + } + // }} + // Geoloc {{ + function onGeolocSuccess(pos) { + log("[geoloc] Done"); + item.lat = pos.coords.latitude; + item.lon = pos.coords.longitude; + item.accuracy = pos.coords.accuracy; + + getWifiInfos(onWifiInfos); + } + function onGeolocError(err) { + log('[geoloc] Error: ' + err.code + ' : ' + err.message); + log('Aborting.'); + getWifiInfos(onWifiInfos); + } + // }} + + navigator.geolocation.getCurrentPosition(onGeolocSuccess, onGeolocError, options); + + + return false; +} +/* +function install() { + "use strict"; + var manifestUrl = 'http://clochix.net/public/stumbler/package.manifest', + req = navigator.mozApps.installPackage(manifestUrl); + req.onsuccess = function () { + alert(this.result.origin); + }; + req.onerror = function () { + alert(this.error.name); + }; + return false; +} +*/ +window.addEventListener("load", function () { + "use strict"; + result = document.getElementById("result"); + //document.getElementById('install').addEventListener('click', install); + document.getElementById('mobile').addEventListener('click', getMobileInfos); +}); + diff --git a/manifest.webapp b/manifest.webapp new file mode 100644 index 0000000..a57bbed --- /dev/null +++ b/manifest.webapp @@ -0,0 +1,31 @@ +{ + "name": "FxStumbler", + "description": "Client for Mozilla Location Service", + "type": "certified", + "version": "0.1", + "launch_path": "/index.html", + "developer": { + "name": "Clochix", + "url": "https://github.com/clochix/fxstumbler" + }, + "permissions": { + "geolocation": { + "description": "Geo Location" + }, + "mobileconnection":{ + "description": "Access to GSM datas" + }, + "systemXHR":{ + "description": "Send datas" + }, + "wifi-manage":{ + "description": "Access to wifi data" + } + }, + "default_locale": "en-US", + "icons": { + "30": "/style/icons/icon-30.png", + "60": "/style/icons/icon-60.png", + "128": "/style/icons/icon-128.png" + } +} diff --git a/package.manifest b/package.manifest new file mode 100644 index 0000000..ff74db4 --- /dev/null +++ b/package.manifest @@ -0,0 +1,32 @@ +{ + "name": "FxStumbler", + "package_path" : "http://clochix.net/public/stumbler/stumbler.zip", + "description": "Client for Mozilla Location Service", + "type": "certified", + "version": "0.1", + "launch_path": "/index.html", + "developer": { + "name": "Clochix", + "url": "https://github.com/clochix/fxstumbler" + }, + "permissions": { + "geolocation": { + "description": "Geo Location" + }, + "mobileconnection":{ + "description": "Access to GSM datas" + }, + "systemXHR":{ + "description": "Send datas" + }, + "wifi-manage":{ + "description": "Access to wifi data" + } + }, + "default_locale": "en-US", + "icons": { + "30": "/style/icons/icon-30.png", + "60": "/style/icons/icon-60.png", + "128": "/style/icons/icon-128.png" + } +} diff --git a/stumbler.zip b/stumbler.zip new file mode 100644 index 0000000000000000000000000000000000000000..1d2b1eab32c49c9c64c3d095b5f42fe371b1319c GIT binary patch literal 35052 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 literal 0 HcmV?d00001 diff --git a/style/icons/README b/style/icons/README new file mode 100644 index 0000000..93fe6cc --- /dev/null +++ b/style/icons/README @@ -0,0 +1,2 @@ +Source: http://www.iconarchive.com/show/mobile-icons-by-webiconset/maps-icon.html +Licence: Freeware diff --git a/style/icons/icon-128.png b/style/icons/icon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ff9eb76c79de76c104ff84d48126496471ec85 GIT binary patch literal 18783 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