[webkit-changes] [WebKit/WebKit] 66c45d: [WebDriver][BiDi] Implement the log module

Lauro Moura noreply at github.com
Thu Dec 19 21:20:47 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 66c45d7c64726e3b9d5700305bd2945c7a978e4d
      https://github.com/WebKit/WebKit/commit/66c45d7c64726e3b9d5700305bd2945c7a978e4d
  Author: Lauro Moura <lmoura at igalia.com>
  Date:   2024-12-19 (Thu, 19 Dec 2024)

  Changed paths:
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    A Source/WebCore/automation/AutomationInstrumentation.cpp
    A Source/WebCore/automation/AutomationInstrumentation.h
    M Source/WebCore/page/PageConsoleClient.cpp
    M Source/WebCore/workers/WorkerGlobalScope.cpp
    M Source/WebDriver/Session.cpp
    M Source/WebDriver/Session.h
    M Source/WebDriver/SessionHost.cpp
    M Source/WebDriver/SessionHost.h
    M Source/WebDriver/WebDriverService.cpp
    M Source/WebDriver/WebDriverService.h
    M Source/WebDriver/WebSocketServer.cpp
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/JavaScriptCore.serialization.in
    M Source/WebKit/UIProcess/Automation/Automation.json
    M Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp
    M Source/WebKit/UIProcess/Automation/WebAutomationSession.h
    A Source/WebKit/UIProcess/Automation/WebAutomationSession.messages.in
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp
    M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  [WebDriver][BiDi] Implement the log module
https://bugs.webkit.org/show_bug.cgi?id=271956

Reviewed by BJ Burg and Devin Rousso.

Adds the basic infrastructure for global WebDriver BiDi events,
using the `log.entryAdded` event as the first event implemented.

Console logging is supported through a new client class that gets
notified of console messages by the new `AutomationInstrumentation`,
based on the existing `InspectorInstrumentation` class.

This version supports text console messages, missing advanced
information like stacktraces, extra args and realm id.

This commit also adds back the WebAutomationSession.messages.in, so the
WebProcess can notify the UIProcess when a new console message arrives.
It was originally removed in 286516 at main. It also includes follow up
fixes after the AbstractRefCounted changes from 287239 at main. Note that
as we don't have a preference for WebDriver yet, these messages are
marked as ExceptionForEnabledBy.

Also, WebDriver BiDi is enabled in developer builds for WPE, so we can
actually test it on CI.

* Source/WebCore/CMakeLists.txt:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/automation/AutomationInstrumentation.cpp: Added.
(WebCore::Inspector::automationClient):
(WebCore::AutomationInstrumentation::setClient):
(WebCore::AutomationInstrumentation::clearClient):
(WebCore::logEntryLevelForMessage):
(WebCore::logEntryMethodNameForMessage):
(WebCore::AutomationInstrumentation::addMessageToConsole):
* Source/WebCore/automation/AutomationInstrumentation.h: Added.
* Source/WebCore/page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
(WebCore::PageConsoleClient::messageWithTypeAndLevel):
* Source/WebCore/workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
* Source/WebDriver/Session.cpp:
(WebDriver::Session::Session):
(WebDriver::Session::dispatchEvent):
(WebDriver::Session::doLogEntryAdded):
(WebDriver::Session::emitEvent):
(WebDriver::Session::eventIsEnabled):
(WebDriver::Session::enableGlobalEvent):
(WebDriver::Session::disableGlobalEvent):
(WebDriver::Session::toInternalEventName):
* Source/WebDriver/Session.h:
(WebDriver::Session::create):
* Source/WebDriver/SessionHost.cpp:
(WebDriver::SessionHost::dispatchMessage):
(WebDriver::SessionHost::dispatchEvent):
* Source/WebDriver/SessionHost.h:
* Source/WebDriver/WebDriverService.cpp:
(WebDriver::WebDriverService::bidiSessionSubscribe):
(WebDriver::WebDriverService::bidiSessionUnsubscribe):
* Source/WebDriver/WebDriverService.h:
* Source/WebDriver/WebSocketServer.cpp:
(WebDriver::WebSocketMessageHandler::Message::fail):
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/JavaScriptCore.serialization.in:
* Source/WebKit/UIProcess/Automation/Automation.json:
* Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::setProcessPool):
(WebKit::WebAutomationSession::logEntryAdded):
* Source/WebKit/UIProcess/Automation/WebAutomationSession.h:
* Source/WebKit/UIProcess/Automation/WebAutomationSession.messages.in: Copied from Source/WebKit/Shared/JavaScriptCore.serialization.in.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::WebAutomationSessionProxy):
(WebKit::WebAutomationSessionProxy::~WebAutomationSessionProxy):
(WebKit::WebAutomationSessionProxy::addMessageToConsole):
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h:
* Source/cmake/OptionsWPE.cmake:

Canonical link: https://commits.webkit.org/288145@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list