Changeset 991
- Timestamp:
- 07/26/08 03:04:08 (1 month ago)
- Files:
-
- trunk/chrome/content/about/notice.xul (modified) (2 diffs)
- trunk/chrome/content/common/overlayFunctions.js (modified) (1 diff)
- trunk/chrome/content/preferences/prefs.js (modified) (1 diff)
- trunk/components/migrationService.js (modified) (11 diffs)
- trunk/modules/preferences.jsm (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/chrome/content/about/notice.xul
r985 r991 18 18 style="padding: 0px 0px 3px 0px;" 19 19 > 20 <script type="application/javascript" src="chrome://dta/content/common/overlayFunctions.js"/>21 <script type="application/javascript;version=1.7" src="chrome://dta/content/common/internalFunctions.js" />22 20 <script type="application/javascript"><![CDATA[ 23 21 24 22 function load(evt) { 25 23 if (evt.originalTarget.location.href.search(/about\.html$/) != -1) { … … 30 28 } 31 29 function accept() { 30 let Preferences = {}; 31 Components.utils.import('resource://dta/preferences.jsm', Preferences); 32 32 33 var params = window.arguments[0].QueryInterface(Components.interfaces.nsIDialogParamBlock); 33 34 var version = params.GetString(0); 34 DTA_preferences.setDTA('version', version); 35 try { 36 Preferences.setDTA('version', version); 37 } 38 catch (ex) { 39 alert(ex); 40 } 35 41 return true; 36 42 } trunk/chrome/content/common/overlayFunctions.js
r985 r991 74 74 } 75 75 76 // Preferences 77 var DTA_preferences = { 78 _pref: Components.classes['@mozilla.org/preferences-service;1'] 79 .getService(Components.interfaces.nsIPrefBranch), 80 _conv: { 81 'boolean': 'BoolPref', 82 'string': 'CharPref', 83 'number': 'IntPref', 84 'undefined': 'CharPref' 85 }, 86 get: function DP_get(key, def) { 87 if (!this._conv[typeof(def)]) { 88 def = def.toSource(); 89 } 90 try { 91 return this._pref['get' + this._conv[typeof(def)]](key); 92 } catch (ex) { 93 //Components.utils.reportError('DTAP: key miss: ' + key + ' / set' + this._conv[typeof(def)]); 94 //this._pref['set' + this._conv[typeof(def)]](key, def); 95 return def; 96 } 97 }, 98 getDTA: function DP_getDTA(key, def) { 99 return this.get('extensions.dta.' + key, def); 100 }, 101 set: function(key, value) { 102 if (!this._conv[typeof(value)]) { 103 value = value.toSource(); 104 } 105 this._pref['set' + this._conv[typeof(value)]](key, value); 106 }, 107 setDTA: function DP_setDTA(key, value) { 108 return this.set('extensions.dta.' + key, value); 109 }, 110 getMultiByte: function DP_getMultiByte(key, def) { 111 try { 112 var rv = this._pref.getComplexValue( 113 key, 114 Components.interfaces.nsISupportsString 115 ); 116 return rv.data; 117 } 118 catch (ex) { 119 return def; 120 } 121 }, 122 getMultiByteDTA: function DP_getMultiByteDTA(key, def) { 123 return this.getMultiByte('extensions.dta.' + key, def); 124 }, 125 setMultiByte: function DP_setMultiByte(key, value) { 126 var str = Components.classes["@mozilla.org/supports-string;1"] 127 .createInstance(Components.interfaces.nsISupportsString); 128 str.data = value; 129 this._pref.setComplexValue( 130 key, 131 Components.interfaces.nsISupportsString, 132 str 133 ); 134 }, 135 setMultiByteDTA: function DP_setMultiByteDTA(key, value) { 136 this.setMultiByte('extensions.dta.' + key, value); 137 }, 138 reset: function DP_reset(key) { 139 try { 140 return this._pref.clearUserPref(key); 141 } catch (ex) { 142 return false; 143 } 144 }, 145 resetDTA: function DP_resetDTA(key) { 146 if (key.search(/^extensions\.dta\./) != 0) { 147 key = 'extensions.dta.' + key; 148 } 149 return this.reset(key); 150 }, 151 resetBranch: function DP_resetBranch(key) { 152 // BEWARE: not yet implemented in XPCOM 1.8/trunk. 153 var branch = 'extensions.dta.' + key; 154 var c = {value: 0}; 155 var prefs = this._pref.getChildList(branch, c); 156 for (var i = 0; i < c.value; ++i) { 157 this.resetDTA(prefs[i]); 158 } 159 }, 160 resetAll: function DP_reset() { 161 this.resetBranch(''); 162 }, 163 addObserver: function DP_addObserver(branch, obj) { 164 this._pref 165 .QueryInterface(Components.interfaces.nsIPrefBranch2) 166 .addObserver(branch, obj, true); 167 }, 168 removeObserver: function DP_removeObserver(branch, obj) { 169 this._pref 170 .QueryInterface(Components.interfaces.nsIPrefBranch2) 171 .removeObserver(branch, obj); 172 } 173 }; 76 77 var DTA_preferences = {}; 78 Components.utils.import('resource://dta/preferences.jsm', DTA_preferences); 174 79 175 80 function DTA_getProfileFile(fileName) { trunk/chrome/content/preferences/prefs.js
r990 r991 431 431 } 432 432 try { 433 Preferences.resetAll ();433 Preferences.resetAllDTA(); 434 434 } catch(ex) { 435 435 // XXX trunk/components/migrationService.js
r988 r991 42 42 include('chrome://dta/content/common/xpcom.jsm'); 43 43 44 var Preferences = {}; 45 44 46 var MigrationService = { 45 47 _init: function MM_init() { … … 53 55 let DTA = {}; 54 56 Components.utils.import('resource://dta/version.jsm', DTA); 57 Components.utils.import('resource://dta/preferences.jsm', Preferences); 55 58 include("chrome://dta/content/common/overlayFunctions.js"); 56 59 57 60 try { 58 61 debug("current " + DTA.VERSION); 59 var vc = C omponents.classes["@mozilla.org/xpcom/version-comparator;1"]60 .getService(C omponents.interfaces.nsIVersionComparator);62 var vc = Cc["@mozilla.org/xpcom/version-comparator;1"] 63 .getService(Ci.nsIVersionComparator); 61 64 62 var lastVersion = DTA_preferences.getDTA('version', '0');65 var lastVersion = Preferences.getDTA('version', '0'); 63 66 if (0 == vc.compare(DTA.VERSION, lastVersion)) { 64 67 return; … … 88 91 debug("MigrationManager:", ex); 89 92 try { 90 DTA_preferences.resetDTA("version");93 Preferences.resetDTA("version"); 91 94 } 92 95 catch (ex) { … … 101 104 } 102 105 catch (ex) { 103 error('MigrationManager: failed to migrate ' + e + ", " +ex);106 debug('MigrationManager: failed to migrate ' + e, ex); 104 107 } 105 108 } … … 131 134 ['numistance', 'counter', 0] 132 135 ]; 133 for each (let e in toMigrate) { 134 try { 135 let oldName = e[0], newName = e[1], defaultValue = null; 136 if (e.length == 3) { 137 defaultValue = e[2]; 138 } 139 let nv = DTA_preferences.getDTA(newName, defaultValue); 140 let ov = DTA_preferences.getDTA(oldName, nv); 136 for each (let [oldName, newName, defaultValue] in toMigrate) { 137 try { 138 let nv = Preferences.getDTA(newName, defaultValue); 139 let ov = Preferences.getDTA(oldName, nv); 141 140 if (ov != nv) { 142 DTA_preferences.setDTA(newName, ov); 143 } 144 } 145 catch (ex) { 146 error('MM: failed ' + newName + ", " + ex); 141 Preferences.setDTA(newName, ov); 142 } 143 Preferences.reset(oldName); 144 } 145 catch (ex) { 146 debug('MM: failed ' + newName + ", ", ex); 147 147 } 148 148 } … … 152 152 _migrateResetMaxConnections: function() { 153 153 debug("resetting connection prefs"); 154 ['network.http.max-connections', 'network.http.max-connections-per-server', 'network.http.max-persistent-connections-per-server'].forEach( 155 function(e) { 156 DTA_preferences.reset(e); 157 } 158 ); 154 for each (let e in ['network.http.max-connections', 'network.http.max-connections-per-server', 'network.http.max-persistent-connections-per-server']) { 155 Preferences.reset(e); 156 } 159 157 }, 160 158 … … 185 183 var name = 'context.' + children[i].slice(0, -8); 186 184 try { 187 var reg = DTA_preferences.getMultiByteDTA(name + '.filter', '');185 var reg = Preferences.getMultiByteDTA(name + '.filter', ''); 188 186 if (-1 != defFilters.indexOf(reg) || !reg.length) { 189 187 continue; 190 188 } 191 var label = DTA_preferences.getMultiByteDTA(name + '.caption', 'imported');192 var active = DTA_preferences.getDTA(name + '.checked', false);189 var label = Preferences.getMultiByteDTA(name + '.caption', 'imported'); 190 var active = Preferences.getDTA(name + '.checked', false); 193 191 var type = 0; 194 if ( DTA_preferences.getDTA(name + '.isImageFilter', false)) {192 if (Preferences.getDTA(name + '.isImageFilter', false)) { 195 193 type |= IMAGE_FILTER; 196 194 } 197 if ( DTA_preferences.getDTA(name + '.isLinkFilter', false)) {195 if (Preferences.getDTA(name + '.isLinkFilter', false)) { 198 196 type |= LINK_FILTER; 199 197 } … … 201 199 } 202 200 catch (ex) { 203 error("failed to migrate filter," +ex);201 debug("failed to migrate filter", ex); 204 202 } 205 203 } … … 211 209 for each (let e in ['renaming', 'filter', 'directory']) { 212 210 try { 213 DTA_preferences.resetDTA(e);211 Preferences.resetDTA(e); 214 212 } 215 213 catch (ex) { … … 217 215 } 218 216 try { 219 let cv = DTA_preferences.getMultiByteDTA('dropdown.' + e + '-history', null);217 let cv = Preferences.getMultiByteDTA('dropdown.' + e + '-history', null); 220 218 if (cv == null) { 221 219 return; 222 220 } 223 221 cv = cv.split('|@|'); 224 DTA_preferences.setMultiByteDTA(e, cv.toSource());225 } 226 catch (ex) { 227 error("failed to migrate dropdown " + e + ", " +ex);222 Preferences.setMultiByteDTA(e, cv.toSource()); 223 } 224 catch (ex) { 225 debug("failed to migrate dropdown " + e, ex); 228 226 } 229 227 } … … 232 230 // all: remove all prefs 233 231 _migrateRemove: function MM_migrateRemove() { 234 ['context.', 'tool.', 'dropdown.', 'windows.', 'rename.'].forEach(function(e) { DTA_preferences.resetBranch(e); }); 232 for each (let e in ['context.', 'tool.', 'dropdown.', 'windows.', 'rename.']) { 233 Preferences.resetBranchDTA(e); 234 } 235 235 }, 236 236
