mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 10:57:34 +09:00
Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1
This commit is contained in:
parent
23e0d82436
commit
e400f4130a
1564 changed files with 510348 additions and 0 deletions
170
mailnews/extensions/offline-startup/js/offlineStartup.js
Normal file
170
mailnews/extensions/offline-startup/js/offlineStartup.js
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
* 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/. */
|
||||
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
var kDebug = false;
|
||||
var kOfflineStartupPref = "offline.startup_state";
|
||||
var kRememberLastState = 0;
|
||||
var kAskForOnlineState = 1;
|
||||
var kAlwaysOnline = 2;
|
||||
var kAlwaysOffline = 3;
|
||||
var kAutomatic = 4;
|
||||
var gStartingUp = true;
|
||||
var gOfflineStartupMode; //0 = remember last state, 1 = ask me, 2 == online, 3 == offline, 4 = automatic
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// nsOfflineStartup : nsIObserver
|
||||
//
|
||||
// Check if the user has set the pref to be prompted for
|
||||
// online/offline startup mode. If so, prompt the user. Also,
|
||||
// check if the user wants to remember their offline state
|
||||
// the next time they start up.
|
||||
// If the user shutdown offline, and is now starting up in online
|
||||
// mode, we will set the boolean pref "mailnews.playback_offline" to true.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var nsOfflineStartup =
|
||||
{
|
||||
onProfileStartup: function()
|
||||
{
|
||||
debug("onProfileStartup");
|
||||
|
||||
if (gStartingUp)
|
||||
{
|
||||
gStartingUp = false;
|
||||
// if checked, the "work offline" checkbox overrides
|
||||
if (Services.io.offline && !Services.io.manageOfflineStatus)
|
||||
{
|
||||
debug("already offline!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var manageOfflineStatus = Services.prefs.getBoolPref("offline.autoDetect");
|
||||
gOfflineStartupMode = Services.prefs.getIntPref(kOfflineStartupPref);
|
||||
let wasOffline = !Services.prefs.getBoolPref("network.online");
|
||||
|
||||
if (gOfflineStartupMode == kAutomatic)
|
||||
{
|
||||
// Offline state should be managed automatically
|
||||
// so do nothing specific at startup.
|
||||
}
|
||||
else if (gOfflineStartupMode == kAlwaysOffline)
|
||||
{
|
||||
Services.io.manageOfflineStatus = false;
|
||||
Services.io.offline = true;
|
||||
}
|
||||
else if (gOfflineStartupMode == kAlwaysOnline)
|
||||
{
|
||||
Services.io.manageOfflineStatus = manageOfflineStatus;
|
||||
if (wasOffline)
|
||||
Services.prefs.setBoolPref("mailnews.playback_offline", true);
|
||||
// If we're managing the offline status, don't force online here... it may
|
||||
// be the network really is offline.
|
||||
if (!manageOfflineStatus)
|
||||
Services.io.offline = false;
|
||||
}
|
||||
else if (gOfflineStartupMode == kRememberLastState)
|
||||
{
|
||||
Services.io.manageOfflineStatus = manageOfflineStatus && !wasOffline;
|
||||
// If we are meant to be online, and managing the offline status
|
||||
// then don't force it - it may be the network really is offline.
|
||||
if (!manageOfflineStatus || wasOffline)
|
||||
Services.io.offline = wasOffline;
|
||||
}
|
||||
else if (gOfflineStartupMode == kAskForOnlineState)
|
||||
{
|
||||
var bundle = Services.strings.createBundle("chrome://messenger/locale/offlineStartup.properties");
|
||||
var title = bundle.GetStringFromName("title");
|
||||
var desc = bundle.GetStringFromName("desc");
|
||||
var button0Text = bundle.GetStringFromName("workOnline");
|
||||
var button1Text = bundle.GetStringFromName("workOffline");
|
||||
var checkVal = {value:0};
|
||||
|
||||
var result = Services.prompt.confirmEx(null, title, desc,
|
||||
(Services.prompt.BUTTON_POS_0 * Services.prompt.BUTTON_TITLE_IS_STRING) +
|
||||
(Services.prompt.BUTTON_POS_1 * Services.prompt.BUTTON_TITLE_IS_STRING),
|
||||
button0Text, button1Text, null, null, checkVal);
|
||||
debug ("result = " + result + "\n");
|
||||
Services.io.manageOfflineStatus = manageOfflineStatus && result != 1;
|
||||
Services.io.offline = result == 1;
|
||||
if (result != 1 && wasOffline)
|
||||
Services.prefs.setBoolPref("mailnews.playback_offline", true);
|
||||
}
|
||||
},
|
||||
|
||||
observe: function(aSubject, aTopic, aData)
|
||||
{
|
||||
debug("observe: " + aTopic);
|
||||
|
||||
if (aTopic == "profile-change-net-teardown")
|
||||
{
|
||||
debug("remembering offline state");
|
||||
Services.prefs.setBoolPref("network.online", !Services.io.offline);
|
||||
}
|
||||
else if (aTopic == "app-startup")
|
||||
{
|
||||
Services.obs.addObserver(this, "profile-after-change", false);
|
||||
Services.obs.addObserver(this, "profile-change-net-teardown", false);
|
||||
}
|
||||
else if (aTopic == "profile-after-change")
|
||||
{
|
||||
this.onProfileStartup();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
QueryInterface: function(aIID)
|
||||
{
|
||||
if (aIID.equals(Components.interfaces.nsIObserver) ||
|
||||
aIID.equals(Components.interfaces.nsISupports))
|
||||
return this;
|
||||
|
||||
throw Components.results.NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
}
|
||||
|
||||
function nsOfflineStartupModule()
|
||||
{
|
||||
}
|
||||
|
||||
nsOfflineStartupModule.prototype =
|
||||
{
|
||||
classID: Components.ID("3028a3c8-2165-42a4-b878-398da5d32736"),
|
||||
_xpcom_factory:
|
||||
{
|
||||
createInstance: function(aOuter, aIID)
|
||||
{
|
||||
if (aOuter != null)
|
||||
throw Components.results.NS_ERROR_NO_AGGREGATION;
|
||||
|
||||
// return the singleton
|
||||
return nsOfflineStartup.QueryInterface(aIID);
|
||||
},
|
||||
|
||||
lockFactory: function(aLock)
|
||||
{
|
||||
// quieten warnings
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Debug helper
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
if (!kDebug)
|
||||
debug = function(m) {};
|
||||
else
|
||||
debug = function(m) {dump("\t *** nsOfflineStartup: " + m + "\n");};
|
||||
|
||||
var components = [nsOfflineStartupModule];
|
||||
var NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
component {3028a3c8-2165-42a4-b878-398da5d32736} offlineStartup.js
|
||||
contract @mozilla.org/offline-startup;1 {3028a3c8-2165-42a4-b878-398da5d32736}
|
||||
category app-startup Offline-startup @mozilla.org/offline-startup;1
|
||||
Loading…
Add table
Add a link
Reference in a new issue