Chromium Code Reviews| Index: Source/core/inspector/CodeGeneratorInspectorStrings.py |
| diff --git a/Source/core/inspector/CodeGeneratorInspectorStrings.py b/Source/core/inspector/CodeGeneratorInspectorStrings.py |
| index c74f07c40c5a16e2876b4e89991ca9f9becd48a2..c83294ea1e00300a702e72c9c494707d54ac0768 100644 |
| --- a/Source/core/inspector/CodeGeneratorInspectorStrings.py |
| +++ b/Source/core/inspector/CodeGeneratorInspectorStrings.py |
| @@ -44,23 +44,19 @@ ${frontendDomainMethodDeclarations} |
| """) |
| backend_method = ( |
| -"""void InspectorBackendDispatcherImpl::${domainName}_$methodName(long callId, JSONObject*$requestMessageObject) |
| +"""void InspectorBackendDispatcherImpl::${domainName}_$methodName(long callId, JSONObject*$requestMessageObject, JSONArray* protocolErrors) |
| { |
| - RefPtr<JSONArray> protocolErrors = JSONArray::create(); |
|
yurys
2014/06/10 07:36:19
I'd rather we left previous implementation where p
|
| - |
| if (!$agentField) |
| protocolErrors->pushString("${domainName} handler is not available."); |
| -$methodOutCode |
| -$methodInCode |
| - RefPtr<JSONObject> result = JSONObject::create(); |
| - RefPtr<JSONValue> resultErrorData; |
| - ErrorString error; |
| - if (!protocolErrors->length()) { |
| - $agentField->$methodName(&error$agentCallParams); |
| - |
| -$errorCook${responseCook} |
| +$methodCode |
| + if (protocolErrors->length()) { |
| + reportProtocolError(&callId, InvalidParams, String::format(InvalidParamsFormatString, commandName($commandNameIndex)), protocolErrors); |
| + return; |
| } |
| - sendResponse(callId, result, commandName($commandNameIndex), protocolErrors, error, resultErrorData); |
| + ErrorString error; |
| + $agentField->$methodName(&error$agentCallParams); |
| +$responseCook |
| + sendResponse(callId, $sendResponseCallParams); |
| } |
| """) |
| @@ -247,7 +243,7 @@ $constructorInit |
| virtual void reportProtocolError(const long* const callId, CommonErrorCode, const String& errorMessage, PassRefPtr<JSONValue> data) const; |
| using InspectorBackendDispatcher::reportProtocolError; |
| - void sendResponse(long callId, PassRefPtr<JSONObject> result, const ErrorString&invocationError, PassRefPtr<JSONValue> errorData); |
| + void sendResponse(long callId, const ErrorString& invocationError, PassRefPtr<JSONValue> errorData, PassRefPtr<JSONObject> result); |
| bool isActive() { return m_inspectorFrontendChannel; } |
| $setters |
| @@ -267,10 +263,19 @@ $fieldDeclarations |
| static PassRefPtr<JSONObject> getObject(JSONObject* object, const char* name, bool* valueFound, JSONArray* protocolErrors); |
| static PassRefPtr<JSONArray> getArray(JSONObject* object, const char* name, bool* valueFound, JSONArray* protocolErrors); |
| - void sendResponse(long callId, PassRefPtr<JSONObject> result, const char* commandName, PassRefPtr<JSONArray> protocolErrors, ErrorString invocationError, PassRefPtr<JSONValue> errorData); |
| - |
| + void sendResponse(long callId, ErrorString invocationError, PassRefPtr<JSONObject> result) |
| + { |
| + sendResponse(callId, invocationError, RefPtr<JSONValue>(), result); |
| + } |
| + void sendResponse(long callId, ErrorString invocationError) |
| + { |
| + sendResponse(callId, invocationError, RefPtr<JSONValue>(), JSONObject::create()); |
| + } |
| + static const char InvalidParamsFormatString[]; |
| }; |
| +const char InspectorBackendDispatcherImpl::InvalidParamsFormatString[] = "Some arguments of method '%s' can't be processed"; |
| + |
| $methods |
| PassRefPtr<InspectorBackendDispatcher> InspectorBackendDispatcher::create(InspectorFrontendChannel* inspectorFrontendChannel) |
| @@ -282,7 +287,7 @@ PassRefPtr<InspectorBackendDispatcher> InspectorBackendDispatcher::create(Inspec |
| void InspectorBackendDispatcherImpl::dispatch(const String& message) |
| { |
| RefPtr<InspectorBackendDispatcher> protect = this; |
| - typedef void (InspectorBackendDispatcherImpl::*CallHandler)(long callId, JSONObject* messageObject); |
| + typedef void (InspectorBackendDispatcherImpl::*CallHandler)(long callId, JSONObject* messageObject, JSONArray* protocolErrors); |
| typedef HashMap<String, CallHandler> DispatchMap; |
| DEFINE_STATIC_LOCAL(DispatchMap, dispatchMap, ); |
| long callId = 0; |
| @@ -336,20 +341,11 @@ $messageHandlers |
| return; |
| } |
| - ((*this).*it->value)(callId, messageObject.get()); |
| -} |
| - |
| -void InspectorBackendDispatcherImpl::sendResponse(long callId, PassRefPtr<JSONObject> result, const char* commandName, PassRefPtr<JSONArray> protocolErrors, ErrorString invocationError, PassRefPtr<JSONValue> errorData) |
| -{ |
| - if (protocolErrors->length()) { |
| - String errorMessage = String::format("Some arguments of method '%s' can't be processed", commandName); |
| - reportProtocolError(&callId, InvalidParams, errorMessage, protocolErrors); |
| - return; |
| - } |
| - sendResponse(callId, result, invocationError, errorData); |
| + RefPtr<JSONArray> protocolErrors = JSONArray::create(); |
| + ((*this).*it->value)(callId, messageObject.get(), protocolErrors.get()); |
| } |
| -void InspectorBackendDispatcherImpl::sendResponse(long callId, PassRefPtr<JSONObject> result, const ErrorString& invocationError, PassRefPtr<JSONValue> errorData) |
| +void InspectorBackendDispatcherImpl::sendResponse(long callId, const ErrorString& invocationError, PassRefPtr<JSONValue> errorData, PassRefPtr<JSONObject> result) |
| { |
| if (invocationError.length()) { |
| reportProtocolError(&callId, ServerError, invocationError, errorData); |
| @@ -508,7 +504,7 @@ void InspectorBackendDispatcher::CallbackBase::sendIfActive(PassRefPtr<JSONObjec |
| { |
| if (m_alreadySent) |
| return; |
| - m_backendImpl->sendResponse(m_id, partialMessage, invocationError, errorData); |
| + m_backendImpl->sendResponse(m_id, invocationError, errorData, partialMessage); |
| m_alreadySent = true; |
| } |
| @@ -901,7 +897,6 @@ $validatorCode |
| param_container_access_code = """ |
| RefPtr<JSONObject> paramsContainer = requestMessageObject->getObject("params"); |
| JSONObject* paramsContainerPtr = paramsContainer.get(); |
| - JSONArray* protocolErrorsPtr = protocolErrors.get(); |
| """ |
| class_binding_builder_part_1 = ( |