forked from mirrors/gecko-dev
		
	 291cb6e01b
			
		
	
	
		291cb6e01b
		
	
	
	
	
		
			
			Backed out changeset ad8486907154 (bug 1357641) Backed out changeset 3eb9c03bd0cd (bug 1357641) MozReview-Commit-ID: DuESQH4FecO
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 | |
| /* 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/. */
 | |
| "use strict";
 | |
| 
 | |
| const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 | |
| Cu.import("resource://gre/modules/Services.jsm");
 | |
| Cu.import("resource://gre/modules/Preferences.jsm");
 | |
| 
 | |
| const PREF_WHITELIST = [
 | |
|   "browser.onboarding.enabled",
 | |
|   "browser.onboarding.hidden",
 | |
|   "browser.onboarding.notification.finished"
 | |
| ];
 | |
| 
 | |
| /**
 | |
|  * Set pref. Why no `getPrefs` function is due to the priviledge level.
 | |
|  * We cannot set prefs inside a framescript but can read.
 | |
|  * For simplicity and effeciency, we still read prefs inside the framescript.
 | |
|  *
 | |
|  * @param {Array} prefs the array of prefs to set.
 | |
|  *   The array element carrys info to set pref, should contain
 | |
|  *   - {String} name the pref name, such as `browser.onboarding.hidden`
 | |
|  *   - {*} value the value to set
 | |
|  **/
 | |
| function setPrefs(prefs) {
 | |
|   prefs.forEach(pref => {
 | |
|     if (PREF_WHITELIST.includes(pref.name)) {
 | |
|       Preferences.set(pref.name, pref.value);
 | |
|     }
 | |
|   });
 | |
| }
 | |
| 
 | |
| function initContentMessageListener() {
 | |
|   Services.mm.addMessageListener("Onboarding:OnContentMessage", msg => {
 | |
|     switch (msg.data.action) {
 | |
|       case "set-prefs":
 | |
|         setPrefs(msg.data.params);
 | |
|         break;
 | |
|     }
 | |
|   });
 | |
| }
 | |
| 
 | |
| function install(aData, aReason) {}
 | |
| 
 | |
| function uninstall(aData, aReason) {}
 | |
| 
 | |
| function startup(aData, reason) {
 | |
|   Services.mm.loadFrameScript("resource://onboarding/onboarding.js", true);
 | |
|   initContentMessageListener();
 | |
| }
 | |
| 
 | |
| function shutdown(aData, reason) {}
 |