diff options
Diffstat (limited to 'www-client/torbrowser/files/profile.cfg')
-rw-r--r-- | www-client/torbrowser/files/profile.cfg | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/www-client/torbrowser/files/profile.cfg b/www-client/torbrowser/files/profile.cfg new file mode 100644 index 00000000..d14309ab --- /dev/null +++ b/www-client/torbrowser/files/profile.cfg @@ -0,0 +1,42 @@ +// +const {classes: Cc, interfaces: Ci, utils: Cu} = Components; +Cu.import("resource://gre/modules/Services.jsm"); +Cu.import("resource://gre/modules/FileUtils.jsm"); + +var profileDir = Services.dirsvc.get("ProfD", Ci.nsIFile); +var certDBFile = profileDir.clone(); +certDBFile.append("cert8.db") +// If cert8.db isn't there, it's a new profile +if (!certDBFile.exists()) { + var defaultProfileDir = Services.dirsvc.get("GreD", Ci.nsIFile); + defaultProfileDir.append("defaults"); + defaultProfileDir.append("profile"); + try { + copyDir(defaultProfileDir, profileDir); + } catch (e) { + Components.utils.reportError(e); + } +} + +function copyDir(aOriginal, aDestination) { + var enumerator = aOriginal.directoryEntries; + while (enumerator.hasMoreElements()) { + var file = enumerator.getNext().QueryInterface(Components.interfaces.nsIFile); + if (file.isDirectory()) { + var subdir = aDestination.clone(); + subdir.append(file.leafName); + try { + subdir.create(Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY); + copyDir(file, subdir); + } catch (e) { + Components.utils.reportError(e); + } + } else { + try { + file.copyTo(aDestination, null); + } catch (e) { + Components.utils.reportError(e); + } + } + } +} |