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

Side by Side 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.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 4
5 "use strict"; 5 "use strict";
6 6
7 exports.addonName = {{ basename|json }}; 7 exports.addonName = {{ basename|json }};
8 exports.addonVersion = {{ version|json }}; 8 exports.addonVersion = {{ version|json }};
9 9
10 exports.application = "unknown"; 10 exports.application = "unknown";
11 exports.applicationVersion = "0"; 11 exports.applicationVersion = "0";
12 12
13 exports.platform = "gecko"; 13 exports.platform = "gecko";
14 exports.platformVersion = "0"; 14 exports.platformVersion = "0";
15 15
16 let match = /\brv:(\d+(?:\.\d+)?)\b/.exec(navigator.userAgent); 16 let match = /\brv:(\d+(?:\.\d+)?)\b/.exec(navigator.userAgent);
17 if (match) 17 if (match)
18 exports.platformVersion = match[1]; 18 exports.platformVersion = match[1];
19 19
20 browser.runtime.getBrowserInfo().then(browserInfo => 20 let exportApplicationInfo = info =>
21 { 21 {
22 exports.application = browserInfo.name.toLowerCase(); 22 exports.application = info.name.toLowerCase();
23 exports.applicationVersion = browserInfo.version; 23 exports.applicationVersion = info.version;
24 }); 24 };
25
26 // Firefox 50 does not support runtime.getBrowserInfo
27 if ("getBrowserInfo" in browser.runtime)
28 {
29 browser.runtime.getBrowserInfo().then(exportApplicationInfo);
30 }
31 else
32 {
33 // Based on the Firefox UA string reference:
34 // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefo x
35 // The regular expression here will capture the "appname/appversion" part of
36 // "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail
37 // Firefox/firefoxversion appname/appversion" if present, otherwise it'll
38 // capture "Firefox/firefoxversion"
39 let browserInfo =
40 /\brv:(?:\d+(?:\.\d+)?)\) [^\/]+\/[^ ]+(?: ([^\/]+)\/([^ ]+))+\b/
41 .exec(navigator.userAgent);
42 if (browserInfo)
43 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.
44 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld