Index: browser/components/microsummaries/src/nsMicrosummaryService.js.in =================================================================== RCS file: /cvsroot/mozilla/browser/components/microsummaries/src/nsMicrosummaryService.js.in,v retrieving revision 1.1.2.12 diff -u -8 -p -r1.1.2.12 nsMicrosummaryService.js.in --- browser/components/microsummaries/src/nsMicrosummaryService.js.in 19 Jun 2006 23:16:10 -0000 1.1.2.12 +++ browser/components/microsummaries/src/nsMicrosummaryService.js.in 21 Jun 2006 06:27:28 -0000 @@ -39,20 +39,16 @@ const Ci = Components.interfaces; const PERMS_FILE = 0644; const MODE_WRONLY = 0x02; const MODE_TRUNCATE = 0x20; const NS_ERROR_MODULE_DOM = 2152923136; const NS_ERROR_DOM_BAD_URI = NS_ERROR_MODULE_DOM + 1012; -// How often to update microsummaries, in milliseconds. -// XXX Make this a hidden pref so power users can modify it. -const UPDATE_INTERVAL = 30 * 60 * 1000; // 30 minutes - // How often to check for microsummaries that need updating, in milliseconds. const CHECK_INTERVAL = 15 * 1000; // 15 seconds const MICSUM_NS = new Namespace("http://www.mozilla.org/microsummaries/0.1"); const XSLT_NS = new Namespace("http://www.w3.org/1999/XSL/Transform"); #ifdef MOZ_PLACES const FIELD_MICSUM_GEN_URI = "microsummary/generatorURI"; @@ -133,16 +129,25 @@ MicrosummaryService.prototype = { // Observer Service __obs: null, get _obs() { if (!this.__obs) this.__obs = Cc["@mozilla.org/observer-service;1"]. getService(Ci.nsIObserverService); return this.__obs; }, + + // Preference Service + __ps: null, + get _ps() { + if (!this.__ps) + this.__ps = Cc["@mozilla.org/preferences-service;1"]. + getService(Ci.nsIPrefBranch); + return this.__ps; + }, /** * Make a URI from a spec. * @param spec * The string spec of the URI. * @returns An nsIURI object. */ _uri: function MSS__uri(spec) { @@ -175,16 +180,34 @@ MicrosummaryService.prototype = { __dirs: null, get _dirs() { if (!this.__dirs) this.__dirs = Cc["@mozilla.org/file/directory_service;1"]. getService(Ci.nsIProperties); return this.__dirs; }, + // How often to update microsummaries, in milliseconds. Note that the pref. + // takes a time in minutes, though. + get _updateInterval() { + var mins; + try { + mins = + this._pb.getIntPref("browser.bookmarks.microsummary.updateInterval"); + // We're not going to update any more than once a minute. + if (mins < 1) + mins = 1; + } + catch (ex) { + // Default to 30 minutes. + mins = 30; + } + return mins * 60 * 1000; + }, + // A cache of local microsummary generators. This gets built on startup // by the _cacheLocalGenerators() method. _localGenerators: {}, // The timer that periodically checks for microsummaries needing updating. _timer: null, // Interfaces this component implements. @@ -266,17 +289,17 @@ MicrosummaryService.prototype = { this.refreshMicrosummary(bookmarkID); } }, _updateMicrosummary: function MSS__updateMicrosummary(bookmarkID, microsummary) { this._setField(bookmarkID, FIELD_GENERATED_TITLE, microsummary.content); var now = new Date().getTime(); - this._setField(bookmarkID, FIELD_MICSUM_EXPIRATION, now + UPDATE_INTERVAL); + this._setField(bookmarkID, FIELD_MICSUM_EXPIRATION, now + this._updateInterval); LOG("updated microsummary for page " + microsummary.pageURI.spec + " to " + microsummary.content); }, /** * Load local generators into the cache. * @@ -749,17 +772,17 @@ MicrosummaryService.prototype = { this._setField(bookmarkID, FIELD_MICSUM_GEN_URI, microsummary.generatorURI.spec); // If the microsummary content has already been generated, // set the URI's generated title to the microsummary content // and expire the microsummary after the normal interval. if (microsummary.content) { var now = new Date().getTime(); this._setField(bookmarkID, FIELD_GENERATED_TITLE, microsummary.content); - this._setField(bookmarkID, FIELD_MICSUM_EXPIRATION, now + UPDATE_INTERVAL); + this._setField(bookmarkID, FIELD_MICSUM_EXPIRATION, now + this._updateInterval); } // Otherwise, expire the microsummary and update it immediately. else { if (this._hasField(bookmarkID, FIELD_MICSUM_EXPIRATION)) this._clearField(bookmarkID, FIELD_MICSUM_EXPIRATION); microsummary.addObserver(this); microsummary.update();