зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1422365 - Introduce nsIClearDataService - part 10 - push notification, r=johannh
This commit is contained in:
Родитель
e247e19c68
Коммит
fc92907077
|
@ -505,22 +505,7 @@ var Sanitizer = {
|
|||
}
|
||||
|
||||
// Clear all push notification subscriptions
|
||||
try {
|
||||
await new Promise((resolve, reject) => {
|
||||
let push = Cc["@mozilla.org/push/Service;1"]
|
||||
.getService(Ci.nsIPushService);
|
||||
push.clearForDomain("*", status => {
|
||||
if (Components.isSuccessCode(status)) {
|
||||
resolve();
|
||||
} else {
|
||||
reject(new Error("Error clearing push subscriptions: " +
|
||||
status));
|
||||
}
|
||||
});
|
||||
});
|
||||
} catch (ex) {
|
||||
seenException = ex;
|
||||
}
|
||||
await clearData(range, Ci.nsIClearDataService.CLEAR_DOM_PUSH_NOTIFICATIONS);
|
||||
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_SITESETTINGS", refObj);
|
||||
if (seenException) {
|
||||
|
|
|
@ -399,6 +399,36 @@ const PredictorNetworkCleaner = {
|
|||
},
|
||||
};
|
||||
|
||||
const PushNotificationsCleaner = {
|
||||
deleteByHost(aHost, aOriginAttributes) {
|
||||
return new Promise((aResolve, aReject) => {
|
||||
let push = Cc["@mozilla.org/push/Service;1"]
|
||||
.getService(Ci.nsIPushService);
|
||||
push.clearForDomain(aHost, aStatus => {
|
||||
if (!Components.isSuccessCode(aStatus)) {
|
||||
aReject();
|
||||
} else {
|
||||
aResolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
deleteAll() {
|
||||
return new Promise((aResolve, aReject) => {
|
||||
let push = Cc["@mozilla.org/push/Service;1"]
|
||||
.getService(Ci.nsIPushService);
|
||||
push.clearForDomain("*", aStatus => {
|
||||
if (!Components.isSuccessCode(aStatus)) {
|
||||
aReject();
|
||||
} else {
|
||||
aResolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
// Here the map of Flags-Cleaner.
|
||||
const FLAGS_MAP = [
|
||||
{ flag: Ci.nsIClearDataService.CLEAR_COOKIES,
|
||||
|
@ -430,6 +460,9 @@ const FLAGS_MAP = [
|
|||
|
||||
{ flag: Ci.nsIClearDataService.CLEAR_PREDICTOR_NETWORK_DATA,
|
||||
cleaner: PredictorNetworkCleaner, },
|
||||
|
||||
{ flag: Ci.nsIClearDataService.CLEAR_DOM_PUSH_NOTIFICATIONS,
|
||||
cleaner: PushNotificationsCleaner, },
|
||||
];
|
||||
|
||||
this.ClearDataService = function() {};
|
||||
|
|
|
@ -133,11 +133,15 @@ interface nsIClearDataService : nsISupports
|
|||
*/
|
||||
const uint32_t CLEAR_PREDICTOR_NETWORK_DATA = 1 << 9;
|
||||
|
||||
/**
|
||||
* DOM Push notifications
|
||||
*/
|
||||
const uint32_t CLEAR_DOM_PUSH_NOTIFICATIONS = 1 << 10;
|
||||
|
||||
/* TODO
|
||||
const uint32_t CLEAR_EME = 1 << 4;
|
||||
const uint32_t CLEAR_PERMISSIONS = 1 << 7;
|
||||
const uint32_t CLEAR_CONTENT_PREFERENCES = 1 << 9;
|
||||
const uint32_t CLEAR_DOM_PUSH_NOTIFICATIONS = 1 << 11;
|
||||
const uint32_t CLEAR_HSTS = 1 << 12;
|
||||
const uint32_t CLEAR_HPKP = 1 << 13;
|
||||
const uint32_t CLEAR_HISTORY = 1 << 14;
|
||||
|
@ -165,9 +169,9 @@ interface nsIClearDataService : nsISupports
|
|||
|
||||
/**
|
||||
* Delete all DOM storages
|
||||
* TODO: add CLEAR_DOM_PUSH_NOTIFICATIONS | CLEAR_FORMDATA | CLEAR_SESSION_HISTORY;
|
||||
* TODO: add CLEAR_FORMDATA | CLEAR_SESSION_HISTORY;
|
||||
*/
|
||||
const uint32_t CLEAR_DOM_STORAGES = CLEAR_APPCACHE | CLEAR_DOM_QUOTA;
|
||||
const uint32_t CLEAR_DOM_STORAGES = CLEAR_APPCACHE | CLEAR_DOM_QUOTA | CLEAR_DOM_PUSH_NOTIFICATIONS;
|
||||
|
||||
/*
|
||||
const uint32_t CLEAR_BROWSER_DATA = CLEAR_DOWNLOADS | CLEAR_PASSWORDS | CLEAR_PERMISSIONS | CLEAR_CONTENT_PREFERENCES | CLEAR_HISTORY | CLEAR_LOGINS;
|
||||
|
|
|
@ -93,17 +93,6 @@ var ForgetAboutSite = {
|
|||
});
|
||||
})());
|
||||
|
||||
// Push notifications.
|
||||
promises.push((async function() {
|
||||
var push = Cc["@mozilla.org/push/Service;1"].
|
||||
getService(Ci.nsIPushService);
|
||||
push.clearForDomain(aDomain, status => {
|
||||
if (!Components.isSuccessCode(status)) {
|
||||
throw new Error("Exception occured while clearing push notifications: " + status);
|
||||
}
|
||||
});
|
||||
})());
|
||||
|
||||
// HSTS and HPKP
|
||||
promises.push((async function() {
|
||||
let sss = Cc["@mozilla.org/ssservice;1"].
|
||||
|
|
Загрузка…
Ссылка в новой задаче