# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

with Files("**"):
    BUG_COMPONENT = ("Toolkit", "Safe Browsing")

XPIDL_SOURCES += [
    "nsIChannelClassifierService.idl",
    "nsIURIClassifier.idl",
    "nsIUrlClassifierExceptionList.idl",
    "nsIUrlClassifierExceptionListEntry.idl",
    "nsIUrlClassifierExceptionListService.idl",
    "nsIUrlClassifierFeature.idl",
]

XPIDL_MODULE = "url-classifier"

EXTRA_JS_MODULES += [
    "UrlClassifierExceptionListService.sys.mjs",
]

XPCOM_MANIFESTS += [
    "components.conf",
]

DEFINES["GOOGLE_PROTOBUF_NO_RTTI"] = True
DEFINES["GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER"] = True

UNIFIED_SOURCES += [
    "AsyncUrlChannelClassifier.cpp",
    "ChannelClassifierService.cpp",
    "ChannelClassifierUtils.cpp",
    "nsChannelClassifier.cpp",
    "UrlClassifierCommon.cpp",
    "UrlClassifierExceptionList.cpp",
    "UrlClassifierExceptionListEntry.cpp",
    "UrlClassifierFeatureAntiFraudAnnotation.cpp",
    "UrlClassifierFeatureBase.cpp",
    "UrlClassifierFeatureConsentManagerAnnotation.cpp",
    "UrlClassifierFeatureCryptominingAnnotation.cpp",
    "UrlClassifierFeatureCryptominingProtection.cpp",
    "UrlClassifierFeatureCustomTables.cpp",
    "UrlClassifierFeatureEmailTrackingDataCollection.cpp",
    "UrlClassifierFeatureEmailTrackingProtection.cpp",
    "UrlClassifierFeatureFactory.cpp",
    "UrlClassifierFeatureFingerprintingAnnotation.cpp",
    "UrlClassifierFeatureFingerprintingProtection.cpp",
    "UrlClassifierFeatureGlobalCache.cpp",
    "UrlClassifierFeatureHarmfulAddonProtection.cpp",
    "UrlClassifierFeaturePhishingProtection.cpp",
    "UrlClassifierFeatureResult.cpp",
    "UrlClassifierFeatureSocialTrackingAnnotation.cpp",
    "UrlClassifierFeatureSocialTrackingProtection.cpp",
    "UrlClassifierFeatureTrackingAnnotation.cpp",
    "UrlClassifierFeatureTrackingProtection.cpp",
]

EXPORTS.mozilla.net += [
    "AsyncUrlChannelClassifier.h",
    "ChannelClassifierLog.h",
    "ChannelClassifierService.h",
    "ChannelClassifierUtils.h",
    "UrlClassifierCommon.h",
    "UrlClassifierExceptionList.h",
    "UrlClassifierExceptionListEntry.h",
    "UrlClassifierFeatureFactory.h",
    "UrlClassifierFeatureResult.h",
]

LOCAL_INCLUDES += [
    "/netwerk/base",
    "/netwerk/protocol/http",
    "/toolkit/components/content-classifier",
    "/toolkit/components/url-classifier",
]

FINAL_LIBRARY = "xul"

include("/ipc/chromium/chromium-config.mozbuild")
