Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: templates/geckoInfo.js.tmpl

Issue 29542859: Issue 5660 - Check for runtime.getBrowserInfo API support (Closed) Base URL: https://hg.adblockplus.org/buildtools
Patch Set: Fall back on UA string Created Sept. 13, 2017, 7:41 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: templates/geckoInfo.js.tmpl
===================================================================
--- a/templates/geckoInfo.js.tmpl
+++ b/templates/geckoInfo.js.tmpl
@@ -12,13 +12,33 @@
exports.platform = "gecko";
exports.platformVersion = "0";
let match = /\brv:(\d+(?:\.\d+)?)\b/.exec(navigator.userAgent);
if (match)
exports.platformVersion = match[1];
-browser.runtime.getBrowserInfo().then(browserInfo =>
+let exportApplicationInfo = info =>
+{
+ exports.application = info.name.toLowerCase();
+ exports.applicationVersion = info.version;
+};
+
+// Firefox 50 does not support runtime.getBrowserInfo
+if ("getBrowserInfo" in browser.runtime)
+{
+ browser.runtime.getBrowserInfo().then(exportApplicationInfo);
+}
+else
{
- exports.application = browserInfo.name.toLowerCase();
- exports.applicationVersion = browserInfo.version;
-});
+ // Based on the Firefox UA string reference:
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
+ // The regular expression here will capture the "appname/appversion" part of
+ // "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail
+ // Firefox/firefoxversion appname/appversion" if present, otherwise it'll
+ // capture "Firefox/firefoxversion"
+ let browserInfo =
+ /\brv:(?:\d+(?:\.\d+)?)\) [^\/]+\/[^ ]+(?: ([^\/]+)\/([^ ]+))+\b/
+ .exec(navigator.userAgent);
+ if (browserInfo)
+ exportApplicationInfo({name: browserInfo[1], version: browserInfo[2]});
Sebastian Noack 2017/09/13 17:38:01 There is only one application this code is possibl
Manish Jethani 2017/09/14 04:27:11 Hypothetically, suppose other Gecko-based browsers
Sebastian Noack 2017/09/14 04:33:41 This would only be relevant in the unlikely case t
Manish Jethani 2017/09/14 06:06:50 Done.
+}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld