mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-09-10 11:54:40 +00:00
80 lines
2.3 KiB
JavaScript
80 lines
2.3 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/. */
|
|
|
|
'use strict';
|
|
|
|
const {classes: Cc, interfaces: Ci, utils: Cu, manager: Cm} = Components;
|
|
|
|
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
|
|
|
const cid = '{17a84227-28f4-453d-9b80-9ae75a5682e0}';
|
|
const contractId = '@mozilla.org/test-update-provider;1';
|
|
|
|
function TestUpdateProvider() {}
|
|
TestUpdateProvider.prototype = {
|
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsISystemUpdateProvider]),
|
|
|
|
checkForUpdate: function() {
|
|
dump('check for update');
|
|
this._listener.onUpdateAvailable('test-type', 'test-version', 'test-description', Date.now().valueOf(), 5566);
|
|
},
|
|
|
|
startDownload: function() {
|
|
dump('test start download');
|
|
this._listener.onProgress(10, 100);
|
|
},
|
|
|
|
stopDownload: function() {
|
|
dump('test stop download');
|
|
},
|
|
|
|
applyUpdate: function() {
|
|
dump('apply update');
|
|
},
|
|
|
|
setParameter: function(name, value) {
|
|
dump('set parameter');
|
|
return (name === 'dummy' && value === 'dummy-value');
|
|
},
|
|
|
|
getParameter: function(name) {
|
|
dump('get parameter');
|
|
if (name === 'dummy') {
|
|
return 'dummy-value';
|
|
}
|
|
},
|
|
|
|
setListener: function(listener) {
|
|
this._listener = listener;
|
|
},
|
|
|
|
unsetListener: function() {
|
|
this._listener = null;
|
|
},
|
|
};
|
|
|
|
var factory = {
|
|
createInstance: function(outer, iid) {
|
|
if (outer) {
|
|
throw Components.results.NS_ERROR_NO_AGGREGATION;
|
|
}
|
|
|
|
return new TestUpdateProvider().QueryInterface(iid);
|
|
},
|
|
lockFactory: function(aLock) {
|
|
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
|
|
},
|
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsIFactory])
|
|
};
|
|
|
|
Cm.nsIComponentRegistrar.registerFactory(Components.ID(cid), '', contractId, factory);
|
|
|
|
var cm = Cc['@mozilla.org/categorymanager;1'].getService(Ci.nsICategoryManager);
|
|
cm.addCategoryEntry('system-update-provider', 'DummyProvider',
|
|
contractId + ',' + cid, false, true);
|
|
|
|
Cu.import('resource://gre/modules/SystemUpdateService.jsm');
|
|
this.SystemUpdateService.addProvider('{17a84227-28f4-453d-9b80-9ae75a5682e0}',
|
|
'@mozilla.org/test-update-provider;1',
|
|
'DummyProvider'); |