зеркало из https://github.com/mozilla/gecko-dev.git
68 строки
2.1 KiB
JavaScript
68 строки
2.1 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/. */
|
||
|
|
||
|
/**
|
||
|
* This component triggers an app update check even when system updates are
|
||
|
* disabled to make sure we always check for app updates.
|
||
|
*/
|
||
|
|
||
|
"use strict";
|
||
|
|
||
|
const Cc = Components.classes;
|
||
|
const Ci = Components.interfaces;
|
||
|
const Cu = Components.utils;
|
||
|
|
||
|
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||
|
Cu.import("resource://gre/modules/Services.jsm");
|
||
|
Cu.import("resource://gre/modules/WebappsUpdater.jsm");
|
||
|
|
||
|
function debug(aStr) {
|
||
|
//dump("--*-- WebappsUpdateTimer: " + aStr);
|
||
|
}
|
||
|
|
||
|
function WebappsUpdateTimer() {
|
||
|
}
|
||
|
|
||
|
WebappsUpdateTimer.prototype = {
|
||
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsITimerCallback]),
|
||
|
classID: Components.ID("{637b0f77-2429-49a0-915f-abf5d0db8b9a}"),
|
||
|
|
||
|
notify: function(aTimer) {
|
||
|
try {
|
||
|
// We want to check app updates if system updates are disabled or
|
||
|
// if they update frecency is not daily.
|
||
|
if (Services.prefs.getBoolPref("app.update.enabled") === true &&
|
||
|
Services.prefs.getIntPref("app.update.interval") === 86400) {
|
||
|
return;
|
||
|
}
|
||
|
} catch(e) {
|
||
|
// That should never happen..
|
||
|
}
|
||
|
|
||
|
// If we are offline, wait to be online to start the update check.
|
||
|
if (Services.io.offline) {
|
||
|
debug("Network is offline. Setting up an offline status observer.");
|
||
|
Services.obs.addObserver(this, "network:offline-status-changed", false);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// This will trigger app updates in b2g/components/WebappsUpdater.jsm
|
||
|
// that also takes care of notifying gaia.
|
||
|
WebappsUpdater.updateApps();
|
||
|
},
|
||
|
|
||
|
observe: function(aSubject, aTopic, aData) {
|
||
|
if (aTopic !== "network:offline-status-changed" ||
|
||
|
aData !== "online") {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
debug("Network is online. Checking updates.");
|
||
|
Services.obs.removeObserver(this, "network:offline-status-changed");
|
||
|
WebappsUpdater.updateApps();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([WebappsUpdateTimer]);
|