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

Delta Between Two Patch Sets: templates/geckoInfo.js.tmpl

Issue 29542859: Issue 5660 - Check for runtime.getBrowserInfo API support (Closed) Base URL: https://hg.adblockplus.org/buildtools
Left Patch Set: Fall back on UA string Created Sept. 13, 2017, 7:41 a.m.
Right Patch Set: Parse UA string for only version number Created Sept. 14, 2017, 6:04 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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 let exportApplicationInfo = info =>
21 {
22 exports.application = info.name.toLowerCase();
23 exports.applicationVersion = info.version;
24 };
25
26 // Firefox 50 does not support runtime.getBrowserInfo 20 // Firefox 50 does not support runtime.getBrowserInfo
27 if ("getBrowserInfo" in browser.runtime) 21 if ("getBrowserInfo" in browser.runtime)
28 { 22 {
29 browser.runtime.getBrowserInfo().then(exportApplicationInfo); 23 browser.runtime.getBrowserInfo().then(browserInfo =>
24 {
25 exports.application = browserInfo.name.toLowerCase();
26 exports.applicationVersion = browserInfo.version;
27 });
30 } 28 }
31 else 29 else
32 { 30 {
33 // Based on the Firefox UA string reference: 31 let browserInfo = /\bFirefox\/(\S+)/.exec(navigator.userAgent);
34 // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefo x 32 exports.application = "firefox";
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) 33 if (browserInfo)
43 exportApplicationInfo({name: browserInfo[1], version: browserInfo[2]}); 34 exports.applicationVersion = browserInfo[1];
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 } 35 }
LEFTRIGHT
« no previous file | no next file » | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
This is Rietveld