rn unregisterServiceWorkersMatching(sw => Services.eTLD.hasRootDomain(sw.principal.host, aHost) ); }, removeFromSite(aSchemelessSite, aOriginAttributesPattern) { return unregisterServiceWorkersMatching(sw => { let { principal } = sw; let { originAttributes } = principal; // Check service workers owned by aSchemelessSite. if ( principal.baseDomain == aSchemelessSite && ChromeUtils.originAttributesMatchPattern( originAttributes, aOriginAttributesPattern ) ) { return true; } // Check service workers partitioned under aSchemelessSite. return ChromeUtils.originAttributesMatchPattern(originAttributes, { partitionKeyPattern: { baseDomain: aSchemelessSite }, ...aOriginAttributesPattern, }); }); }, removeFromPrincipal(aPrincipal) { return unregisterServiceWorkersMatching(sw => sw.principal.equals(aPrincipal) ); }, removeFromOriginAttributes(aOriginAttributesString) { lazy.serviceWorkerManager.removeRegistrationsByOriginAttributes( aOriginAttributesString ); return Promise.resolve(); }, removeAll() { return unregisterServiceWorkersMatching(() => true); }, }; PK