summaryrefslogtreecommitdiffstats
path: root/toolkit/components/antitracking/AntiTrackingLog.h
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/antitracking/AntiTrackingLog.h')
-rw-r--r--toolkit/components/antitracking/AntiTrackingLog.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/toolkit/components/antitracking/AntiTrackingLog.h b/toolkit/components/antitracking/AntiTrackingLog.h
new file mode 100644
index 0000000000..09d4828c44
--- /dev/null
+++ b/toolkit/components/antitracking/AntiTrackingLog.h
@@ -0,0 +1,66 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* 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_antitrackinglog_h
+#define mozilla_antitrackinglog_h
+
+#include "mozilla/Logging.h"
+#include "nsString.h"
+
+namespace mozilla {
+
+extern LazyLogModule gAntiTrackingLog;
+static const nsCString::size_type sMaxSpecLength = 128;
+
+#define LOG(format) MOZ_LOG(gAntiTrackingLog, mozilla::LogLevel::Debug, format)
+
+#define LOG_SPEC(format, uri) \
+ PR_BEGIN_MACRO \
+ if (MOZ_LOG_TEST(gAntiTrackingLog, mozilla::LogLevel::Debug)) { \
+ nsAutoCString _specStr("(null)"_ns); \
+ if (uri) { \
+ _specStr = (uri)->GetSpecOrDefault(); \
+ } \
+ _specStr.Truncate(std::min(_specStr.Length(), sMaxSpecLength)); \
+ const char* _spec = _specStr.get(); \
+ LOG(format); \
+ } \
+ PR_END_MACRO
+
+#define LOG_SPEC2(format, uri1, uri2) \
+ PR_BEGIN_MACRO \
+ if (MOZ_LOG_TEST(gAntiTrackingLog, mozilla::LogLevel::Debug)) { \
+ nsAutoCString _specStr1("(null)"_ns); \
+ if (uri1) { \
+ _specStr1 = (uri1)->GetSpecOrDefault(); \
+ } \
+ _specStr1.Truncate(std::min(_specStr1.Length(), sMaxSpecLength)); \
+ const char* _spec1 = _specStr1.get(); \
+ nsAutoCString _specStr2("(null)"_ns); \
+ if (uri2) { \
+ _specStr2 = (uri2)->GetSpecOrDefault(); \
+ } \
+ _specStr2.Truncate(std::min(_specStr2.Length(), sMaxSpecLength)); \
+ const char* _spec2 = _specStr2.get(); \
+ LOG(format); \
+ } \
+ PR_END_MACRO
+
+#define LOG_PRIN(format, principal) \
+ PR_BEGIN_MACRO \
+ if (MOZ_LOG_TEST(gAntiTrackingLog, mozilla::LogLevel::Debug)) { \
+ nsAutoCString _specStr("(null)"_ns); \
+ if (principal) { \
+ (principal)->GetAsciiSpec(_specStr); \
+ } \
+ _specStr.Truncate(std::min(_specStr.Length(), sMaxSpecLength)); \
+ const char* _spec = _specStr.get(); \
+ LOG(format); \
+ } \
+ PR_END_MACRO
+} // namespace mozilla
+
+#endif // mozilla_antitrackinglog_h