Title: [225655] trunk/Source/WebKit
Revision
225655
Author
[email protected]
Date
2017-12-07 16:54:51 -0800 (Thu, 07 Dec 2017)

Log Message

Propagate WebKit2Logging channels to the Web Process
https://bugs.webkit.org/show_bug.cgi?id=180517

Reviewed by Tim Horton.

If you set WebKit2Logging, you want those channels active in both the UI process and
the web process, but without tricky 'defaults' gyrations, setting them in the web process
was hard.

Instead, send them through to the process via WebProcessCreationParameters, as we do
for WebCoreLogging channels.

* Platform/LogInitialization.h:
* Platform/Logging.cpp:
(WebKit::initializeLogChannelsIfNecessary):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (225654 => 225655)


--- trunk/Source/WebKit/ChangeLog	2017-12-08 00:22:55 UTC (rev 225654)
+++ trunk/Source/WebKit/ChangeLog	2017-12-08 00:54:51 UTC (rev 225655)
@@ -1,5 +1,31 @@
 2017-12-07  Simon Fraser  <[email protected]>
 
+        Propagate WebKit2Logging channels to the Web Process
+        https://bugs.webkit.org/show_bug.cgi?id=180517
+
+        Reviewed by Tim Horton.
+
+        If you set WebKit2Logging, you want those channels active in both the UI process and
+        the web process, but without tricky 'defaults' gyrations, setting them in the web process
+        was hard.
+
+        Instead, send them through to the process via WebProcessCreationParameters, as we do
+        for WebCoreLogging channels.
+
+        * Platform/LogInitialization.h:
+        * Platform/Logging.cpp:
+        (WebKit::initializeLogChannelsIfNecessary):
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::encode const):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+
+2017-12-07  Simon Fraser  <[email protected]>
+
         Add logging for EditorState in RemoteLayerTree transactions
         https://bugs.webkit.org/show_bug.cgi?id=180515
 

Modified: trunk/Source/WebKit/Platform/LogInitialization.h (225654 => 225655)


--- trunk/Source/WebKit/Platform/LogInitialization.h	2017-12-08 00:22:55 UTC (rev 225654)
+++ trunk/Source/WebKit/Platform/LogInitialization.h	2017-12-08 00:54:51 UTC (rev 225655)
@@ -31,7 +31,7 @@
 
 namespace WebKit {
 
-void initializeLogChannelsIfNecessary(void);
+void initializeLogChannelsIfNecessary(std::optional<String> = std::nullopt);
 String logLevelString();
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/Platform/Logging.cpp (225654 => 225655)


--- trunk/Source/WebKit/Platform/Logging.cpp	2017-12-08 00:22:55 UTC (rev 225654)
+++ trunk/Source/WebKit/Platform/Logging.cpp	2017-12-08 00:54:51 UTC (rev 225655)
@@ -42,15 +42,17 @@
 namespace WebKit {
 
 static const size_t logChannelCount = WTF_ARRAY_LENGTH(logChannels);
+static bool logChannelsNeedInitialization = true;
 
-void initializeLogChannelsIfNecessary()
+void initializeLogChannelsIfNecessary(std::optional<String> logChannelString)
 {
-    static bool haveInitializedLoggingChannels = false;
-    if (haveInitializedLoggingChannels)
+    if (!logChannelsNeedInitialization && !logChannelString)
         return;
-    haveInitializedLoggingChannels = true;
-    
-    WTFInitializeLogChannelStatesFromString(logChannels, logChannelCount, logLevelString().utf8().data());
+
+    logChannelsNeedInitialization = false;
+
+    String enabledChannelsString = logChannelString ? logChannelString.value() : logLevelString();
+    WTFInitializeLogChannelStatesFromString(logChannels, logChannelCount, enabledChannelsString.utf8().data());
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp (225654 => 225655)


--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp	2017-12-08 00:22:55 UTC (rev 225654)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp	2017-12-08 00:54:51 UTC (rev 225655)
@@ -67,6 +67,7 @@
 #endif
     encoder << mediaKeyStorageDirectory;
     encoder << webCoreLoggingChannels;
+    encoder << webKitLoggingChannels;
     encoder << mediaKeyStorageDirectoryExtensionHandle;
 #if ENABLE(MEDIA_STREAM)
     encoder << audioCaptureExtensionHandle;
@@ -190,6 +191,8 @@
         return false;
     if (!decoder.decode(parameters.webCoreLoggingChannels))
         return false;
+    if (!decoder.decode(parameters.webKitLoggingChannels))
+        return false;
     if (!decoder.decode(parameters.mediaKeyStorageDirectoryExtensionHandle))
         return false;
 #if ENABLE(MEDIA_STREAM)

Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.h (225654 => 225655)


--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.h	2017-12-08 00:22:55 UTC (rev 225654)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.h	2017-12-08 00:54:51 UTC (rev 225655)
@@ -95,6 +95,7 @@
     String mediaKeyStorageDirectory;
 
     String webCoreLoggingChannels;
+    String webKitLoggingChannels;
 
     Vector<String> urlSchemesRegisteredAsEmptyDocument;
     Vector<String> urlSchemesRegisteredAsSecure;

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (225654 => 225655)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2017-12-08 00:22:55 UTC (rev 225654)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2017-12-08 00:54:51 UTC (rev 225655)
@@ -264,6 +264,7 @@
 
 #if !LOG_DISABLED || !RELEASE_LOG_DISABLED
     parameters.webCoreLoggingChannels = [[NSUserDefaults standardUserDefaults] stringForKey:@"WebCoreLogging"];
+    parameters.webKitLoggingChannels = [[NSUserDefaults standardUserDefaults] stringForKey:@"WebKit2Logging"];
 #endif
 
     // FIXME: Remove this and related parameter when <rdar://problem/29448368> is fixed.

Modified: trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (225654 => 225655)


--- trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2017-12-08 00:22:55 UTC (rev 225654)
+++ trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2017-12-08 00:54:51 UTC (rev 225655)
@@ -28,6 +28,7 @@
 #import "WebProcessCocoa.h"
 
 #import "LegacyCustomProtocolManager.h"
+#import "LogInitialization.h"
 #import "Logging.h"
 #import "ObjCObjectGraph.h"
 #import "SandboxExtension.h"
@@ -113,6 +114,7 @@
 {
 #if !LOG_DISABLED || !RELEASE_LOG_DISABLED
     WebCore::initializeLogChannelsIfNecessary(parameters.webCoreLoggingChannels);
+    WebKit::initializeLogChannelsIfNecessary(parameters.webKitLoggingChannels);
 #endif
 
     WebCore::setApplicationBundleIdentifier(parameters.uiProcessBundleIdentifier);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to