diff --git a/netwerk/url-classifier/nsIURIClassifier.idl b/netwerk/url-classifier/nsIURIClassifier.idl index 08563aadbb5d..497b32f7ff5a 100644 --- a/netwerk/url-classifier/nsIURIClassifier.idl +++ b/netwerk/url-classifier/nsIURIClassifier.idl @@ -84,7 +84,6 @@ interface nsIURIClassifier : nsISupports * Asynchronously classify a URI with list of features. This does not make * network requests. This takes a list of names so it can safely be called in * the content process. - * This is content process only, and will ASSERT otherwise. */ void asyncClassifyLocalWithFeatureNames(in nsIURI aURI, in Array aFeatures, diff --git a/toolkit/components/antitracking/StorageAccessAPIHelper.cpp b/toolkit/components/antitracking/StorageAccessAPIHelper.cpp index f34725974151..6baa4cdce862 100644 --- a/toolkit/components/antitracking/StorageAccessAPIHelper.cpp +++ b/toolkit/components/antitracking/StorageAccessAPIHelper.cpp @@ -1340,6 +1340,7 @@ void StorageAccessGrantTelemetryClassification::MaybeReportTracker( rv = uriClassifier->AsyncClassifyLocalWithFeatureNames( aURI, featureNames, nsIUrlClassifierFeature::blocklist, classification); + Unused << NS_WARN_IF(NS_FAILED(rv)); } // nsIUrlClassifierFeatureCallback diff --git a/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp b/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp index b5833857ae0b..04dce364652b 100644 --- a/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp +++ b/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp @@ -2566,12 +2566,26 @@ nsUrlClassifierDBService::AsyncClassifyLocalWithFeatureNames( nsIUrlClassifierFeature::listType aListType, nsIUrlClassifierFeatureCallback* aCallback) { MOZ_ASSERT(NS_IsMainThread()); - MOZ_ASSERT(XRE_IsContentProcess()); if (gShuttingDownThread) { return NS_ERROR_ABORT; } + if (!XRE_IsContentProcess()) { + nsTArray> features; + for (const nsCString& featureName : aFeatureNames) { + nsCOMPtr feature = + mozilla::net::UrlClassifierFeatureFactory::GetFeatureByName( + featureName); + if (NS_WARN_IF(!feature)) { + continue; + } + features.AppendElement(feature); + } + MOZ_ASSERT(!features.IsEmpty(), "At least one URL classifier feature must be present"); + return AsyncClassifyLocalWithFeatures(aURI, features, aListType, aCallback, true); + } + mozilla::dom::ContentChild* content = mozilla::dom::ContentChild::GetSingleton(); if (NS_WARN_IF(!content || content->IsShuttingDown())) {