install userChrome.css using autoconfig instead of schell scripts (MR 2)
Firefox can run an autoconfig Javascript on startup, which can be used to install and update userChrome.css, both when creating a new profile and using a pre-existing one. This removes the need for a wrapper script and related complications (changes to $PATH, different processing for new and pre-existing profiles...) Co-Authored-By: Oliver Smith <ollieparanoid@postmarketos.org>
This commit is contained in:
		
							parent
							
								
									08e2288138
								
							
						
					
					
						commit
						712b850c3b
					
				
					 5 changed files with 39 additions and 46 deletions
				
			
		
							
								
								
									
										33
									
								
								src/mobile-config-autoconfig.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/mobile-config-autoconfig.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
// Copyright 2020 Arnaud Ferraris, Oliver Smith
 | 
			
		||||
// SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
 | 
			
		||||
// This is a Firefox autoconfig file:
 | 
			
		||||
// https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig
 | 
			
		||||
 | 
			
		||||
// Import custom userChrome.css on startup or new profile creation
 | 
			
		||||
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 | 
			
		||||
Cu.import("resource://gre/modules/Services.jsm");
 | 
			
		||||
Cu.import("resource://gre/modules/FileUtils.jsm");
 | 
			
		||||
 | 
			
		||||
// Create <profile>/chrome/ directory if not already present
 | 
			
		||||
var chromeDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
 | 
			
		||||
chromeDir.append("chrome");
 | 
			
		||||
if (!chromeDir.exists()) {
 | 
			
		||||
  chromeDir.create(Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Create nsIFile objects for userChrome.css in <profile>/chrome/ and in /etc/
 | 
			
		||||
var chromeFile = chromeDir.clone();
 | 
			
		||||
chromeFile.append("userChrome.css");
 | 
			
		||||
var defaultChrome = new FileUtils.File("/etc/mobile-config-firefox/userChrome.css");
 | 
			
		||||
 | 
			
		||||
// Remove the existing userChrome.css if older than the installed one
 | 
			
		||||
if (chromeFile.exists() && defaultChrome.exists() &&
 | 
			
		||||
    chromeFile.lastModifiedTime < defaultChrome.lastModifiedTime) {
 | 
			
		||||
  chromeFile.remove(false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Copy userChrome.css to <profile>/chrome/
 | 
			
		||||
if (!chromeFile.exists()) {
 | 
			
		||||
  defaultChrome.copyTo(chromeDir, "userChrome.css");
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue