Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: third_party/WebKit/Source/platform/inspector_protocol/DispatcherBase_cpp.template

Issue 2251343003: [DevTools] Generate separate copies of inspector_protocol. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 namespace blink { 5 //#include "DispatcherBase.h"
6 namespace protocol { 6 //#include "FrontendChannel.h"
7 //#include "Parser.h"
8
9 {% for namespace in config.protocol.namespace %}
10 namespace {{namespace}} {
11 {% endfor %}
7 12
8 // static 13 // static
9 const char DispatcherBase::kInvalidRequest[] = "Invalid request"; 14 const char DispatcherBase::kInvalidRequest[] = "Invalid request";
10 15
11 DispatcherBase::WeakPtr::WeakPtr(DispatcherBase* dispatcher) : m_dispatcher(disp atcher) { } 16 DispatcherBase::WeakPtr::WeakPtr(DispatcherBase* dispatcher) : m_dispatcher(disp atcher) { }
12 17
13 DispatcherBase::WeakPtr::~WeakPtr() 18 DispatcherBase::WeakPtr::~WeakPtr()
14 { 19 {
15 if (m_dispatcher) 20 if (m_dispatcher)
16 m_dispatcher->m_weakPtrs.erase(this); 21 m_dispatcher->m_weakPtrs.erase(this);
(...skipping 20 matching lines...) Expand all
37 42
38 DispatcherBase::DispatcherBase(FrontendChannel* frontendChannel) 43 DispatcherBase::DispatcherBase(FrontendChannel* frontendChannel)
39 : m_frontendChannel(frontendChannel) { } 44 : m_frontendChannel(frontendChannel) { }
40 45
41 DispatcherBase::~DispatcherBase() 46 DispatcherBase::~DispatcherBase()
42 { 47 {
43 clearFrontend(); 48 clearFrontend();
44 } 49 }
45 50
46 // static 51 // static
47 bool DispatcherBase::getCommandName(const String16& message, String16* result) 52 bool DispatcherBase::getCommandName(const String& message, String* result)
48 { 53 {
49 std::unique_ptr<protocol::Value> value = parseJSON(message); 54 std::unique_ptr<protocol::Value> value = parseJSON(message);
50 if (!value) 55 if (!value)
51 return false; 56 return false;
52 57
53 protocol::DictionaryValue* object = DictionaryValue::cast(value.get()); 58 protocol::DictionaryValue* object = DictionaryValue::cast(value.get());
54 if (!object) 59 if (!object)
55 return false; 60 return false;
56 61
57 if (!object->getString("method", result)) 62 if (!object->getString("method", result))
(...skipping 19 matching lines...) Expand all
77 void DispatcherBase::sendResponse(int callId, const ErrorString& invocationError , std::unique_ptr<protocol::DictionaryValue> result) 82 void DispatcherBase::sendResponse(int callId, const ErrorString& invocationError , std::unique_ptr<protocol::DictionaryValue> result)
78 { 83 {
79 sendResponse(callId, invocationError, nullptr, std::move(result)); 84 sendResponse(callId, invocationError, nullptr, std::move(result));
80 } 85 }
81 86
82 void DispatcherBase::sendResponse(int callId, const ErrorString& invocationError ) 87 void DispatcherBase::sendResponse(int callId, const ErrorString& invocationError )
83 { 88 {
84 sendResponse(callId, invocationError, nullptr, DictionaryValue::create()); 89 sendResponse(callId, invocationError, nullptr, DictionaryValue::create());
85 } 90 }
86 91
87 static void reportProtocolError(FrontendChannel* frontendChannel, int callId, Di spatcherBase::CommonErrorCode code, const String16& errorMessage, ErrorSupport* errors) 92 static void reportProtocolErrorTo(FrontendChannel* frontendChannel, int callId, DispatcherBase::CommonErrorCode code, const String& errorMessage, ErrorSupport* errors)
88 { 93 {
89 std::unique_ptr<protocol::DictionaryValue> error = DictionaryValue::create() ; 94 std::unique_ptr<protocol::DictionaryValue> error = DictionaryValue::create() ;
90 error->setInteger("code", code); 95 error->setInteger("code", code);
91 error->setString("message", errorMessage); 96 error->setString("message", errorMessage);
92 DCHECK(error); 97 DCHECK(error);
93 if (errors && errors->hasErrors()) 98 if (errors && errors->hasErrors())
94 error->setString("data", errors->errors()); 99 error->setString("data", errors->errors());
95 std::unique_ptr<protocol::DictionaryValue> message = DictionaryValue::create (); 100 std::unique_ptr<protocol::DictionaryValue> message = DictionaryValue::create ();
96 message->setObject("error", std::move(error)); 101 message->setObject("error", std::move(error));
97 message->setInteger("id", callId); 102 message->setInteger("id", callId);
98 frontendChannel->sendProtocolResponse(callId, message->toJSONString()); 103 frontendChannel->sendProtocolResponse(callId, message->toJSONString());
99 } 104 }
100 105
101 void DispatcherBase::reportProtocolError(int callId, CommonErrorCode code, const String16& errorMessage, ErrorSupport* errors) 106 void DispatcherBase::reportProtocolError(int callId, CommonErrorCode code, const String& errorMessage, ErrorSupport* errors)
102 { 107 {
103 if (m_frontendChannel) 108 if (m_frontendChannel)
104 ::blink::protocol::reportProtocolError(m_frontendChannel, callId, code, errorMessage, errors); 109 reportProtocolErrorTo(m_frontendChannel, callId, code, errorMessage, err ors);
105 } 110 }
106 111
107 void DispatcherBase::clearFrontend() 112 void DispatcherBase::clearFrontend()
108 { 113 {
109 m_frontendChannel = nullptr; 114 m_frontendChannel = nullptr;
110 for (auto& weak : m_weakPtrs) 115 for (auto& weak : m_weakPtrs)
111 weak->dispose(); 116 weak->dispose();
112 m_weakPtrs.clear(); 117 m_weakPtrs.clear();
113 } 118 }
114 119
115 std::unique_ptr<DispatcherBase::WeakPtr> DispatcherBase::weakPtr() 120 std::unique_ptr<DispatcherBase::WeakPtr> DispatcherBase::weakPtr()
116 { 121 {
117 std::unique_ptr<DispatcherBase::WeakPtr> weak(new DispatcherBase::WeakPtr(th is)); 122 std::unique_ptr<DispatcherBase::WeakPtr> weak(new DispatcherBase::WeakPtr(th is));
118 m_weakPtrs.insert(weak.get()); 123 m_weakPtrs.insert(weak.get());
119 return weak; 124 return weak;
120 } 125 }
121 126
122 UberDispatcher::UberDispatcher(FrontendChannel* frontendChannel) 127 UberDispatcher::UberDispatcher(FrontendChannel* frontendChannel)
123 : m_frontendChannel(frontendChannel) { } 128 : m_frontendChannel(frontendChannel) { }
124 129
125 void UberDispatcher::registerBackend(const String16& name, std::unique_ptr<proto col::DispatcherBase> dispatcher) 130 void UberDispatcher::registerBackend(const String& name, std::unique_ptr<protoco l::DispatcherBase> dispatcher)
126 { 131 {
127 m_dispatchers[name] = std::move(dispatcher); 132 m_dispatchers[name] = std::move(dispatcher);
128 } 133 }
129 134
130 void UberDispatcher::dispatch(const String16& message) 135 void UberDispatcher::dispatch(const String& message)
131 { 136 {
132 std::unique_ptr<protocol::Value> parsedMessage = parseJSON(message); 137 std::unique_ptr<protocol::Value> parsedMessage = parseJSON(message);
133 if (!parsedMessage) 138 if (!parsedMessage)
134 return; 139 return;
135 std::unique_ptr<protocol::DictionaryValue> messageObject = DictionaryValue:: cast(std::move(parsedMessage)); 140 std::unique_ptr<protocol::DictionaryValue> messageObject = DictionaryValue:: cast(std::move(parsedMessage));
136 if (!messageObject) 141 if (!messageObject)
137 return; 142 return;
138 143
139 int callId = 0; 144 int callId = 0;
140 protocol::Value* callIdValue = messageObject->get("id"); 145 protocol::Value* callIdValue = messageObject->get("id");
141 bool success = callIdValue->asInteger(&callId); 146 bool success = callIdValue->asInteger(&callId);
142 if (!success) 147 if (!success)
143 return; 148 return;
144 149
145 protocol::Value* methodValue = messageObject->get("method"); 150 protocol::Value* methodValue = messageObject->get("method");
146 String16 method; 151 String method;
147 success = methodValue && methodValue->asString(&method); 152 success = methodValue && methodValue->asString(&method);
148 if (!success) 153 if (!success)
149 return; 154 return;
150 155
151 size_t dotIndex = method.find("."); 156 size_t dotIndex = method.find(".");
152 if (dotIndex == String16::kNotFound) { 157 if (dotIndex == StringUtil::kNotFound) {
153 reportProtocolError(m_frontendChannel, callId, DispatcherBase::MethodNot Found, "'" + method + "' wasn't found", nullptr); 158 reportProtocolErrorTo(m_frontendChannel, callId, DispatcherBase::MethodN otFound, "'" + method + "' wasn't found", nullptr);
154 return; 159 return;
155 } 160 }
156 String16 domain = method.substring(0, dotIndex); 161 String domain = StringUtil::substring(method, 0, dotIndex);
157 auto it = m_dispatchers.find(domain); 162 auto it = m_dispatchers.find(domain);
158 if (it == m_dispatchers.end()) { 163 if (it == m_dispatchers.end()) {
159 reportProtocolError(m_frontendChannel, callId, DispatcherBase::MethodNot Found, "'" + method + "' wasn't found", nullptr); 164 reportProtocolErrorTo(m_frontendChannel, callId, DispatcherBase::MethodN otFound, "'" + method + "' wasn't found", nullptr);
160 return; 165 return;
161 } 166 }
162 it->second->dispatch(callId, method, std::move(messageObject)); 167 it->second->dispatch(callId, method, std::move(messageObject));
163 } 168 }
164 169
165 UberDispatcher::~UberDispatcher() = default; 170 UberDispatcher::~UberDispatcher() = default;
166 171
167 } // namespace protocol 172 {% for namespace in config.protocol.namespace %}
168 } // namespace blink 173 } // namespace {{namespace}}
174 {% endfor %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698