Skip to content

Commit

Permalink
Use a strongly typed identifier for WebScriptMessageHandler
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=270751

Reviewed by Darin Adler.

* Source/WebKit/Scripts/webkit/messages.py:
(serialized_identifiers):
* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::serializedIdentifiers):
* Source/WebKit/Shared/ScriptMessageHandlerIdentifier.h: Copied from Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.messages.in.
* Source/WebKit/Shared/WTFArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebUserContentControllerDataTypes.h:
* Source/WebKit/Shared/WebUserContentControllerDataTypes.serialization.in:
* Source/WebKit/UIProcess/UserContent/WebScriptMessageHandler.h:
* Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
* Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h:
* Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserMessageHandlerDescriptorProxy::create):
(WebKit::WebUserMessageHandlerDescriptorProxy::identifier):
(WebKit::WebUserMessageHandlerDescriptorProxy::WebUserMessageHandlerDescriptorProxy):
(WebKit::WebUserContentController::removeUserScriptMessageHandler):
(WebKit::WebUserContentController::addUserScriptMessageHandlerInternal):
(WebKit::WebUserContentController::removeUserScriptMessageHandlerInternal):
* Source/WebKit/WebProcess/UserContent/WebUserContentController.h:
* Source/WebKit/WebProcess/UserContent/WebUserContentController.messages.in:

Canonical link: https://commits.webkit.org/275895@main
  • Loading branch information
cdumez committed Mar 10, 2024
1 parent fd14342 commit 209761a
Show file tree
Hide file tree
Showing 14 changed files with 68 additions and 21 deletions.
1 change: 1 addition & 0 deletions Source/WebKit/Scripts/webkit/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,7 @@ def serialized_identifiers():
'WebKit::RenderingUpdateID',
'WebKit::RetrieveRecordResponseBodyCallbackIdentifier',
'WebKit::SampleBufferDisplayLayerIdentifier',
'WebKit::ScriptMessageHandlerIdentifier',
'WebKit::ShapeDetectionIdentifier',
'WebKit::StorageAreaIdentifier',
'WebKit::StorageAreaImplIdentifier',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
#include "RenderingUpdateID.h"
#include "RetrieveRecordResponseBodyCallbackIdentifier.h"
#include "SampleBufferDisplayLayerIdentifier.h"
#include "ScriptMessageHandlerIdentifier.h"
#include "ShapeDetectionIdentifier.h"
#include "StorageAreaIdentifier.h"
#include "StorageAreaImplIdentifier.h"
Expand Down Expand Up @@ -532,6 +533,7 @@ Vector<ASCIILiteral> serializedIdentifiers()
static_assert(sizeof(uint64_t) == sizeof(WebKit::RenderingUpdateID));
static_assert(sizeof(uint64_t) == sizeof(WebKit::RetrieveRecordResponseBodyCallbackIdentifier));
static_assert(sizeof(uint64_t) == sizeof(WebKit::SampleBufferDisplayLayerIdentifier));
static_assert(sizeof(uint64_t) == sizeof(WebKit::ScriptMessageHandlerIdentifier));
static_assert(sizeof(uint64_t) == sizeof(WebKit::ShapeDetectionIdentifier));
static_assert(sizeof(uint64_t) == sizeof(WebKit::StorageAreaIdentifier));
static_assert(sizeof(uint64_t) == sizeof(WebKit::StorageAreaImplIdentifier));
Expand Down Expand Up @@ -643,6 +645,7 @@ Vector<ASCIILiteral> serializedIdentifiers()
"WebKit::RenderingUpdateID"_s,
"WebKit::RetrieveRecordResponseBodyCallbackIdentifier"_s,
"WebKit::SampleBufferDisplayLayerIdentifier"_s,
"WebKit::ScriptMessageHandlerIdentifier"_s,
"WebKit::ShapeDetectionIdentifier"_s,
"WebKit::StorageAreaIdentifier"_s,
"WebKit::StorageAreaImplIdentifier"_s,
Expand Down
33 changes: 33 additions & 0 deletions Source/WebKit/Shared/ScriptMessageHandlerIdentifier.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
* Copyright (C) 2024 Apple Inc. 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. AND ITS CONTRIBUTORS ``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 ITS 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.
*/

#pragma once

namespace WebKit {

enum class ScriptMessageHandlerIdentifierType { };
using ScriptMessageHandlerIdentifier = ObjectIdentifier<ScriptMessageHandlerIdentifierType>;

} // namespace WebKit
1 change: 1 addition & 0 deletions Source/WebKit/Shared/WTFArgumentCoders.serialization.in
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ template: enum class WebKit::RemoteRemoteCommandListenerIdentifierType
template: enum class WebKit::RemoteSourceBufferIdentifierType
template: enum class WebKit::RetrieveRecordResponseBodyCallbackIdentifierType
template: enum class WebKit::SampleBufferDisplayLayerIdentifierType
template: enum class WebKit::ScriptMessageHandlerIdentifierType
template: enum class WebKit::ShapeDetectionIdentifierType
template: enum class WebKit::StorageAreaImplIdentifierType
template: enum class WebKit::StorageAreaMapIdentifierType
Expand Down
3 changes: 2 additions & 1 deletion Source/WebKit/Shared/WebUserContentControllerDataTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#pragma once

#include "ContentWorldShared.h"
#include "ScriptMessageHandlerIdentifier.h"
#include "UserScriptIdentifier.h"
#include "UserStyleSheetIdentifier.h"
#include <WebCore/UserScript.h>
Expand All @@ -51,7 +52,7 @@ struct WebUserStyleSheetData {
};

struct WebScriptMessageHandlerData {
uint64_t identifier;
ScriptMessageHandlerIdentifier identifier;
ContentWorldIdentifier worldIdentifier;
String name;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ header: "WebUserContentControllerDataTypes.h"

header: "WebUserContentControllerDataTypes.h"
[CustomHeader] struct WebKit::WebScriptMessageHandlerData {
uint64_t identifier;
WebKit::ScriptMessageHandlerIdentifier identifier;
WebKit::ContentWorldIdentifier worldIdentifier;
String name;
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#pragma once

#include "APIContentWorld.h"
#include "ScriptMessageHandlerIdentifier.h"
#include "WebUserContentControllerDataTypes.h"
#include <wtf/Identified.h>
#include <wtf/Ref.h>
Expand All @@ -48,7 +49,7 @@ class WebPageProxy;
class WebFrameProxy;
struct FrameInfoData;

class WebScriptMessageHandler : public RefCounted<WebScriptMessageHandler>, public LegacyIdentified<WebScriptMessageHandler> {
class WebScriptMessageHandler : public RefCounted<WebScriptMessageHandler>, public Identified<ScriptMessageHandlerIdentifier> {
public:
class Client {
public:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,13 +326,13 @@ void WebUserContentControllerProxy::removeAllUserMessageHandlers()
m_scriptMessageHandlers.clear();
}

void WebUserContentControllerProxy::didPostMessage(WebPageProxyIdentifier pageProxyID, FrameInfoData&& frameInfoData, uint64_t messageHandlerID, std::span<const uint8_t> dataReference, CompletionHandler<void(std::span<const uint8_t>, const String&)>&& reply)
void WebUserContentControllerProxy::didPostMessage(WebPageProxyIdentifier pageProxyID, FrameInfoData&& frameInfoData, ScriptMessageHandlerIdentifier messageHandlerID, std::span<const uint8_t> dataReference, CompletionHandler<void(std::span<const uint8_t>, const String&)>&& reply)
{
auto page = WebProcessProxy::webPage(pageProxyID);
if (!page)
return;

if (!HashMap<uint64_t, RefPtr<WebScriptMessageHandler>>::isValidKey(messageHandlerID))
if (!HashMap<ScriptMessageHandlerIdentifier, RefPtr<WebScriptMessageHandler>>::isValidKey(messageHandlerID))
return;

RefPtr<WebScriptMessageHandler> handler = m_scriptMessageHandlers.get(messageHandlerID);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "APIObject.h"
#include "ContentWorldShared.h"
#include "MessageReceiver.h"
#include "ScriptMessageHandlerIdentifier.h"
#include "UserContentControllerIdentifier.h"
#include "WebPageProxyIdentifier.h"
#include "WebUserContentControllerProxyMessages.h"
Expand Down Expand Up @@ -120,14 +121,14 @@ class WebUserContentControllerProxy : public API::ObjectImpl<API::Object::Type::
// IPC::MessageReceiver.
void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;

void didPostMessage(WebPageProxyIdentifier, FrameInfoData&&, uint64_t messageHandlerID, std::span<const uint8_t>, CompletionHandler<void(std::span<const uint8_t>, const String&)>&&);
void didPostMessage(WebPageProxyIdentifier, FrameInfoData&&, ScriptMessageHandlerIdentifier, std::span<const uint8_t>, CompletionHandler<void(std::span<const uint8_t>, const String&)>&&);

void addContentWorld(API::ContentWorld&);

WeakHashSet<WebProcessProxy> m_processes;
Ref<API::Array> m_userScripts;
Ref<API::Array> m_userStyleSheets;
HashMap<uint64_t, RefPtr<WebScriptMessageHandler>> m_scriptMessageHandlers;
HashMap<ScriptMessageHandlerIdentifier, RefPtr<WebScriptMessageHandler>> m_scriptMessageHandlers;
HashSet<ContentWorldIdentifier> m_associatedContentWorlds;

#if ENABLE(CONTENT_EXTENSIONS)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
*/

messages -> WebUserContentControllerProxy {
DidPostMessage(WebKit::WebPageProxyIdentifier pageID, struct WebKit::FrameInfoData frameInfoData, uint64_t messageHandlerID, std::span<const uint8_t> message) -> (std::span<const uint8_t> resultValue, String errorMessage)
DidPostMessage(WebKit::WebPageProxyIdentifier pageID, struct WebKit::FrameInfoData frameInfoData, WebKit::ScriptMessageHandlerIdentifier messageHandlerID, std::span<const uint8_t> message) -> (std::span<const uint8_t> resultValue, String errorMessage)
}
4 changes: 4 additions & 0 deletions Source/WebKit/WebKit.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1098,6 +1098,7 @@
461E1BF2279A0116006AF53B /* WebSharedWorkerContextManagerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 461E1BEF279A010F006AF53B /* WebSharedWorkerContextManagerConnection.h */; };
462CD80C28204DFA00F0EA04 /* MarkSurfacesAsVolatileRequestIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 462CD80B28204DF100F0EA04 /* MarkSurfacesAsVolatileRequestIdentifier.h */; };
46301002298477B100715DB1 /* WKWebGeolocationPolicyDecider.h in Headers */ = {isa = PBXBuildFile; fileRef = 463010012984778C00715DB1 /* WKWebGeolocationPolicyDecider.h */; };
463BB93A2B9D08D80098C5C3 /* ScriptMessageHandlerIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 463BB9392B9D08D50098C5C3 /* ScriptMessageHandlerIdentifier.h */; };
463FD4801EB9459600A2982C /* WKProcessTerminationReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 463FD47F1EB9458400A2982C /* WKProcessTerminationReason.h */; settings = {ATTRIBUTES = (Private, ); }; };
463FD4821EB94EC000A2982C /* ProcessTerminationReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 463FD4811EB94EAD00A2982C /* ProcessTerminationReason.h */; };
4656F7BD27ACAA8D00CB3D7C /* WebSharedWorker.h in Headers */ = {isa = PBXBuildFile; fileRef = 4656F7BC27ACAA8100CB3D7C /* WebSharedWorker.h */; };
Expand Down Expand Up @@ -5299,6 +5300,7 @@
463236852314833F00A48FA7 /* UIRemoteObjectRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIRemoteObjectRegistry.h; sourceTree = "<group>"; };
463236862314833F00A48FA7 /* UIRemoteObjectRegistry.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = UIRemoteObjectRegistry.cpp; sourceTree = "<group>"; };
463473B623561D2A00BE1A84 /* WebBackForwardCacheEntry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebBackForwardCacheEntry.cpp; sourceTree = "<group>"; };
463BB9392B9D08D50098C5C3 /* ScriptMessageHandlerIdentifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScriptMessageHandlerIdentifier.h; sourceTree = "<group>"; };
463FD47F1EB9458400A2982C /* WKProcessTerminationReason.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKProcessTerminationReason.h; sourceTree = "<group>"; };
463FD4811EB94EAD00A2982C /* ProcessTerminationReason.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProcessTerminationReason.h; sourceTree = "<group>"; };
46411E3D2AFDA94400CC00E4 /* WebCompiledContentRuleListData.serialization.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebCompiledContentRuleListData.serialization.in; sourceTree = "<group>"; };
Expand Down Expand Up @@ -9085,6 +9087,7 @@
1AAB4A8C1296F0A20023952F /* SandboxExtension.h */,
FA1473272B06EE6200765CC1 /* SandboxExtension.serialization.in */,
E1E552C316AE065E004ED653 /* SandboxInitializationParameters.h */,
463BB9392B9D08D50098C5C3 /* ScriptMessageHandlerIdentifier.h */,
2D65D196274B8E84009C4101 /* ScrollingAccelerationCurve.cpp */,
2D65D195274B8E84009C4101 /* ScrollingAccelerationCurve.h */,
460B87352AFD9F8200200D8C /* ScrollingAccelerationCurve.serialization.in */,
Expand Down Expand Up @@ -16493,6 +16496,7 @@
E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */,
E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */,
7BAB111025DD02B3008FC479 /* ScopedActiveMessageReceiveQueue.h in Headers */,
463BB93A2B9D08D80098C5C3 /* ScriptMessageHandlerIdentifier.h in Headers */,
E4D54D0421F1D72D007E3C36 /* ScrollingTreeFrameScrollingNodeRemoteIOS.h in Headers */,
0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */,
0F931C1C18C5711900DBB8D4 /* ScrollingTreeScrollingNodeDelegateIOS.h in Headers */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include "FrameInfoData.h"
#include "InjectUserScriptImmediately.h"
#include "InjectedBundleScriptWorld.h"
#include "ScriptMessageHandlerIdentifier.h"
#include "WebCompiledContentRuleList.h"
#include "WebFrame.h"
#include "WebPage.h"
Expand Down Expand Up @@ -257,7 +258,7 @@ void WebUserContentController::removeAllUserStyleSheets(const Vector<ContentWorl
#if ENABLE(USER_MESSAGE_HANDLERS)
class WebUserMessageHandlerDescriptorProxy : public WebCore::UserMessageHandlerDescriptor {
public:
static Ref<WebUserMessageHandlerDescriptorProxy> create(WebUserContentController* controller, const AtomString& name, InjectedBundleScriptWorld& world, uint64_t identifier)
static Ref<WebUserMessageHandlerDescriptorProxy> create(WebUserContentController* controller, const AtomString& name, InjectedBundleScriptWorld& world, ScriptMessageHandlerIdentifier identifier)
{
return adoptRef(*new WebUserMessageHandlerDescriptorProxy(controller, name, world, identifier));
}
Expand All @@ -266,10 +267,10 @@ class WebUserMessageHandlerDescriptorProxy : public WebCore::UserMessageHandlerD
{
}

uint64_t identifier() { return m_identifier; }
ScriptMessageHandlerIdentifier identifier() { return m_identifier; }

private:
WebUserMessageHandlerDescriptorProxy(WebUserContentController* controller, const AtomString& name, InjectedBundleScriptWorld& world, uint64_t identifier)
WebUserMessageHandlerDescriptorProxy(WebUserContentController* controller, const AtomString& name, InjectedBundleScriptWorld& world, ScriptMessageHandlerIdentifier identifier)
: WebCore::UserMessageHandlerDescriptor(name, world.coreWorld())
, m_controller(controller)
, m_identifier(identifier)
Expand Down Expand Up @@ -305,7 +306,7 @@ class WebUserMessageHandlerDescriptorProxy : public WebCore::UserMessageHandlerD
}

RefPtr<WebUserContentController> m_controller;
uint64_t m_identifier;
ScriptMessageHandlerIdentifier m_identifier;
};
#endif

Expand All @@ -327,7 +328,7 @@ void WebUserContentController::addUserScriptMessageHandlers(const Vector<WebScri
#endif
}

void WebUserContentController::removeUserScriptMessageHandler(ContentWorldIdentifier worldIdentifier, uint64_t userScriptMessageHandlerIdentifier)
void WebUserContentController::removeUserScriptMessageHandler(ContentWorldIdentifier worldIdentifier, ScriptMessageHandlerIdentifier userScriptMessageHandlerIdentifier)
{
#if ENABLE(USER_MESSAGE_HANDLERS)
auto it = worldMap().find(worldIdentifier);
Expand Down Expand Up @@ -379,15 +380,15 @@ void WebUserContentController::removeAllUserScriptMessageHandlersForWorlds(const
}

#if ENABLE(USER_MESSAGE_HANDLERS)
void WebUserContentController::addUserScriptMessageHandlerInternal(InjectedBundleScriptWorld& world, uint64_t userScriptMessageHandlerIdentifier, const AtomString& name)
void WebUserContentController::addUserScriptMessageHandlerInternal(InjectedBundleScriptWorld& world, ScriptMessageHandlerIdentifier userScriptMessageHandlerIdentifier, const AtomString& name)
{
auto& messageHandlersInWorld = m_userMessageHandlers.ensure(&world, [] { return Vector<std::pair<uint64_t, RefPtr<WebUserMessageHandlerDescriptorProxy>>> { }; }).iterator->value;
auto& messageHandlersInWorld = m_userMessageHandlers.ensure(&world, [] { return Vector<std::pair<ScriptMessageHandlerIdentifier, RefPtr<WebUserMessageHandlerDescriptorProxy>>> { }; }).iterator->value;
if (messageHandlersInWorld.findIf([&](auto& pair) { return pair.first == userScriptMessageHandlerIdentifier; }) != notFound)
return;
messageHandlersInWorld.append(std::make_pair(userScriptMessageHandlerIdentifier, WebUserMessageHandlerDescriptorProxy::create(this, name, world, userScriptMessageHandlerIdentifier)));
}

void WebUserContentController::removeUserScriptMessageHandlerInternal(InjectedBundleScriptWorld& world, uint64_t userScriptMessageHandlerIdentifier)
void WebUserContentController::removeUserScriptMessageHandlerInternal(InjectedBundleScriptWorld& world, ScriptMessageHandlerIdentifier userScriptMessageHandlerIdentifier)
{
auto it = m_userMessageHandlers.find(&world);
if (it == m_userMessageHandlers.end())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#pragma once

#include "MessageReceiver.h"
#include "ScriptMessageHandlerIdentifier.h"
#include "UserContentControllerIdentifier.h"
#include "UserScriptIdentifier.h"
#include "UserStyleSheetIdentifier.h"
Expand Down Expand Up @@ -101,7 +102,7 @@ class WebUserContentController final : public WebCore::UserContentProvider, publ
void removeUserStyleSheet(ContentWorldIdentifier, UserStyleSheetIdentifier);
void removeAllUserStyleSheets(const Vector<ContentWorldIdentifier>&);

void removeUserScriptMessageHandler(ContentWorldIdentifier, uint64_t userScriptMessageHandlerIdentifier);
void removeUserScriptMessageHandler(ContentWorldIdentifier, ScriptMessageHandlerIdentifier);
void removeAllUserScriptMessageHandlersForWorlds(const Vector<ContentWorldIdentifier>&);
void removeAllUserScriptMessageHandlers();

Expand All @@ -115,8 +116,8 @@ class WebUserContentController final : public WebCore::UserContentProvider, publ
void addUserStyleSheetInternal(InjectedBundleScriptWorld&, const std::optional<UserStyleSheetIdentifier>&, WebCore::UserStyleSheet&&);
void removeUserStyleSheetInternal(InjectedBundleScriptWorld&, UserStyleSheetIdentifier);
#if ENABLE(USER_MESSAGE_HANDLERS)
void addUserScriptMessageHandlerInternal(InjectedBundleScriptWorld&, uint64_t userScriptMessageHandlerIdentifier, const AtomString& name);
void removeUserScriptMessageHandlerInternal(InjectedBundleScriptWorld&, uint64_t userScriptMessageHandlerIdentifier);
void addUserScriptMessageHandlerInternal(InjectedBundleScriptWorld&, ScriptMessageHandlerIdentifier, const AtomString& name);
void removeUserScriptMessageHandlerInternal(InjectedBundleScriptWorld&, ScriptMessageHandlerIdentifier);
#endif

UserContentControllerIdentifier m_identifier;
Expand All @@ -128,7 +129,7 @@ class WebUserContentController final : public WebCore::UserContentProvider, publ
WorldToUserStyleSheetMap m_userStyleSheets;

#if ENABLE(USER_MESSAGE_HANDLERS)
typedef HashMap<RefPtr<InjectedBundleScriptWorld>, Vector<std::pair<uint64_t, RefPtr<WebUserMessageHandlerDescriptorProxy>>>> WorldToUserMessageHandlerVectorMap;
typedef HashMap<RefPtr<InjectedBundleScriptWorld>, Vector<std::pair<ScriptMessageHandlerIdentifier, RefPtr<WebUserMessageHandlerDescriptorProxy>>>> WorldToUserMessageHandlerVectorMap;
WorldToUserMessageHandlerVectorMap m_userMessageHandlers;
#endif
#if ENABLE(CONTENT_EXTENSIONS)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ messages -> WebUserContentController {
RemoveAllUserStyleSheets(Vector<WebKit::ContentWorldIdentifier> worldIdentifiers);

AddUserScriptMessageHandlers(Vector<WebKit::WebScriptMessageHandlerData> scriptMessageHandlers);
RemoveUserScriptMessageHandler(WebKit::ContentWorldIdentifier worldIdentifier, uint64_t identifier);
RemoveUserScriptMessageHandler(WebKit::ContentWorldIdentifier worldIdentifier, WebKit::ScriptMessageHandlerIdentifier identifier);
RemoveAllUserScriptMessageHandlersForWorlds(Vector<WebKit::ContentWorldIdentifier> worldIdentifiers);
RemoveAllUserScriptMessageHandlers();

Expand Down

0 comments on commit 209761a

Please sign in to comment.