mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-25 16:47:29 +09:00
Bug 1173523 - Part 7: Update advanced.js to use new API for nsIPermission
This commit is contained in:
parent
a7ad480d2b
commit
6ed79ae702
1 changed files with 14 additions and 18 deletions
|
|
@ -8,6 +8,7 @@ Components.utils.import("resource://gre/modules/DownloadUtils.jsm");
|
||||||
Components.utils.import("resource://gre/modules/ctypes.jsm");
|
Components.utils.import("resource://gre/modules/ctypes.jsm");
|
||||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||||
Components.utils.import("resource://gre/modules/LoadContextInfo.jsm");
|
Components.utils.import("resource://gre/modules/LoadContextInfo.jsm");
|
||||||
|
Components.utils.import("resource://gre/modules/BrowserUtils.jsm");
|
||||||
|
|
||||||
var gAdvancedPane = {
|
var gAdvancedPane = {
|
||||||
_inited: false,
|
_inited: false,
|
||||||
|
|
@ -390,7 +391,7 @@ var gAdvancedPane = {
|
||||||
var usage = 0;
|
var usage = 0;
|
||||||
for (var i = 0; i < groups.length; i++) {
|
for (var i = 0; i < groups.length; i++) {
|
||||||
var uri = ios.newURI(groups[i], null, null);
|
var uri = ios.newURI(groups[i], null, null);
|
||||||
if (uri.asciiHost == perm.host) {
|
if (perm.matchesURI(uri, true)) {
|
||||||
var cache = cacheService.getActiveCache(groups[i]);
|
var cache = cacheService.getActiveCache(groups[i]);
|
||||||
usage += cache.usage;
|
usage += cache.usage;
|
||||||
}
|
}
|
||||||
|
|
@ -427,7 +428,7 @@ var gAdvancedPane = {
|
||||||
var row = document.createElement("listitem");
|
var row = document.createElement("listitem");
|
||||||
row.id = "";
|
row.id = "";
|
||||||
row.className = "offlineapp";
|
row.className = "offlineapp";
|
||||||
row.setAttribute("host", perm.host);
|
row.setAttribute("origin", perm.principal.origin);
|
||||||
var converted = DownloadUtils.
|
var converted = DownloadUtils.
|
||||||
convertByteUnits(this._getOfflineAppUsage(perm, groups));
|
convertByteUnits(this._getOfflineAppUsage(perm, groups));
|
||||||
row.setAttribute("usage",
|
row.setAttribute("usage",
|
||||||
|
|
@ -453,7 +454,8 @@ var gAdvancedPane = {
|
||||||
{
|
{
|
||||||
var list = document.getElementById("offlineAppsList");
|
var list = document.getElementById("offlineAppsList");
|
||||||
var item = list.selectedItem;
|
var item = list.selectedItem;
|
||||||
var host = item.getAttribute("host");
|
var origin = item.getAttribute("origin");
|
||||||
|
var principal = BrowserUtils.principalFromOrigin(origin);
|
||||||
|
|
||||||
var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
||||||
.getService(Components.interfaces.nsIPromptService);
|
.getService(Components.interfaces.nsIPromptService);
|
||||||
|
|
@ -462,13 +464,18 @@ var gAdvancedPane = {
|
||||||
|
|
||||||
var bundle = document.getElementById("bundlePreferences");
|
var bundle = document.getElementById("bundlePreferences");
|
||||||
var title = bundle.getString("offlineAppRemoveTitle");
|
var title = bundle.getString("offlineAppRemoveTitle");
|
||||||
var prompt = bundle.getFormattedString("offlineAppRemovePrompt", [host]);
|
var prompt = bundle.getFormattedString("offlineAppRemovePrompt", [principal.URI.prePath]);
|
||||||
var confirm = bundle.getString("offlineAppRemoveConfirm");
|
var confirm = bundle.getString("offlineAppRemoveConfirm");
|
||||||
var result = prompts.confirmEx(window, title, prompt, flags, confirm,
|
var result = prompts.confirmEx(window, title, prompt, flags, confirm,
|
||||||
null, null, null, {});
|
null, null, null, {});
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// get the permission
|
||||||
|
var pm = Components.classes["@mozilla.org/permissionmanager;1"]
|
||||||
|
.getService(Components.interfaces.nsIPermissionManager);
|
||||||
|
var perm = pm.getPermissionObject(principal, "offline-app");
|
||||||
|
|
||||||
// clear offline cache entries
|
// clear offline cache entries
|
||||||
var cacheService = Components.classes["@mozilla.org/network/application-cache-service;1"].
|
var cacheService = Components.classes["@mozilla.org/network/application-cache-service;1"].
|
||||||
getService(Components.interfaces.nsIApplicationCacheService);
|
getService(Components.interfaces.nsIApplicationCacheService);
|
||||||
|
|
@ -476,25 +483,14 @@ var gAdvancedPane = {
|
||||||
getService(Components.interfaces.nsIIOService);
|
getService(Components.interfaces.nsIIOService);
|
||||||
var groups = cacheService.getGroups();
|
var groups = cacheService.getGroups();
|
||||||
for (var i = 0; i < groups.length; i++) {
|
for (var i = 0; i < groups.length; i++) {
|
||||||
let uri = ios.newURI(groups[i], null, null);
|
var uri = ios.newURI(groups[i], null, null);
|
||||||
if (uri.asciiHost == host) {
|
if (perm.matchesURI(uri, true)) {
|
||||||
var cache = cacheService.getActiveCache(groups[i]);
|
var cache = cacheService.getActiveCache(groups[i]);
|
||||||
cache.discard();
|
cache.discard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove the permission
|
pm.removePermission(perm);
|
||||||
var pm = Components.classes["@mozilla.org/permissionmanager;1"]
|
|
||||||
.getService(Components.interfaces.nsIPermissionManager);
|
|
||||||
let uri;
|
|
||||||
try {
|
|
||||||
// file:// URIs are stored with their scheme. We try to parse them first, as
|
|
||||||
// URIs like http://file:///foo/bar/baz.html will parse as HTTP URIs.
|
|
||||||
uri = ios.newURI(host, null, null);
|
|
||||||
} catch (e) {
|
|
||||||
uri = ios.newURI("http://" + host, null, null);
|
|
||||||
}
|
|
||||||
pm.remove(uri, "offline-app");
|
|
||||||
|
|
||||||
list.removeChild(item);
|
list.removeChild(item);
|
||||||
gAdvancedPane.offlineAppSelected();
|
gAdvancedPane.offlineAppSelected();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue