forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* 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 main, browser, catcher, log */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| this.analytics = (function () {
 | |
|   const exports = {};
 | |
| 
 | |
|   let telemetryEnabled;
 | |
| 
 | |
|   exports.incrementCount = function (scalar) {
 | |
|     const allowedScalars = [
 | |
|       "download",
 | |
|       "upload",
 | |
|       "copy",
 | |
|       "visible",
 | |
|       "full_page",
 | |
|       "custom",
 | |
|       "element",
 | |
|     ];
 | |
|     if (!allowedScalars.includes(scalar)) {
 | |
|       const err = `incrementCount passed an unrecognized scalar ${scalar}`;
 | |
|       log.warn(err);
 | |
|       return Promise.resolve();
 | |
|     }
 | |
|     return browser.telemetry
 | |
|       .scalarAdd(`screenshots.${scalar}`, 1)
 | |
|       .catch(err => {
 | |
|         log.warn(`incrementCount failed with error: ${err}`);
 | |
|       });
 | |
|   };
 | |
| 
 | |
|   exports.refreshTelemetryPref = function () {
 | |
|     return browser.telemetry.canUpload().then(
 | |
|       result => {
 | |
|         telemetryEnabled = result;
 | |
|       },
 | |
|       error => {
 | |
|         // If there's an error reading the pref, we should assume that we shouldn't send data
 | |
|         telemetryEnabled = false;
 | |
|         throw error;
 | |
|       }
 | |
|     );
 | |
|   };
 | |
| 
 | |
|   exports.isTelemetryEnabled = function () {
 | |
|     catcher.watchPromise(exports.refreshTelemetryPref());
 | |
|     return telemetryEnabled;
 | |
|   };
 | |
| 
 | |
|   return exports;
 | |
| })();
 | 
