forked from mirrors/gecko-dev
Differential Revision: https://phabricator.services.mozilla.com/D55857 --HG-- rename : toolkit/components/alerts/resources/content/alert.xul => toolkit/components/alerts/resources/content/alert.xhtml rename : toolkit/components/apppicker/content/appPicker.xul => toolkit/components/apppicker/content/appPicker.xhtml rename : toolkit/components/extensions/dummy.xul => toolkit/components/extensions/dummy.xhtml rename : toolkit/components/passwordmgr/content/passwordManager.xul => toolkit/components/passwordmgr/content/passwordManager.xhtml rename : toolkit/components/printing/content/printPageSetup.xul => toolkit/components/printing/content/printPageSetup.xhtml rename : toolkit/components/printing/content/printPreviewProgress.xul => toolkit/components/printing/content/printPreviewProgress.xhtml rename : toolkit/components/printing/content/printProgress.xul => toolkit/components/printing/content/printProgress.xhtml rename : toolkit/components/prompts/content/commonDialog.xul => toolkit/components/prompts/content/commonDialog.xhtml rename : toolkit/components/prompts/content/selectDialog.xul => toolkit/components/prompts/content/selectDialog.xhtml rename : toolkit/components/viewconfig/content/config.xul => toolkit/components/viewconfig/content/config.xhtml rename : toolkit/content/editMenuKeys.inc.xul => toolkit/content/editMenuKeys.inc.xhtml rename : toolkit/content/resetProfile.xul => toolkit/content/resetProfile.xhtml rename : toolkit/content/resetProfileProgress.xul => toolkit/content/resetProfileProgress.xhtml rename : toolkit/modules/win.xul => toolkit/modules/win.xhtml rename : toolkit/profile/content/createProfileWizard.xul => toolkit/profile/content/createProfileWizard.xhtml rename : toolkit/profile/content/profileDowngrade.xul => toolkit/profile/content/profileDowngrade.xhtml rename : toolkit/profile/content/profileSelection.xul => toolkit/profile/content/profileSelection.xhtml extra : moz-landing-system : lando
152 lines
3.7 KiB
JavaScript
152 lines
3.7 KiB
JavaScript
// -*- indent-tabs-mode: nil; js-indent-level: 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/. */
|
|
|
|
// dialog is just an array we'll use to store various properties from the dialog document...
|
|
var dialog;
|
|
|
|
// the printProgress is a nsIPrintProgress object
|
|
var printProgress = null;
|
|
|
|
// random global variables...
|
|
var targetFile;
|
|
|
|
var docTitle = "";
|
|
var docURL = "";
|
|
var progressParams = null;
|
|
|
|
function ellipseString(aStr, doFront) {
|
|
if (!aStr) {
|
|
return "";
|
|
}
|
|
|
|
if (
|
|
aStr.length > 3 &&
|
|
(aStr.substr(0, 3) == "..." || aStr.substr(aStr.length - 4, 3) == "...")
|
|
) {
|
|
return aStr;
|
|
}
|
|
|
|
var fixedLen = 64;
|
|
if (aStr.length <= fixedLen) {
|
|
return aStr;
|
|
}
|
|
|
|
if (doFront) {
|
|
return "..." + aStr.substr(aStr.length - fixedLen, fixedLen);
|
|
}
|
|
|
|
return aStr.substr(0, fixedLen) + "...";
|
|
}
|
|
|
|
// all progress notifications are done through the nsIWebProgressListener implementation...
|
|
var progressListener = {
|
|
onStateChange(aWebProgress, aRequest, aStateFlags, aStatus) {
|
|
if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP) {
|
|
window.close();
|
|
}
|
|
},
|
|
|
|
onProgressChange(
|
|
aWebProgress,
|
|
aRequest,
|
|
aCurSelfProgress,
|
|
aMaxSelfProgress,
|
|
aCurTotalProgress,
|
|
aMaxTotalProgress
|
|
) {
|
|
if (!progressParams) {
|
|
return;
|
|
}
|
|
var docTitleStr = ellipseString(progressParams.docTitle, false);
|
|
if (docTitleStr != docTitle) {
|
|
docTitle = docTitleStr;
|
|
dialog.title.value = docTitle;
|
|
}
|
|
var docURLStr = ellipseString(progressParams.docURL, true);
|
|
if (docURLStr != docURL && dialog.title != null) {
|
|
docURL = docURLStr;
|
|
if (docTitle == "") {
|
|
dialog.title.value = docURLStr;
|
|
}
|
|
}
|
|
},
|
|
|
|
onLocationChange(aWebProgress, aRequest, aLocation, aFlags) {},
|
|
onSecurityChange(aWebProgress, aRequest, state) {},
|
|
onContentBlockingEvent(aWebProgress, aRequest, event) {},
|
|
|
|
onStatusChange(aWebProgress, aRequest, aStatus, aMessage) {
|
|
if (aMessage) {
|
|
dialog.title.setAttribute("value", aMessage);
|
|
}
|
|
},
|
|
|
|
QueryInterface: ChromeUtils.generateQI([
|
|
"nsIWebProgressListener",
|
|
"nsISupportsWeakReference",
|
|
]),
|
|
};
|
|
|
|
function onLoad() {
|
|
// Set global variables.
|
|
printProgress = window.arguments[0];
|
|
if (window.arguments[1]) {
|
|
progressParams = window.arguments[1].QueryInterface(
|
|
Ci.nsIPrintProgressParams
|
|
);
|
|
if (progressParams) {
|
|
docTitle = ellipseString(progressParams.docTitle, false);
|
|
docURL = ellipseString(progressParams.docURL, true);
|
|
}
|
|
}
|
|
|
|
if (!printProgress) {
|
|
dump("Invalid argument to printPreviewProgress.xhtml\n");
|
|
window.close();
|
|
return;
|
|
}
|
|
|
|
dialog = {};
|
|
dialog.strings = [];
|
|
dialog.title = document.getElementById("dialog.title");
|
|
dialog.titleLabel = document.getElementById("dialog.titleLabel");
|
|
|
|
dialog.title.value = docTitle;
|
|
|
|
// set our web progress listener on the helper app launcher
|
|
printProgress.registerListener(progressListener);
|
|
|
|
// We need to delay the set title else dom will overwrite it
|
|
window.setTimeout(doneIniting, 100);
|
|
}
|
|
|
|
function onUnload() {
|
|
if (!printProgress) {
|
|
return;
|
|
}
|
|
try {
|
|
printProgress.unregisterListener(progressListener);
|
|
printProgress = null;
|
|
} catch (e) {}
|
|
}
|
|
|
|
// If the user presses cancel, tell the app launcher and close the dialog...
|
|
function onCancel() {
|
|
// Cancel app launcher.
|
|
try {
|
|
printProgress.processCanceledByUser = true;
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
|
|
// don't Close up dialog by returning false, the backend will close the dialog when everything will be aborted.
|
|
return false;
|
|
}
|
|
|
|
function doneIniting() {
|
|
// called by function timeout in onLoad
|
|
printProgress.doneIniting();
|
|
}
|