| OLD | NEW |
| 1 # Copyright (c) 2013 Google Inc. All rights reserved. | 1 # Copyright (c) 2013 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 $methodOutCode | 53 $methodOutCode |
| 54 $methodInCode | 54 $methodInCode |
| 55 RefPtr<JSONObject> result = JSONObject::create(); | 55 RefPtr<JSONObject> result = JSONObject::create(); |
| 56 RefPtr<JSONValue> resultErrorData; | 56 RefPtr<JSONValue> resultErrorData; |
| 57 ErrorString error; | 57 ErrorString error; |
| 58 if (!protocolErrors->length()) { | 58 if (!protocolErrors->length()) { |
| 59 $agentField->$methodName(&error$agentCallParams); | 59 $agentField->$methodName(&error$agentCallParams); |
| 60 | 60 |
| 61 $errorCook${responseCook} | 61 $errorCook${responseCook} |
| 62 } | 62 } |
| 63 sendResponse(callId, result, commandNames[$commandNameIndex], protocolErrors
, error, resultErrorData); | 63 sendResponse(callId, result, commandName($commandNameIndex), protocolErrors,
error, resultErrorData); |
| 64 } | 64 } |
| 65 """) | 65 """) |
| 66 | 66 |
| 67 frontend_method = ("""void InspectorFrontend::$domainName::$eventName($parameter
s) | 67 frontend_method = ("""void InspectorFrontend::$domainName::$eventName($parameter
s) |
| 68 { | 68 { |
| 69 RefPtr<JSONObject> jsonMessage = JSONObject::create(); | 69 RefPtr<JSONObject> jsonMessage = JSONObject::create(); |
| 70 jsonMessage->setString("method", "$domainName.$eventName"); | 70 jsonMessage->setString("method", "$domainName.$eventName"); |
| 71 $code if (m_inspectorFrontendChannel) | 71 $code if (m_inspectorFrontendChannel) |
| 72 m_inspectorFrontendChannel->sendMessageToFrontend(jsonMessage->toJSONStr
ing()); | 72 m_inspectorFrontendChannel->sendMessageToFrontend(jsonMessage->toJSONStr
ing()); |
| 73 } | 73 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 94 sendIfActive(0, error, errorDataValue.release()); | 94 sendIfActive(0, error, errorDataValue.release()); |
| 95 } | 95 } |
| 96 """) | 96 """) |
| 97 | 97 |
| 98 | 98 |
| 99 frontend_h = ( | 99 frontend_h = ( |
| 100 """#ifndef InspectorFrontend_h | 100 """#ifndef InspectorFrontend_h |
| 101 #define InspectorFrontend_h | 101 #define InspectorFrontend_h |
| 102 | 102 |
| 103 #include "InspectorTypeBuilder.h" | 103 #include "InspectorTypeBuilder.h" |
| 104 #include "core/platform/JSONValues.h" | 104 #include "platform/JSONValues.h" |
| 105 #include "wtf/PassRefPtr.h" | 105 #include "wtf/PassRefPtr.h" |
| 106 #include "wtf/text/WTFString.h" | 106 #include "wtf/text/WTFString.h" |
| 107 | 107 |
| 108 namespace WebCore { | 108 namespace WebCore { |
| 109 | 109 |
| 110 class InspectorFrontendChannel; | 110 class InspectorFrontendChannel; |
| 111 | 111 |
| 112 typedef String ErrorString; | 112 typedef String ErrorString; |
| 113 | 113 |
| 114 class InspectorFrontend { | 114 class InspectorFrontend { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 virtual void reportProtocolError(const long* const callId, CommonErrorCode,
const String& errorMessage, PassRefPtr<JSONValue> data) const = 0; | 189 virtual void reportProtocolError(const long* const callId, CommonErrorCode,
const String& errorMessage, PassRefPtr<JSONValue> data) const = 0; |
| 190 virtual void dispatch(const String& message) = 0; | 190 virtual void dispatch(const String& message) = 0; |
| 191 static bool getCommandName(const String& message, String* result); | 191 static bool getCommandName(const String& message, String* result); |
| 192 | 192 |
| 193 enum MethodNames { | 193 enum MethodNames { |
| 194 $methodNamesEnumContent | 194 $methodNamesEnumContent |
| 195 | 195 |
| 196 kMethodNamesEnumSize | 196 kMethodNamesEnumSize |
| 197 }; | 197 }; |
| 198 | 198 |
| 199 static const char* commandNames[]; | 199 static const char* commandName(MethodNames); |
| 200 |
| 201 private: |
| 202 static const char commandNames[]; |
| 203 static const size_t commandNamesIndex[]; |
| 200 }; | 204 }; |
| 201 | 205 |
| 202 } // namespace WebCore | 206 } // namespace WebCore |
| 203 #endif // !defined(InspectorBackendDispatcher_h) | 207 #endif // !defined(InspectorBackendDispatcher_h) |
| 204 | 208 |
| 205 | 209 |
| 206 """) | 210 """) |
| 207 | 211 |
| 208 backend_cpp = ( | 212 backend_cpp = ( |
| 209 """ | 213 """ |
| 210 | 214 |
| 211 #include "config.h" | 215 #include "config.h" |
| 212 #include "InspectorBackendDispatcher.h" | 216 #include "InspectorBackendDispatcher.h" |
| 213 | 217 |
| 214 #include "core/inspector/InspectorAgent.h" | 218 #include "core/inspector/InspectorAgent.h" |
| 215 #include "core/inspector/InspectorFrontendChannel.h" | 219 #include "core/inspector/InspectorFrontendChannel.h" |
| 216 #include "core/inspector/JSONParser.h" | 220 #include "core/inspector/JSONParser.h" |
| 217 #include "core/platform/JSONValues.h" | 221 #include "platform/JSONValues.h" |
| 218 #include "wtf/text/CString.h" | 222 #include "wtf/text/CString.h" |
| 219 #include "wtf/text/WTFString.h" | 223 #include "wtf/text/WTFString.h" |
| 220 | 224 |
| 221 namespace WebCore { | 225 namespace WebCore { |
| 222 | 226 |
| 223 const char* InspectorBackendDispatcher::commandNames[] = { | 227 const char InspectorBackendDispatcher::commandNames[] = { |
| 224 $methodNameDeclarations | 228 $methodNameDeclarations |
| 225 }; | 229 }; |
| 226 | 230 |
| 231 const size_t InspectorBackendDispatcher::commandNamesIndex[] = { |
| 232 $methodNameDeclarationsIndex |
| 233 }; |
| 234 |
| 235 const char* InspectorBackendDispatcher::commandName(MethodNames index) { |
| 236 COMPILE_ASSERT(static_cast<int>(kMethodNamesEnumSize) == WTF_ARRAY_LENGTH(co
mmandNamesIndex), command_name_array_problem); |
| 237 return commandNames + commandNamesIndex[index]; |
| 238 } |
| 227 | 239 |
| 228 class InspectorBackendDispatcherImpl : public InspectorBackendDispatcher { | 240 class InspectorBackendDispatcherImpl : public InspectorBackendDispatcher { |
| 229 public: | 241 public: |
| 230 InspectorBackendDispatcherImpl(InspectorFrontendChannel* inspectorFrontendCh
annel) | 242 InspectorBackendDispatcherImpl(InspectorFrontendChannel* inspectorFrontendCh
annel) |
| 231 : m_inspectorFrontendChannel(inspectorFrontendChannel) | 243 : m_inspectorFrontendChannel(inspectorFrontendChannel) |
| 232 $constructorInit | 244 $constructorInit |
| 233 { } | 245 { } |
| 234 | 246 |
| 235 virtual void clearFrontend() { m_inspectorFrontendChannel = 0; } | 247 virtual void clearFrontend() { m_inspectorFrontendChannel = 0; } |
| 236 virtual void dispatch(const String& message); | 248 virtual void dispatch(const String& message); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 RefPtr<InspectorBackendDispatcher> protect = this; | 286 RefPtr<InspectorBackendDispatcher> protect = this; |
| 275 typedef void (InspectorBackendDispatcherImpl::*CallHandler)(long callId, JSO
NObject* messageObject); | 287 typedef void (InspectorBackendDispatcherImpl::*CallHandler)(long callId, JSO
NObject* messageObject); |
| 276 typedef HashMap<String, CallHandler> DispatchMap; | 288 typedef HashMap<String, CallHandler> DispatchMap; |
| 277 DEFINE_STATIC_LOCAL(DispatchMap, dispatchMap, ); | 289 DEFINE_STATIC_LOCAL(DispatchMap, dispatchMap, ); |
| 278 long callId = 0; | 290 long callId = 0; |
| 279 | 291 |
| 280 if (dispatchMap.isEmpty()) { | 292 if (dispatchMap.isEmpty()) { |
| 281 static CallHandler handlers[] = { | 293 static CallHandler handlers[] = { |
| 282 $messageHandlers | 294 $messageHandlers |
| 283 }; | 295 }; |
| 284 size_t length = WTF_ARRAY_LENGTH(commandNames); | 296 for (size_t i = 0; i < kMethodNamesEnumSize; ++i) |
| 285 for (size_t i = 0; i < length; ++i) | 297 dispatchMap.add(commandName(static_cast<MethodNames>(i)), handlers[i
]); |
| 286 dispatchMap.add(commandNames[i], handlers[i]); | |
| 287 } | 298 } |
| 288 | 299 |
| 289 RefPtr<JSONValue> parsedMessage = parseJSON(message); | 300 RefPtr<JSONValue> parsedMessage = parseJSON(message); |
| 290 if (!parsedMessage) { | 301 if (!parsedMessage) { |
| 291 reportProtocolError(0, ParseError, "Message must be in JSON format"); | 302 reportProtocolError(0, ParseError, "Message must be in JSON format"); |
| 292 return; | 303 return; |
| 293 } | 304 } |
| 294 | 305 |
| 295 RefPtr<JSONObject> messageObject = parsedMessage->asObject(); | 306 RefPtr<JSONObject> messageObject = parsedMessage->asObject(); |
| 296 if (!messageObject) { | 307 if (!messageObject) { |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 } | 507 } |
| 497 | 508 |
| 498 void InspectorBackendDispatcher::CallbackBase::sendIfActive(PassRefPtr<JSONObjec
t> partialMessage, const ErrorString& invocationError, PassRefPtr<JSONValue> err
orData) | 509 void InspectorBackendDispatcher::CallbackBase::sendIfActive(PassRefPtr<JSONObjec
t> partialMessage, const ErrorString& invocationError, PassRefPtr<JSONValue> err
orData) |
| 499 { | 510 { |
| 500 if (m_alreadySent) | 511 if (m_alreadySent) |
| 501 return; | 512 return; |
| 502 m_backendImpl->sendResponse(m_id, partialMessage, invocationError, errorData
); | 513 m_backendImpl->sendResponse(m_id, partialMessage, invocationError, errorData
); |
| 503 m_alreadySent = true; | 514 m_alreadySent = true; |
| 504 } | 515 } |
| 505 | 516 |
| 506 COMPILE_ASSERT(static_cast<int>(InspectorBackendDispatcher::kMethodNamesEnumSize
) == WTF_ARRAY_LENGTH(InspectorBackendDispatcher::commandNames), command_name_ar
ray_problem); | |
| 507 | |
| 508 } // namespace WebCore | 517 } // namespace WebCore |
| 509 | 518 |
| 510 """) | 519 """) |
| 511 | 520 |
| 512 frontend_cpp = ( | 521 frontend_cpp = ( |
| 513 """ | 522 """ |
| 514 | 523 |
| 515 #include "config.h" | 524 #include "config.h" |
| 516 #include "InspectorFrontend.h" | 525 #include "InspectorFrontend.h" |
| 517 | 526 |
| 518 #include "core/inspector/InspectorFrontendChannel.h" | 527 #include "core/inspector/InspectorFrontendChannel.h" |
| 519 #include "core/platform/JSONValues.h" | 528 #include "platform/JSONValues.h" |
| 520 #include "wtf/text/CString.h" | 529 #include "wtf/text/CString.h" |
| 521 #include "wtf/text/WTFString.h" | 530 #include "wtf/text/WTFString.h" |
| 522 | 531 |
| 523 namespace WebCore { | 532 namespace WebCore { |
| 524 | 533 |
| 525 InspectorFrontend::InspectorFrontend(InspectorFrontendChannel* inspectorFrontend
Channel) | 534 InspectorFrontend::InspectorFrontend(InspectorFrontendChannel* inspectorFrontend
Channel) |
| 526 : $constructorInit{ | 535 : $constructorInit{ |
| 527 } | 536 } |
| 528 | 537 |
| 529 $methods | 538 $methods |
| 530 | 539 |
| 531 } // namespace WebCore | 540 } // namespace WebCore |
| 532 | 541 |
| 533 """) | 542 """) |
| 534 | 543 |
| 535 typebuilder_h = ( | 544 typebuilder_h = ( |
| 536 """ | 545 """ |
| 537 #ifndef InspectorTypeBuilder_h | 546 #ifndef InspectorTypeBuilder_h |
| 538 #define InspectorTypeBuilder_h | 547 #define InspectorTypeBuilder_h |
| 539 | 548 |
| 540 #include "core/platform/JSONValues.h" | 549 #include "platform/JSONValues.h" |
| 541 #include "wtf/Assertions.h" | 550 #include "wtf/Assertions.h" |
| 542 #include "wtf/PassRefPtr.h" | 551 #include "wtf/PassRefPtr.h" |
| 543 | 552 |
| 544 namespace WebCore { | 553 namespace WebCore { |
| 545 | 554 |
| 546 namespace TypeBuilder { | 555 namespace TypeBuilder { |
| 547 | 556 |
| 548 template<typename T> | 557 template<typename T> |
| 549 class OptOutput { | 558 class OptOutput { |
| 550 public: | 559 public: |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 931 }; | 940 }; |
| 932 | 941 |
| 933 """) | 942 """) |
| 934 | 943 |
| 935 class_binding_builder_part_4 = ( | 944 class_binding_builder_part_4 = ( |
| 936 """ static Builder<NoFieldsSet> create() | 945 """ static Builder<NoFieldsSet> create() |
| 937 { | 946 { |
| 938 return Builder<NoFieldsSet>(JSONObject::create()); | 947 return Builder<NoFieldsSet>(JSONObject::create()); |
| 939 } | 948 } |
| 940 """) | 949 """) |
| OLD | NEW |