Changeset 244657 in webkit
- Timestamp:
- Apr 25, 2019, 11:54:17 AM (7 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 19 edited
-
ChangeLog (modified) (1 diff)
-
inspector/remote/RemoteConnectionToTarget.cpp (modified) (3 diffs)
-
inspector/remote/RemoteConnectionToTarget.h (modified) (2 diffs)
-
inspector/remote/RemoteControllableTarget.h (modified) (3 diffs)
-
inspector/remote/RemoteInspector.cpp (modified) (8 diffs)
-
inspector/remote/RemoteInspector.h (modified) (12 diffs)
-
inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm (modified) (3 diffs)
-
inspector/remote/cocoa/RemoteInspectorCocoa.mm (modified) (7 diffs)
-
inspector/remote/glib/RemoteInspectorGlib.cpp (modified) (6 diffs)
-
inspector/remote/socket/RemoteInspectorConnectionClient.cpp (modified) (2 diffs)
-
inspector/remote/socket/RemoteInspectorConnectionClient.h (modified) (1 diff)
-
inspector/remote/socket/RemoteInspectorMessageParser.cpp (modified) (2 diffs)
-
inspector/remote/socket/RemoteInspectorMessageParser.h (modified) (2 diffs)
-
inspector/remote/socket/RemoteInspectorServer.cpp (modified) (7 diffs)
-
inspector/remote/socket/RemoteInspectorServer.h (modified) (1 diff)
-
inspector/remote/socket/RemoteInspectorSocket.cpp (modified) (4 diffs)
-
inspector/remote/socket/RemoteInspectorSocket.h (modified) (2 diffs)
-
inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp (modified) (10 diffs)
-
inspector/remote/socket/RemoteInspectorSocketEndpoint.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r244653 r244657 1 2019-04-25 Basuke Suzuki <Basuke.Suzuki@sony.com> 2 3 [RemoteInspector] Fix connection and target identifier types. 4 https://bugs.webkit.org/show_bug.cgi?id=197243 5 6 Reviewed by Ross Kirsling. 7 8 Give dedicated type for RemoteControllableTarget's identifier as Inspector::TargetID. 9 10 Also rename ClientID type used in Socket backend to ConnectionID because this is the identifier 11 socket endpoint assign to the newly created connection. The size was changed to uint32_t. 12 Enough size for managing connections. 13 14 * inspector/remote/RemoteConnectionToTarget.cpp: 15 (Inspector::RemoteConnectionToTarget::setup): 16 (Inspector::RemoteConnectionToTarget::close): 17 (Inspector::RemoteConnectionToTarget::targetIdentifier const): 18 * inspector/remote/RemoteConnectionToTarget.h: 19 * inspector/remote/RemoteControllableTarget.h: 20 * inspector/remote/RemoteInspector.cpp: 21 (Inspector::RemoteInspector::nextAvailableTargetIdentifier): 22 (Inspector::RemoteInspector::registerTarget): 23 (Inspector::RemoteInspector::unregisterTarget): 24 (Inspector::RemoteInspector::updateTarget): 25 (Inspector::RemoteInspector::setupFailed): 26 (Inspector::RemoteInspector::setupCompleted): 27 (Inspector::RemoteInspector::waitingForAutomaticInspection): 28 (Inspector::RemoteInspector::updateTargetListing): 29 * inspector/remote/RemoteInspector.h: 30 * inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm: 31 (Inspector::RemoteConnectionToTarget::targetIdentifier const): 32 (Inspector::RemoteConnectionToTarget::setup): 33 (Inspector::RemoteConnectionToTarget::close): 34 * inspector/remote/cocoa/RemoteInspectorCocoa.mm: 35 (Inspector::RemoteInspector::updateAutomaticInspectionCandidate): 36 (Inspector::RemoteInspector::sendMessageToRemote): 37 (Inspector::RemoteInspector::receivedSetupMessage): 38 (Inspector::RemoteInspector::receivedDataMessage): 39 (Inspector::RemoteInspector::receivedDidCloseMessage): 40 (Inspector::RemoteInspector::receivedIndicateMessage): 41 (Inspector::RemoteInspector::receivedAutomaticInspectionRejectMessage): 42 * inspector/remote/glib/RemoteInspectorGlib.cpp: 43 (Inspector::RemoteInspector::updateAutomaticInspectionCandidate): 44 (Inspector::RemoteInspector::sendMessageToRemote): 45 (Inspector::RemoteInspector::receivedSetupMessage): 46 (Inspector::RemoteInspector::receivedDataMessage): 47 (Inspector::RemoteInspector::receivedCloseMessage): 48 (Inspector::RemoteInspector::setup): 49 (Inspector::RemoteInspector::sendMessageToTarget): 50 * inspector/remote/socket/RemoteInspectorConnectionClient.cpp: 51 (Inspector::RemoteInspectorConnectionClient::didReceiveWebInspectorEvent): 52 * inspector/remote/socket/RemoteInspectorConnectionClient.h: 53 (Inspector::RemoteInspectorConnectionClient::didAccept): 54 * inspector/remote/socket/RemoteInspectorMessageParser.cpp: 55 (Inspector::MessageParser::MessageParser): 56 (Inspector::MessageParser::parse): 57 * inspector/remote/socket/RemoteInspectorMessageParser.h: 58 (Inspector::MessageParser::setDidParseMessageListener): 59 * inspector/remote/socket/RemoteInspectorServer.cpp: 60 (Inspector::RemoteInspectorServer::didAccept): 61 (Inspector::RemoteInspectorServer::didClose): 62 (Inspector::RemoteInspectorServer::dispatchMap): 63 (Inspector::RemoteInspectorServer::sendWebInspectorEvent): 64 (Inspector::RemoteInspectorServer::sendCloseEvent): 65 (Inspector::RemoteInspectorServer::connectionClosed): 66 * inspector/remote/socket/RemoteInspectorServer.h: 67 * inspector/remote/socket/RemoteInspectorSocket.cpp: 68 (Inspector::RemoteInspector::didClose): 69 (Inspector::RemoteInspector::sendMessageToRemote): 70 (Inspector::RemoteInspector::setup): 71 (Inspector::RemoteInspector::sendMessageToTarget): 72 * inspector/remote/socket/RemoteInspectorSocket.h: 73 * inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp: 74 (Inspector::RemoteInspectorSocketEndpoint::connectInet): 75 (Inspector::RemoteInspectorSocketEndpoint::isListening): 76 (Inspector::RemoteInspectorSocketEndpoint::workerThread): 77 (Inspector::RemoteInspectorSocketEndpoint::createClient): 78 (Inspector::RemoteInspectorSocketEndpoint::recvIfEnabled): 79 (Inspector::RemoteInspectorSocketEndpoint::sendIfEnabled): 80 (Inspector::RemoteInspectorSocketEndpoint::send): 81 (Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled): 82 * inspector/remote/socket/RemoteInspectorSocketEndpoint.h: 83 1 84 2019-04-25 Alex Christensen <achristensen@webkit.org> 2 85 -
trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.cpp
r242576 r244657 50 50 return false; 51 51 52 unsignedtargetIdentifier = this->targetIdentifier().valueOr(0);52 auto targetIdentifier = this->targetIdentifier().valueOr(0); 53 53 54 54 if (!m_target || !m_target->remoteControlAllowed()) { … … 91 91 return; 92 92 93 unsignedtargetIdentifier = m_target->targetIdentifier();93 auto targetIdentifier = m_target->targetIdentifier(); 94 94 95 95 if (m_connected) … … 107 107 } 108 108 109 Optional< unsigned> RemoteConnectionToTarget::targetIdentifier() const109 Optional<TargetID> RemoteConnectionToTarget::targetIdentifier() const 110 110 { 111 return m_target ? Optional< unsigned>(m_target->targetIdentifier()) : WTF::nullopt;111 return m_target ? Optional<TargetID>(m_target->targetIdentifier()) : WTF::nullopt; 112 112 } 113 113 -
trunk/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h
r239427 r244657 29 29 30 30 #include "InspectorFrontendChannel.h" 31 #include "RemoteControllableTarget.h" 31 32 #include <wtf/Lock.h> 32 33 #include <wtf/ThreadSafeRefCounted.h> … … 66 67 void targetClosed(); 67 68 68 Optional< unsigned> targetIdentifier() const;69 Optional<TargetID> targetIdentifier() const; 69 70 #if PLATFORM(COCOA) 70 71 NSString *connectionIdentifier() const; -
trunk/Source/JavaScriptCore/inspector/remote/RemoteControllableTarget.h
r238206 r244657 39 39 class FrontendChannel; 40 40 41 using TargetID = unsigned; 42 41 43 class JS_EXPORT_PRIVATE RemoteControllableTarget { 42 44 public: … … 49 51 virtual void disconnect(FrontendChannel&) = 0; 50 52 51 unsignedtargetIdentifier() const { return m_identifier; }52 void setTargetIdentifier( unsignedidentifier) { m_identifier = identifier; }53 TargetID targetIdentifier() const { return m_identifier; } 54 void setTargetIdentifier(TargetID identifier) { m_identifier = identifier; } 53 55 54 56 enum class Type { JavaScript, ServiceWorker, Web, Automation }; … … 63 65 64 66 private: 65 unsignedm_identifier { 0 };67 TargetID m_identifier { 0 }; 66 68 }; 67 69 -
trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.cpp
r242576 r244657 45 45 } 46 46 47 unsignedRemoteInspector::nextAvailableTargetIdentifier()48 { 49 unsignednextValidTargetIdentifier;47 TargetID RemoteInspector::nextAvailableTargetIdentifier() 48 { 49 TargetID nextValidTargetIdentifier; 50 50 do { 51 51 nextValidTargetIdentifier = m_nextAvailableTargetIdentifier++; 52 } while (!nextValidTargetIdentifier || nextValidTargetIdentifier == std::numeric_limits< unsigned>::max() || m_targetMap.contains(nextValidTargetIdentifier));52 } while (!nextValidTargetIdentifier || nextValidTargetIdentifier == std::numeric_limits<TargetID>::max() || m_targetMap.contains(nextValidTargetIdentifier)); 53 53 return nextValidTargetIdentifier; 54 54 } … … 60 60 LockHolder lock(m_mutex); 61 61 62 unsignedtargetIdentifier = nextAvailableTargetIdentifier();62 auto targetIdentifier = nextAvailableTargetIdentifier(); 63 63 target->setTargetIdentifier(targetIdentifier); 64 64 … … 83 83 LockHolder lock(m_mutex); 84 84 85 unsignedtargetIdentifier = target->targetIdentifier();85 auto targetIdentifier = target->targetIdentifier(); 86 86 if (!targetIdentifier) 87 87 return; … … 105 105 LockHolder lock(m_mutex); 106 106 107 unsignedtargetIdentifier = target->targetIdentifier();107 auto targetIdentifier = target->targetIdentifier(); 108 108 if (!targetIdentifier) 109 109 return; … … 157 157 } 158 158 159 void RemoteInspector::setupFailed( unsignedtargetIdentifier)159 void RemoteInspector::setupFailed(TargetID targetIdentifier) 160 160 { 161 161 LockHolder lock(m_mutex); … … 171 171 } 172 172 173 void RemoteInspector::setupCompleted( unsignedtargetIdentifier)173 void RemoteInspector::setupCompleted(TargetID targetIdentifier) 174 174 { 175 175 LockHolder lock(m_mutex); … … 179 179 } 180 180 181 bool RemoteInspector::waitingForAutomaticInspection( unsigned)181 bool RemoteInspector::waitingForAutomaticInspection(TargetID) 182 182 { 183 183 // We don't take the lock to check this because we assume it will be checked repeatedly. … … 209 209 } 210 210 211 void RemoteInspector::updateTargetListing( unsignedtargetIdentifier)211 void RemoteInspector::updateTargetListing(TargetID targetIdentifier) 212 212 { 213 213 auto target = m_targetMap.get(targetIdentifier); -
trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.h
r244501 r244657 28 28 #if ENABLE(REMOTE_INSPECTOR) 29 29 30 #include "RemoteControllableTarget.h" 31 30 32 #include <utility> 31 33 #include <wtf/Forward.h> … … 114 116 void unregisterTarget(RemoteControllableTarget*); 115 117 void updateTarget(RemoteControllableTarget*); 116 void sendMessageToRemote( unsigned targetIdentifier, const String& message);118 void sendMessageToRemote(TargetID, const String& message); 117 119 118 120 RemoteInspector::Client* client() const { return m_client; } … … 121 123 Optional<RemoteInspector::Client::Capabilities> clientCapabilities() const { return m_clientCapabilities; } 122 124 123 void setupFailed( unsigned targetIdentifier);124 void setupCompleted( unsigned targetIdentifier);125 bool waitingForAutomaticInspection( unsigned targetIdentifier);125 void setupFailed(TargetID); 126 void setupCompleted(TargetID); 127 bool waitingForAutomaticInspection(TargetID); 126 128 void updateAutomaticInspectionCandidate(RemoteInspectionTarget*); 127 129 … … 140 142 #endif 141 143 142 void updateTargetListing( unsigned targetIdentifier);144 void updateTargetListing(TargetID); 143 145 144 146 #if USE(GLIB) … … 146 148 #endif 147 149 #if USE(GLIB) || PLATFORM(PLAYSTATION) 148 void setup( unsigned targetIdentifier);149 void sendMessageToTarget( unsigned targetIdentifier, const char* message);150 void setup(TargetID); 151 void sendMessageToTarget(TargetID, const char* message); 150 152 #endif 151 153 #if PLATFORM(PLAYSTATION) … … 156 158 RemoteInspector(); 157 159 158 unsignednextAvailableTargetIdentifier();160 TargetID nextAvailableTargetIdentifier(); 159 161 160 162 enum class StopSource { API, XPCMessage }; … … 169 171 170 172 void receivedGetTargetListMessage(); 171 void receivedSetupMessage( unsigned targetIdentifier);172 void receivedDataMessage( unsigned targetIdentifier, const char* message);173 void receivedCloseMessage( unsigned targetIdentifier);173 void receivedSetupMessage(TargetID); 174 void receivedDataMessage(TargetID, const char* message); 175 void receivedCloseMessage(TargetID); 174 176 void receivedAutomationSessionRequestMessage(const char* sessionID); 175 177 #endif … … 207 209 #if PLATFORM(PLAYSTATION) 208 210 HashMap<String, CallHandler>& dispatchMap() override; 209 void didClose(C lientID) override;211 void didClose(ConnectionID) override; 210 212 211 213 void sendWebInspectorEvent(const String&); 212 214 213 void receivedGetTargetListMessage(const structEvent&);214 void receivedSetupMessage(const structEvent&);215 void receivedDataMessage(const structEvent&);216 void receivedCloseMessage(const structEvent&);215 void receivedGetTargetListMessage(const Event&); 216 void receivedSetupMessage(const Event&); 217 void receivedDataMessage(const Event&); 218 void receivedCloseMessage(const Event&); 217 219 #endif 218 220 static bool startEnabled; … … 224 226 Lock m_mutex; 225 227 226 HashMap< unsigned, RemoteControllableTarget*> m_targetMap;227 HashMap< unsigned, RefPtr<RemoteConnectionToTarget>> m_targetConnectionMap;228 HashMap< unsigned, TargetListing> m_targetListingMap;228 HashMap<TargetID, RemoteControllableTarget*> m_targetMap; 229 HashMap<TargetID, RefPtr<RemoteConnectionToTarget>> m_targetConnectionMap; 230 HashMap<TargetID, TargetListing> m_targetListingMap; 229 231 230 232 #if PLATFORM(COCOA) … … 239 241 std::unique_ptr<RemoteInspectorSocketEndpoint> m_socketConnection; 240 242 static PlatformSocketType s_connectionIdentifier; 241 Optional<C lientID> m_clientID;243 Optional<ConnectionID> m_clientID; 242 244 #endif 243 245 … … 248 250 dispatch_queue_t m_xpcQueue; 249 251 #endif 250 unsignedm_nextAvailableTargetIdentifier { 1 };252 TargetID m_nextAvailableTargetIdentifier { 1 }; 251 253 int m_notifyToken { 0 }; 252 254 bool m_enabled { false }; … … 261 263 bool m_automaticInspectionEnabled { false }; 262 264 bool m_automaticInspectionPaused { false }; 263 unsignedm_automaticInspectionCandidateTargetIdentifier { 0 };265 TargetID m_automaticInspectionCandidateTargetIdentifier { 0 }; 264 266 }; 265 267 -
trunk/Source/JavaScriptCore/inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm
r242576 r244657 121 121 } 122 122 123 Optional< unsigned> RemoteConnectionToTarget::targetIdentifier() const124 { 125 return m_target ? Optional< unsigned>(m_target->targetIdentifier()) : WTF::nullopt;123 Optional<TargetID> RemoteConnectionToTarget::targetIdentifier() const 124 { 125 return m_target ? Optional<TargetID>(m_target->targetIdentifier()) : WTF::nullopt; 126 126 } 127 127 … … 160 160 return false; 161 161 162 unsignedtargetIdentifier = this->targetIdentifier().valueOr(0);162 auto targetIdentifier = this->targetIdentifier().valueOr(0); 163 163 164 164 ref(); … … 199 199 void RemoteConnectionToTarget::close() 200 200 { 201 unsignedtargetIdentifier = m_target ? m_target->targetIdentifier() : 0;201 auto targetIdentifier = m_target ? m_target->targetIdentifier() : 0; 202 202 203 203 ref(); -
trunk/Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorCocoa.mm
r243795 r244657 123 123 LockHolder lock(m_mutex); 124 124 125 unsignedtargetIdentifier = target->targetIdentifier();125 auto targetIdentifier = target->targetIdentifier(); 126 126 if (!targetIdentifier) 127 127 return; … … 198 198 } 199 199 200 void RemoteInspector::sendMessageToRemote( unsignedtargetIdentifier, const String& message)200 void RemoteInspector::sendMessageToRemote(TargetID targetIdentifier, const String& message) 201 201 { 202 202 LockHolder lock(m_mutex); … … 495 495 BOOL automaticallyPause = automaticallyPauseNumber.boolValue; 496 496 497 unsignedtargetIdentifier = targetIdentifierNumber.unsignedIntValue;497 TargetID targetIdentifier = targetIdentifierNumber.unsignedIntValue; 498 498 if (!targetIdentifier) 499 499 return; … … 538 538 BAIL_IF_UNEXPECTED_TYPE(data, [NSData class]); 539 539 540 unsignedtargetIdentifier = targetIdentifierNumber.unsignedIntValue;540 TargetID targetIdentifier = targetIdentifierNumber.unsignedIntValue; 541 541 if (!targetIdentifier) 542 542 return; … … 558 558 BAIL_IF_UNEXPECTED_TYPE(connectionIdentifier, [NSString class]); 559 559 560 unsignedtargetIdentifier = targetIdentifierNumber.unsignedIntValue;560 TargetID targetIdentifier = targetIdentifierNumber.unsignedIntValue; 561 561 if (!targetIdentifier) 562 562 return; … … 589 589 BOOL indicateEnabled = indicateEnabledNumber.boolValue; 590 590 591 unsignedtargetIdentifier = targetIdentifierNumber.unsignedIntValue;591 TargetID targetIdentifier = targetIdentifierNumber.unsignedIntValue; 592 592 if (!targetIdentifier) 593 593 return; … … 673 673 BAIL_IF_UNEXPECTED_TYPE(targetIdentifierNumber, [NSNumber class]); 674 674 675 unsignedtargetIdentifier = targetIdentifierNumber.unsignedIntValue;675 TargetID targetIdentifier = targetIdentifierNumber.unsignedIntValue; 676 676 if (!targetIdentifier) 677 677 return; -
trunk/Source/JavaScriptCore/inspector/remote/glib/RemoteInspectorGlib.cpp
r242576 r244657 246 246 247 247 ASSERT(target); 248 unsignedtargetIdentifier = target->targetIdentifier();248 auto targetIdentifier = target->targetIdentifier(); 249 249 if (!targetIdentifier) 250 250 return; … … 273 273 } 274 274 275 void RemoteInspector::sendMessageToRemote( unsignedtargetIdentifier, const String& message)275 void RemoteInspector::sendMessageToRemote(TargetID targetIdentifier, const String& message) 276 276 { 277 277 LockHolder lock(m_mutex); … … 292 292 } 293 293 294 void RemoteInspector::receivedSetupMessage( unsignedtargetIdentifier)294 void RemoteInspector::receivedSetupMessage(TargetID targetIdentifier) 295 295 { 296 296 setup(targetIdentifier); 297 297 } 298 298 299 void RemoteInspector::receivedDataMessage( unsignedtargetIdentifier, const char* message)299 void RemoteInspector::receivedDataMessage(TargetID targetIdentifier, const char* message) 300 300 { 301 301 RefPtr<RemoteConnectionToTarget> connectionToTarget; … … 309 309 } 310 310 311 void RemoteInspector::receivedCloseMessage( unsignedtargetIdentifier)311 void RemoteInspector::receivedCloseMessage(TargetID targetIdentifier) 312 312 { 313 313 RefPtr<RemoteConnectionToTarget> connectionToTarget; … … 326 326 } 327 327 328 void RemoteInspector::setup( unsignedtargetIdentifier)328 void RemoteInspector::setup(TargetID targetIdentifier) 329 329 { 330 330 RemoteControllableTarget* target; … … 349 349 } 350 350 351 void RemoteInspector::sendMessageToTarget( unsignedtargetIdentifier, const char* message)351 void RemoteInspector::sendMessageToTarget(TargetID targetIdentifier, const char* message) 352 352 { 353 353 if (auto connectionToTarget = m_targetConnectionMap.get(targetIdentifier)) -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorConnectionClient.cpp
r244501 r244657 35 35 namespace Inspector { 36 36 37 void RemoteInspectorConnectionClient::didReceiveWebInspectorEvent(C lientID clientID, Vector<uint8_t>&& data)37 void RemoteInspectorConnectionClient::didReceiveWebInspectorEvent(ConnectionID clientID, Vector<uint8_t>&& data) 38 38 { 39 39 ASSERT(!isMainThread()); … … 56 56 return; 57 57 58 structEvent event;58 Event event; 59 59 event.clientID = clientID; 60 60 61 uint64_tconnectionID;61 ConnectionID connectionID; 62 62 if (messageObject->getInteger("connectionID"_s, connectionID)) 63 63 event.connectionID = connectionID; 64 64 65 uint64_ttargetID;65 TargetID targetID; 66 66 if (messageObject->getInteger("targetID"_s, targetID)) 67 67 event.targetID = targetID; -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorConnectionClient.h
r244501 r244657 36 36 class RemoteInspectorConnectionClient : public CanMakeWeakPtr<RemoteInspectorConnectionClient> { 37 37 public: 38 void didReceiveWebInspectorEvent(C lientID, Vector<uint8_t>&&);39 virtual void didAccept(C lientID, Socket::Domain) { };40 virtual void didClose(C lientID) = 0;38 void didReceiveWebInspectorEvent(ConnectionID, Vector<uint8_t>&&); 39 virtual void didAccept(ConnectionID, Socket::Domain) { }; 40 virtual void didClose(ConnectionID) = 0; 41 41 42 42 struct Event { 43 C lientID clientID;44 Optional< uint64_t> connectionID;45 Optional< uint64_t> targetID;43 ConnectionID clientID { }; 44 Optional<ConnectionID> connectionID; 45 Optional<TargetID> targetID; 46 46 Optional<String> message; 47 47 }; 48 48 49 using CallHandler = void (RemoteInspectorConnectionClient::*)(const structEvent&);49 using CallHandler = void (RemoteInspectorConnectionClient::*)(const Event&); 50 50 virtual HashMap<String, CallHandler>& dispatchMap() = 0; 51 51 }; -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorMessageParser.cpp
r244501 r244657 42 42 */ 43 43 44 MessageParser::MessageParser(C lientID clientID, size_t bufferSize)45 : m_c lientID(clientID)44 MessageParser::MessageParser(ConnectionID id, size_t bufferSize) 45 : m_connectionID(id) 46 46 { 47 47 m_buffer.reserveCapacity(bufferSize); … … 105 105 106 106 if (m_didParseMessageListener) 107 m_didParseMessageListener(m_c lientID, WTFMove(dataBuffer));107 m_didParseMessageListener(m_connectionID, WTFMove(dataBuffer)); 108 108 109 109 m_buffer.remove(0, messageSize); -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorMessageParser.h
r244501 r244657 37 37 static Vector<uint8_t> createMessage(const uint8_t*, size_t); 38 38 39 MessageParser(C lientID, size_t);39 MessageParser(ConnectionID, size_t); 40 40 void pushReceivedData(const uint8_t*, size_t); 41 void setDidParseMessageListener(Function<void(C lientID, Vector<uint8_t>)>&& listener) { m_didParseMessageListener = WTFMove(listener); }41 void setDidParseMessageListener(Function<void(ConnectionID, Vector<uint8_t>)>&& listener) { m_didParseMessageListener = WTFMove(listener); } 42 42 43 43 void clearReceivedData(); … … 46 46 bool parse(); 47 47 48 Function<void(C lientID, Vector<uint8_t>&&)> m_didParseMessageListener;48 Function<void(ConnectionID, Vector<uint8_t>&&)> m_didParseMessageListener; 49 49 Vector<uint8_t> m_buffer; 50 C lientID m_clientID;50 ConnectionID m_connectionID; 51 51 }; 52 52 -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorServer.cpp
r244501 r244657 45 45 } 46 46 47 void RemoteInspectorServer::didAccept(C lientID clientID, Socket::Domain type)47 void RemoteInspectorServer::didAccept(ConnectionID id, Socket::Domain type) 48 48 { 49 49 ASSERT(!isMainThread()); … … 54 54 return; 55 55 } 56 m_clientConnection = clientID;56 m_clientConnection = id; 57 57 } else if (type == Socket::Domain::Local) { 58 58 LockHolder lock(m_connectionsLock); 59 m_inspectorConnections.append( clientID);60 } 61 } 62 63 void RemoteInspectorServer::didClose(C lientID clientID)59 m_inspectorConnections.append(id); 60 } 61 } 62 63 void RemoteInspectorServer::didClose(ConnectionID id) 64 64 { 65 65 ASSERT(!isMainThread()); 66 66 67 if ( clientID== m_clientConnection) {67 if (id == m_clientConnection) { 68 68 // Connection from the remote client closed. 69 69 callOnMainThread([this] { … … 74 74 75 75 // Connection from WebProcess closed. 76 callOnMainThread([this, clientID] {77 connectionClosed( clientID);76 callOnMainThread([this, id] { 77 connectionClosed(id); 78 78 }); 79 79 } … … 82 82 { 83 83 static NeverDestroyed<HashMap<String, CallHandler>> dispatchMap = HashMap<String, CallHandler>({ 84 {"SetTargetList"_s, static_cast<CallHandler>(&RemoteInspectorServer::setTargetList)},85 {"SetupInspectorClient"_s, static_cast<CallHandler>(&RemoteInspectorServer::setupInspectorClient)},86 {"Setup"_s, static_cast<CallHandler>(&RemoteInspectorServer::setup)},87 {"FrontendDidClose"_s, static_cast<CallHandler>(&RemoteInspectorServer::close)},88 {"SendMessageToFrontend"_s, static_cast<CallHandler>(&RemoteInspectorServer::sendMessageToFrontend)},89 {"SendMessageToBackend"_s, static_cast<CallHandler>(&RemoteInspectorServer::sendMessageToBackend)},84 {"SetTargetList"_s, &RemoteInspectorServer::setTargetList}, 85 {"SetupInspectorClient"_s, &RemoteInspectorServer::setupInspectorClient}, 86 {"Setup"_s, &RemoteInspectorServer::setup}, 87 {"FrontendDidClose"_s, &RemoteInspectorServer::close}, 88 {"SendMessageToFrontend"_s, &RemoteInspectorServer::sendMessageToFrontend}, 89 {"SendMessageToBackend"_s, &RemoteInspectorServer::sendMessageToBackend}, 90 90 }); 91 91 … … 93 93 } 94 94 95 void RemoteInspectorServer::sendWebInspectorEvent(C lientID clientID, const String& event)95 void RemoteInspectorServer::sendWebInspectorEvent(ConnectionID id, const String& event) 96 96 { 97 97 const CString message = event.utf8(); 98 m_server->send( clientID, reinterpret_cast<const uint8_t*>(message.data()), message.length());98 m_server->send(id, reinterpret_cast<const uint8_t*>(message.data()), message.length()); 99 99 } 100 100 … … 158 158 } 159 159 160 void RemoteInspectorServer::sendCloseEvent( uint64_t connectionID, uint64_ttargetID)160 void RemoteInspectorServer::sendCloseEvent(ConnectionID connectionID, TargetID targetID) 161 161 { 162 162 ASSERT(isMainThread()); … … 187 187 } 188 188 189 void RemoteInspectorServer::connectionClosed( uint64_tclientID)189 void RemoteInspectorServer::connectionClosed(ConnectionID clientID) 190 190 { 191 191 ASSERT(isMainThread()); -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorServer.h
r244501 r244657 47 47 48 48 private: 49 void connectionClosed( uint64_t connectionID);49 void connectionClosed(ConnectionID); 50 50 51 void setTargetList(const structEvent&);52 void setupInspectorClient(const structEvent&);53 void setup(const structEvent&);54 void close(const structEvent&);55 void sendMessageToFrontend(const structEvent&);56 void sendMessageToBackend(const structEvent&);51 void setTargetList(const Event&); 52 void setupInspectorClient(const Event&); 53 void setup(const Event&); 54 void close(const Event&); 55 void sendMessageToFrontend(const Event&); 56 void sendMessageToBackend(const Event&); 57 57 58 void sendCloseEvent( uint64_t connectionID, uint64_t targetID);58 void sendCloseEvent(ConnectionID, TargetID); 59 59 void clientConnectionClosed(); 60 60 61 void didAccept(C lientID, Socket::Domain) override;62 void didClose(C lientID) override;61 void didAccept(ConnectionID, Socket::Domain) override; 62 void didClose(ConnectionID) override; 63 63 64 void sendWebInspectorEvent(C lientID, const String&);64 void sendWebInspectorEvent(ConnectionID, const String&); 65 65 66 HashMap<String, CallHandler>& dispatchMap() ;66 HashMap<String, CallHandler>& dispatchMap() override; 67 67 68 HashSet<std::pair< uint64_t, uint64_t>> m_inspectionTargets;68 HashSet<std::pair<ConnectionID, TargetID>> m_inspectionTargets; 69 69 std::unique_ptr<RemoteInspectorSocketEndpoint> m_server; 70 70 71 71 // Connections to the WebProcess. 72 Vector<C lientID> m_inspectorConnections;72 Vector<ConnectionID> m_inspectorConnections; 73 73 Lock m_connectionsLock; 74 74 75 75 // Connections from RemoteInspectorClient. 76 Optional<C lientID> m_clientConnection;76 Optional<ConnectionID> m_clientConnection; 77 77 }; 78 78 -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocket.cpp
r244501 r244657 52 52 } 53 53 54 void RemoteInspector::didClose(C lientID clientID)55 { 56 if ( clientID!= m_clientID.value())54 void RemoteInspector::didClose(ConnectionID id) 55 { 56 if (id != m_clientID.value()) 57 57 return; 58 58 … … 193 193 } 194 194 195 void RemoteInspector::sendMessageToRemote( unsignedtargetIdentifier, const String& message)195 void RemoteInspector::sendMessageToRemote(TargetID targetIdentifier, const String& message) 196 196 { 197 197 LockHolder lock(m_mutex); … … 262 262 } 263 263 264 void RemoteInspector::setup( unsignedtargetIdentifier)264 void RemoteInspector::setup(TargetID targetIdentifier) 265 265 { 266 266 RemoteControllableTarget* target; … … 285 285 } 286 286 287 void RemoteInspector::sendMessageToTarget( unsignedtargetIdentifier, const char* message)287 void RemoteInspector::sendMessageToTarget(TargetID targetIdentifier, const char* message) 288 288 { 289 289 if (auto connectionToTarget = m_targetConnectionMap.get(targetIdentifier)) -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocket.h
r244501 r244657 42 42 namespace Inspector { 43 43 44 using ConnectionID = uint32_t; 45 44 46 #if OS(WINDOWS) 45 47 46 using ClientID = unsigned;47 48 using PlatformSocketType = SOCKET; 48 49 using PollingDescriptor = WSAPOLLFD; … … 51 52 #else 52 53 53 using ClientID = unsigned;54 54 using PlatformSocketType = int; 55 55 using PollingDescriptor = struct pollfd; -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp
r244501 r244657 70 70 } 71 71 72 Optional<C lientID> RemoteInspectorSocketEndpoint::connectInet(const char* serverAddress, uint16_t serverPort)72 Optional<ConnectionID> RemoteInspectorSocketEndpoint::connectInet(const char* serverAddress, uint16_t serverPort) 73 73 { 74 74 if (auto socket = Socket::connect(serverAddress, serverPort)) … … 87 87 } 88 88 89 bool RemoteInspectorSocketEndpoint::isListening(C lientID id)89 bool RemoteInspectorSocketEndpoint::isListening(ConnectionID id) 90 90 { 91 91 LockHolder lock(m_connectionsLock); … … 101 101 while (!m_shouldAbortWorkerThread) { 102 102 Vector<PollingDescriptor> pollfds; 103 Vector<C lientID> ids;103 Vector<ConnectionID> ids; 104 104 { 105 105 LockHolder lock(m_connectionsLock); … … 133 133 } 134 134 135 Optional<C lientID> RemoteInspectorSocketEndpoint::createClient(PlatformSocketType socket)135 Optional<ConnectionID> RemoteInspectorSocketEndpoint::createClient(PlatformSocketType socket) 136 136 { 137 137 if (!Socket::isValid(socket)) … … 140 140 LockHolder lock(m_connectionsLock); 141 141 142 C lientID id;142 ConnectionID id; 143 143 do { 144 144 id = cryptographicallyRandomNumber(); … … 152 152 connection->socket = socket; 153 153 connection->parser = std::make_unique<MessageParser>(id, Socket::BufferSize); 154 connection->parser->setDidParseMessageListener([this](C lientID id, Vector<uint8_t>&& data) {154 connection->parser->setDidParseMessageListener([this](ConnectionID id, Vector<uint8_t>&& data) { 155 155 if (m_inspectorClient) 156 156 m_inspectorClient->didReceiveWebInspectorEvent(id, WTFMove(data)); … … 162 162 } 163 163 164 void RemoteInspectorSocketEndpoint::recvIfEnabled(C lientID clientID)165 { 166 LockHolder lock(m_connectionsLock); 167 if (const auto& connection = m_connections.get( clientID)) {164 void RemoteInspectorSocketEndpoint::recvIfEnabled(ConnectionID id) 165 { 166 LockHolder lock(m_connectionsLock); 167 if (const auto& connection = m_connections.get(id)) { 168 168 Vector<uint8_t> recvBuffer(Socket::BufferSize); 169 169 if (auto readSize = Socket::read(connection->socket, recvBuffer.data(), recvBuffer.size())) { … … 174 174 175 175 Socket::close(connection->socket); 176 m_connections.remove( clientID);176 m_connections.remove(id); 177 177 178 178 lock.unlockEarly(); 179 179 if (m_inspectorClient) 180 m_inspectorClient->didClose( clientID);181 } 182 } 183 184 void RemoteInspectorSocketEndpoint::sendIfEnabled(C lientID clientID)185 { 186 LockHolder lock(m_connectionsLock); 187 if (const auto& connection = m_connections.get( clientID)) {180 m_inspectorClient->didClose(id); 181 } 182 } 183 184 void RemoteInspectorSocketEndpoint::sendIfEnabled(ConnectionID id) 185 { 186 LockHolder lock(m_connectionsLock); 187 if (const auto& connection = m_connections.get(id)) { 188 188 Socket::clearWaitingWritable(connection->poll); 189 189 … … 207 207 } 208 208 209 void RemoteInspectorSocketEndpoint::send(C lientID clientID, const uint8_t* data, size_t size)210 { 211 LockHolder lock(m_connectionsLock); 212 if (const auto& connection = m_connections.get( clientID)) {209 void RemoteInspectorSocketEndpoint::send(ConnectionID id, const uint8_t* data, size_t size) 210 { 211 LockHolder lock(m_connectionsLock); 212 if (const auto& connection = m_connections.get(id)) { 213 213 auto message = MessageParser::createMessage(data, size); 214 214 if (message.isEmpty()) … … 235 235 } 236 236 237 void RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled(C lientID id)237 void RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled(ConnectionID id) 238 238 { 239 239 if (!isListening(id)) -
trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h
r244501 r244657 53 53 ~RemoteInspectorSocketEndpoint(); 54 54 55 Optional<C lientID> connectInet(const char* serverAddr, uint16_t serverPort);55 Optional<ConnectionID> connectInet(const char* serverAddr, uint16_t serverPort); 56 56 bool listenInet(uint16_t port); 57 57 58 void send(C lientID, const uint8_t* data, size_t);58 void send(ConnectionID, const uint8_t* data, size_t); 59 59 60 Optional<C lientID> createClient(PlatformSocketType fd);60 Optional<ConnectionID> createClient(PlatformSocketType fd); 61 61 62 62 protected: 63 void recvIfEnabled(C lientID);64 void sendIfEnabled(C lientID);63 void recvIfEnabled(ConnectionID); 64 void sendIfEnabled(ConnectionID); 65 65 void workerThread(); 66 66 void wakeupWorkerThread(); 67 void acceptInetSocketIfEnabled(C lientID);68 bool isListening(C lientID);67 void acceptInetSocketIfEnabled(ConnectionID); 68 bool isListening(ConnectionID); 69 69 70 70 Lock m_connectionsLock; 71 HashMap<C lientID, std::unique_ptr<Socket::Connection>> m_connections;71 HashMap<ConnectionID, std::unique_ptr<Socket::Connection>> m_connections; 72 72 73 73 PlatformSocketType m_wakeupSendSocket { INVALID_SOCKET_VALUE };
Note:
See TracChangeset
for help on using the changeset viewer.