[WPE][GTK] Provide an implementation of PAL::logLevelString()
authoraperez@igalia.com <aperez@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Oct 2017 19:04:24 +0000 (19:04 +0000)
committeraperez@igalia.com <aperez@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Oct 2017 19:04:24 +0000 (19:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=178263

Reviewed by Carlos Alberto Lopez Perez.

Provide an implementation of PAL::logLevelString() which picks the value from the
WEBCORE_DEBUG environment variable. Logging of notImplemented() calls is always enabled,
which is the same behavior as in WebCore::logLevelString().

* pal/PlatformGTK.cmake: Add LoggingUnix.cpp to the list of sources.
* pal/PlatformWPE.cmake: Add LoggingUnix.cpp to the list of sources.
* pal/unix/LoggingUnix.cpp: Added.
(PAL::logLevelString):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223296 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/PAL/ChangeLog
Source/WebCore/PAL/pal/PlatformGTK.cmake
Source/WebCore/PAL/pal/PlatformWPE.cmake
Source/WebCore/PAL/pal/unix/LoggingUnix.cpp [new file with mode: 0644]

index a65fdb3..de0d676 100644 (file)
@@ -1,3 +1,19 @@
+2017-10-13  Adrian Perez de Castro  <aperez@igalia.com>
+
+        [WPE][GTK] Provide an implementation of PAL::logLevelString()
+        https://bugs.webkit.org/show_bug.cgi?id=178263
+
+        Reviewed by Carlos Alberto Lopez Perez.
+
+        Provide an implementation of PAL::logLevelString() which picks the value from the
+        WEBCORE_DEBUG environment variable. Logging of notImplemented() calls is always enabled,
+        which is the same behavior as in WebCore::logLevelString().
+
+        * pal/PlatformGTK.cmake: Add LoggingUnix.cpp to the list of sources.
+        * pal/PlatformWPE.cmake: Add LoggingUnix.cpp to the list of sources.
+        * pal/unix/LoggingUnix.cpp: Added.
+        (PAL::logLevelString):
+
 2017-10-13  Jer Noble  <jer.noble@apple.com>
 
         Unreviewed build fix; add definitions for IOSurface methods missing on some platforms.
index c6d7bbe..b4ad45c 100644 (file)
@@ -6,6 +6,8 @@ list(APPEND PAL_SOURCES
     system/gtk/SoundGtk.cpp
 
     text/KillRing.cpp
+
+    unix/LoggingUnix.cpp
 )
 
 if (ENABLE_SUBTLE_CRYPTO)
index aab7e1f..25f6694 100644 (file)
@@ -5,6 +5,8 @@ list(APPEND PAL_SOURCES
     system/Sound.cpp
 
     text/KillRing.cpp
+
+    unix/LoggingUnix.cpp
 )
 
 if (ENABLE_SUBTLE_CRYPTO)
diff --git a/Source/WebCore/PAL/pal/unix/LoggingUnix.cpp b/Source/WebCore/PAL/pal/unix/LoggingUnix.cpp
new file mode 100644 (file)
index 0000000..1335d05
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2017, Igalia S.L. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "Logging.h"
+
+#include <wtf/text/WTFString.h>
+
+#if !LOG_DISABLED || !RELEASE_LOG_DISABLED
+
+namespace PAL {
+
+String logLevelString()
+{
+    if (char* logEnv = getenv("WEBKIT_DEBUG")) {
+
+#if defined(NDEBUG)
+        WTFLogAlways("WEBCORE_DEBUG is not empty, but this is a release build. Notice that many log messages will only appear in a debug build.");
+#endif
+
+        // To disable logging notImplemented set the DISABLE_NI_WARNING environment variable to 1.
+        return ASCIILiteral("NotYetImplemented,") + String(logEnv);
+    }
+
+    return String();
+}
+
+} // namespace PAL
+
+#endif // !LOG_DISABLED || !RELEASE_LOG_DISABLED