Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
/* globals catcher, browser, navigator */
"use strict";
this.deviceInfo = (function () {
const manifest = browser.runtime.getManifest();
let platformInfo = {};
catcher.watchPromise(
browser.runtime.getPlatformInfo().then(info => {
platformInfo = info;
})
);
return function deviceInfo() {
let match = navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9.]{1,1000})/);
const chromeVersion = match ? match[1] : null;
match = navigator.userAgent.match(/Firefox\/([0-9.]{1,1000})/);
const firefoxVersion = match ? match[1] : null;
const appName = chromeVersion ? "chrome" : "firefox";
return {
addonVersion: manifest.version,
platform: platformInfo.os,
architecture: platformInfo.arch,
version: firefoxVersion || chromeVersion,
// These don't seem to apply to Chrome:
// build: system.build,
// platformVersion: system.platformVersion,
userAgent: navigator.userAgent,
appVendor: appName,
appName,
};
};
})();