forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| # 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/.
 | |
| 
 | |
| // We wastefully reload the same JS files across components.  This puts all
 | |
| // the common JS files used by safebrowsing and url-classifier into a
 | |
| // single component.
 | |
| 
 | |
| const Cc = Components.classes;
 | |
| const Ci = Components.interfaces;
 | |
| const G_GDEBUG = false;
 | |
| 
 | |
| Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 | |
| 
 | |
| #include ./content/moz/lang.js
 | |
| #include ./content/moz/preferences.js
 | |
| #include ./content/moz/debug.js
 | |
| #include ./content/moz/alarm.js
 | |
| #include ./content/moz/cryptohasher.js
 | |
| #include ./content/moz/observer.js
 | |
| #include ./content/moz/protocol4.js
 | |
| 
 | |
| #include ./content/request-backoff.js
 | |
| #include ./content/xml-fetcher.js
 | |
| 
 | |
| // Wrap a general-purpose |RequestBackoff| to a v4-specific one
 | |
| // since both listmanager and hashcompleter would use it.
 | |
| // Note that |maxRequests| and |requestPeriod| is still configurable
 | |
| // to throttle pending requests.
 | |
| function RequestBackoffV4(maxRequests, requestPeriod) {
 | |
|   let rand = Math.random();
 | |
|   let retryInterval = Math.floor(15 * 60 * 1000 * (rand + 1));   // 15 ~ 30 min.
 | |
|   let backoffInterval = Math.floor(30 * 60 * 1000 * (rand + 1)); // 30 ~ 60 min.
 | |
| 
 | |
|   return new RequestBackoff(2 /* max errors */,
 | |
|                 retryInterval /* retry interval, 15~30 min */,
 | |
|                   maxRequests /* num requests */,
 | |
|                 requestPeriod /* request time, 60 min */,
 | |
|               backoffInterval /* backoff interval, 60 min */,
 | |
|           24 * 60 * 60 * 1000 /* max backoff, 24hr */);
 | |
| }
 | |
| 
 | |
| // Expose this whole component.
 | |
| var lib = this;
 | |
| 
 | |
| function UrlClassifierLib() {
 | |
|   this.wrappedJSObject = lib;
 | |
| }
 | |
| UrlClassifierLib.prototype.classID = Components.ID("{26a4a019-2827-4a89-a85c-5931a678823a}");
 | |
| UrlClassifierLib.prototype.QueryInterface = XPCOMUtils.generateQI([]);
 | |
| 
 | |
| this.NSGetFactory = XPCOMUtils.generateNSGetFactory([UrlClassifierLib]);
 | 
