From def92d1b8e9d373e2f6f27c366d578d97d8960c6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 15 May 2024 05:34:50 +0200 Subject: Merging upstream version 126.0. Signed-off-by: Daniel Baumann --- .../cookiebanners/nsCookieBannerTelemetryService.h | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 toolkit/components/cookiebanners/nsCookieBannerTelemetryService.h (limited to 'toolkit/components/cookiebanners/nsCookieBannerTelemetryService.h') diff --git a/toolkit/components/cookiebanners/nsCookieBannerTelemetryService.h b/toolkit/components/cookiebanners/nsCookieBannerTelemetryService.h new file mode 100644 index 0000000000..1236343ad9 --- /dev/null +++ b/toolkit/components/cookiebanners/nsCookieBannerTelemetryService.h @@ -0,0 +1,47 @@ +/* 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/. */ + +#ifndef mozilla_nsCookieBannerTelemetryService_h__ +#define mozilla_nsCookieBannerTelemetryService_h__ + +#include "nsICookieBannerTelemetryService.h" + +#include "nsIObserver.h" + +class nsICookie; + +namespace mozilla { +class nsCookieBannerTelemetryService final + : public nsICookieBannerTelemetryService, + public nsIObserver { + NS_DECL_ISUPPORTS + NS_DECL_NSIOBSERVER + + NS_DECL_NSICOOKIEBANNERTELEMETRYSERVICE + + public: + static already_AddRefed GetSingleton(); + + private: + nsCookieBannerTelemetryService() = default; + ~nsCookieBannerTelemetryService() = default; + + bool mIsInitialized = false; + bool mIsSearchServiceInitialized = false; + + [[nodiscard]] nsresult Init(); + + [[nodiscard]] nsresult Shutdown(); + + // Record the telemetry regarding the GDPR choice on Google Search domains. + // We only record if the default search engine is Google. When passing no + // cookie, we will walk through all cookies under Google Search domains. + // Otherwise, we will report the GDPR choice according to the given cookie. + [[nodiscard]] nsresult MaybeReportGoogleGDPRChoiceTelemetry( + nsICookie* aCookie = nullptr, bool aReportEvent = false); +}; + +} // namespace mozilla + +#endif -- cgit v1.2.3