1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-24 09:12:28 +01:00

Fix multi-window thingy and stuff.

This commit is contained in:
Kris Maglione
2012-05-23 22:55:26 -04:00
parent 7cba7018fa
commit 21adc88f11
3 changed files with 86 additions and 76 deletions

View File

@@ -634,6 +634,9 @@ var Buffer = Module("Buffer", {
| persist.PERSIST_FLAGS_REPLACE_EXISTING_FILES;
let window = this.topWindow;
if (!file.exists())
file.create(Ci.nsIFile.NORMAL_FILE_TYPE, octal(666));
let downloadListener = new window.DownloadListener(window,
services.Transfer(uri, File(file).URI, "",
null, null, null, persist));

View File

@@ -199,13 +199,6 @@ overlay.overlayWindow(Object.keys(config.overlays), function _overlay(window) ({
this.loaded = {};
modules.loaded = this.loaded;
defineModule.modules.forEach(function defModule(mod) {
let names = Set(Object.keys(mod.INIT));
if ("init" in mod.INIT)
Set.add(names, "init");
keys(names).forEach(function (name) { self.deferInit(name, mod.INIT, mod); });
});
this.modules = modules;
this.scanModules();
@@ -310,28 +303,38 @@ overlay.overlayWindow(Object.keys(config.overlays), function _overlay(window) ({
let className = mod.className || mod.constructor.className;
init[className] = function callee() {
function finish() {
this.currentDependency = className;
defineModule.time(className, name, INIT[name], mod,
modules.dactyl, modules, window);
}
if (!callee.frobbed) {
callee.frobbed = true;
if (modules[name] instanceof Class)
modules[name].withSavedValues(["currentDependency"], finish);
else
finish.call({});
}
};
if (!Set.has(init, className)) {
init[className] = function callee() {
function finish() {
this.currentDependency = className;
defineModule.time(className, name, INIT[name], mod,
modules.dactyl, modules, window);
}
if (!callee.frobbed) {
callee.frobbed = true;
if (modules[name] instanceof Class)
modules[name].withSavedValues(["currentDependency"], finish);
else
finish.call({});
}
};
INIT[name].require = function (name) { init[name](); };
INIT[name].require = function (name) { init[name](); };
}
},
scanModules: function scanModules() {
let self = this;
let { Module, modules } = this.modules;
defineModule.modules.forEach(function defModule(mod) {
let names = Set(Object.keys(mod.INIT));
if ("init" in mod.INIT)
Set.add(names, "init");
keys(names).forEach(function (name) { self.deferInit(name, mod.INIT, mod); });
});
Module.list.forEach(function frobModule(mod) {
if (!mod.frobbed) {
modules.__defineGetter__(mod.className, function () {

View File

@@ -18,6 +18,7 @@ defineModule("sanitizer", {
});
lazyRequire("messages", ["_"]);
lazyRequire("overlay", ["overlay"]);
lazyRequire("storage", ["storage"]);
lazyRequire("template", ["template"]);
@@ -179,60 +180,63 @@ var Sanitizer = Module("sanitizer", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakRef
}
});
let (branch = Item.PREFIX + Item.SHUTDOWN_BRANCH) {
util.overlayWindow("chrome://browser/content/preferences/sanitize.xul",
function (win) prefOverlay(branch, true, {
append: {
SanitizeDialogPane:
<groupbox orient="horizontal" xmlns={XUL}>
<caption label={config.appName + /*L*/" (see :help privacy)"}/>
<grid flex="1">
<columns><column flex="1"/><column flex="1"/></columns>
<rows>{
let (items = ourItems(true))
template.map(util.range(0, Math.ceil(items.length / 2)), function (i)
<row xmlns={XUL}>{
template.map(items.slice(i * 2, i * 2 + 2), function (item)
<checkbox xmlns={XUL} label={item.description} preference={branch + item.name}/>)
}</row>)
}</rows>
</grid>
</groupbox>
}
}));
}
let (branch = Item.PREFIX + Item.BRANCH) {
util.overlayWindow("chrome://browser/content/sanitize.xul",
function (win) prefOverlay(branch, false, {
append: {
itemList: <>
<listitem xmlns={XUL} label={/*L*/"See :help privacy for the following:"} disabled="true" style="font-style: italic; font-weight: bold;"/>
{
template.map(ourItems(), function ([item, desc])
<listitem xmlns={XUL} type="checkbox"
label={config.appName + " " + desc}
preference={branch + item}
onsyncfrompreference="return gSanitizePromptDialog.onReadGeneric();"/>)
}
</>
},
ready: function ready(win) {
let elem = win.document.getElementById("itemList");
elem.setAttribute("rows", elem.itemCount);
win.Sanitizer = Class("Sanitizer", win.Sanitizer, {
sanitize: function sanitize() {
self.withSavedValues(["sanitizing"], function () {
self.sanitizing = true;
sanitize.superapply(this, arguments);
sanitizer.sanitizeItems([item.name for (item in values(self.itemMap))
if (item.shouldSanitize(false))],
Range.fromArray(this.range || []));
}, this);
}
});
}
}));
}
util.timeout(function () { // Load order issue...
let (branch = Item.PREFIX + Item.SHUTDOWN_BRANCH) {
overlay.overlayWindow("chrome://browser/content/preferences/sanitize.xul",
function (win) prefOverlay(branch, true, {
append: {
SanitizeDialogPane:
<groupbox orient="horizontal" xmlns={XUL}>
<caption label={config.appName + /*L*/" (see :help privacy)"}/>
<grid flex="1">
<columns><column flex="1"/><column flex="1"/></columns>
<rows>{
let (items = ourItems(true))
template.map(util.range(0, Math.ceil(items.length / 2)), function (i)
<row xmlns={XUL}>{
template.map(items.slice(i * 2, i * 2 + 2), function (item)
<checkbox xmlns={XUL} label={item.description} preference={branch + item.name}/>)
}</row>)
}</rows>
</grid>
</groupbox>
}
}));
}
let (branch = Item.PREFIX + Item.BRANCH) {
overlay.overlayWindow("chrome://browser/content/sanitize.xul",
function (win) prefOverlay(branch, false, {
append: {
itemList: <>
<listitem xmlns={XUL} label={/*L*/"See :help privacy for the following:"} disabled="true" style="font-style: italic; font-weight: bold;"/>
{
template.map(ourItems(), function ([item, desc])
<listitem xmlns={XUL} type="checkbox"
label={config.appName + " " + desc}
preference={branch + item}
onsyncfrompreference="return gSanitizePromptDialog.onReadGeneric();"/>)
}
</>
},
ready: function ready(win) {
let elem = win.document.getElementById("itemList");
elem.setAttribute("rows", elem.itemCount);
win.Sanitizer = Class("Sanitizer", win.Sanitizer, {
sanitize: function sanitize() {
self.withSavedValues(["sanitizing"], function () {
self.sanitizing = true;
sanitize.superapply(this, arguments);
sanitizer.sanitizeItems([item.name for (item in values(self.itemMap))
if (item.shouldSanitize(false))],
Range.fromArray(this.range || []));
}, this);
}
});
}
}));
}
});
},
firstRun: 0,