OLD | NEW |
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 #include "platform/v8_inspector/V8InspectorSessionImpl.h" | 5 #include "platform/v8_inspector/V8InspectorSessionImpl.h" |
6 | 6 |
7 #include "platform/v8_inspector/InjectedScript.h" | 7 #include "platform/v8_inspector/InjectedScript.h" |
8 #include "platform/v8_inspector/InspectedContext.h" | 8 #include "platform/v8_inspector/InspectedContext.h" |
9 #include "platform/v8_inspector/RemoteObjectId.h" | 9 #include "platform/v8_inspector/RemoteObjectId.h" |
10 #include "platform/v8_inspector/V8DebuggerAgentImpl.h" | 10 #include "platform/v8_inspector/V8DebuggerAgentImpl.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 for (auto& key : keys) { | 135 for (auto& key : keys) { |
136 contexts = m_debugger->contextGroup(m_contextGroupId); | 136 contexts = m_debugger->contextGroup(m_contextGroupId); |
137 if (contexts && contexts->contains(key)) { | 137 if (contexts && contexts->contains(key)) { |
138 InjectedScript* injectedScript = contexts->get(key)->getInjectedScri
pt(); | 138 InjectedScript* injectedScript = contexts->get(key)->getInjectedScri
pt(); |
139 if (injectedScript) | 139 if (injectedScript) |
140 injectedScript->releaseObjectGroup(objectGroup); // This may des
troy some contexts. | 140 injectedScript->releaseObjectGroup(objectGroup); // This may des
troy some contexts. |
141 } | 141 } |
142 } | 142 } |
143 } | 143 } |
144 | 144 |
| 145 v8::Local<v8::Value> V8InspectorSessionImpl::findObject(ErrorString* errorString
, const String16& objectId, v8::Local<v8::Context>* context, String16* groupName
) |
| 146 { |
| 147 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(errorString, objectI
d); |
| 148 if (!remoteId) |
| 149 return v8::Local<v8::Value>(); |
| 150 InjectedScript* injectedScript = findInjectedScript(errorString, remoteId.ge
t()); |
| 151 if (!injectedScript) |
| 152 return v8::Local<v8::Value>(); |
| 153 v8::Local<v8::Value> objectValue; |
| 154 injectedScript->findObject(errorString, *remoteId, &objectValue); |
| 155 if (objectValue.IsEmpty()) |
| 156 return v8::Local<v8::Value>(); |
| 157 if (context) |
| 158 *context = injectedScript->context()->context(); |
| 159 if (groupName) |
| 160 *groupName = injectedScript->objectGroupName(*remoteId); |
| 161 return objectValue; |
| 162 } |
| 163 |
| 164 PassOwnPtr<protocol::Runtime::RemoteObject> V8InspectorSessionImpl::wrapObject(v
8::Local<v8::Context> context, v8::Local<v8::Value> value, const String16& group
Name, bool generatePreview) |
| 165 { |
| 166 ErrorString errorString; |
| 167 InjectedScript* injectedScript = findInjectedScript(&errorString, V8Debugger
::contextId(context)); |
| 168 if (!injectedScript) |
| 169 return nullptr; |
| 170 return injectedScript->wrapObject(&errorString, value, groupName, false, gen
eratePreview); |
| 171 } |
| 172 |
| 173 PassOwnPtr<protocol::Runtime::RemoteObject> V8InspectorSessionImpl::wrapTable(v8
::Local<v8::Context> context, v8::Local<v8::Value> table, v8::Local<v8::Value> c
olumns) |
| 174 { |
| 175 ErrorString errorString; |
| 176 InjectedScript* injectedScript = findInjectedScript(&errorString, V8Debugger
::contextId(context)); |
| 177 if (!injectedScript) |
| 178 return nullptr; |
| 179 return injectedScript->wrapTable(table, columns); |
| 180 } |
| 181 |
145 void V8InspectorSessionImpl::setCustomObjectFormatterEnabled(bool enabled) | 182 void V8InspectorSessionImpl::setCustomObjectFormatterEnabled(bool enabled) |
146 { | 183 { |
147 m_customObjectFormatterEnabled = enabled; | 184 m_customObjectFormatterEnabled = enabled; |
148 const V8DebuggerImpl::ContextByIdMap* contexts = m_debugger->contextGroup(m_
contextGroupId); | 185 const V8DebuggerImpl::ContextByIdMap* contexts = m_debugger->contextGroup(m_
contextGroupId); |
149 if (!contexts) | 186 if (!contexts) |
150 return; | 187 return; |
151 for (auto& idContext : *contexts) { | 188 for (auto& idContext : *contexts) { |
152 InjectedScript* injectedScript = idContext.second->getInjectedScript(); | 189 InjectedScript* injectedScript = idContext.second->getInjectedScript(); |
153 if (injectedScript) | 190 if (injectedScript) |
154 injectedScript->setCustomObjectFormatterEnabled(enabled); | 191 injectedScript->setCustomObjectFormatterEnabled(enabled); |
(...skipping 12 matching lines...) Expand all Loading... |
167 void V8InspectorSessionImpl::changeInstrumentationCounter(int delta) | 204 void V8InspectorSessionImpl::changeInstrumentationCounter(int delta) |
168 { | 205 { |
169 ASSERT(m_instrumentationCounter + delta >= 0); | 206 ASSERT(m_instrumentationCounter + delta >= 0); |
170 if (!m_instrumentationCounter && m_client) | 207 if (!m_instrumentationCounter && m_client) |
171 m_client->startInstrumenting(); | 208 m_client->startInstrumenting(); |
172 m_instrumentationCounter += delta; | 209 m_instrumentationCounter += delta; |
173 if (!m_instrumentationCounter && m_client) | 210 if (!m_instrumentationCounter && m_client) |
174 m_client->stopInstrumenting(); | 211 m_client->stopInstrumenting(); |
175 } | 212 } |
176 | 213 |
177 void V8InspectorSessionImpl::addInspectedObject(PassOwnPtr<V8RuntimeAgent::Inspe
ctable> inspectable) | 214 void V8InspectorSessionImpl::addInspectedObject(PassOwnPtr<V8InspectorSession::I
nspectable> inspectable) |
178 { | 215 { |
179 m_inspectedObjects.prepend(std::move(inspectable)); | 216 m_inspectedObjects.prepend(std::move(inspectable)); |
180 while (m_inspectedObjects.size() > kInspectedObjectBufferSize) | 217 while (m_inspectedObjects.size() > kInspectedObjectBufferSize) |
181 m_inspectedObjects.removeLast(); | 218 m_inspectedObjects.removeLast(); |
182 } | 219 } |
183 | 220 |
184 V8RuntimeAgent::Inspectable* V8InspectorSessionImpl::inspectedObject(unsigned nu
m) | 221 V8InspectorSession::Inspectable* V8InspectorSessionImpl::inspectedObject(unsigne
d num) |
185 { | 222 { |
186 if (num >= m_inspectedObjects.size()) | 223 if (num >= m_inspectedObjects.size()) |
187 return nullptr; | 224 return nullptr; |
188 return m_inspectedObjects[num].get(); | 225 return m_inspectedObjects[num].get(); |
189 } | 226 } |
190 | 227 |
191 void V8InspectorSessionImpl::schedulePauseOnNextStatement(const String16& breakR
eason, PassOwnPtr<protocol::DictionaryValue> data) | 228 void V8InspectorSessionImpl::schedulePauseOnNextStatement(const String16& breakR
eason, PassOwnPtr<protocol::DictionaryValue> data) |
192 { | 229 { |
193 m_debuggerAgent->schedulePauseOnNextStatement(breakReason, std::move(data)); | 230 m_debuggerAgent->schedulePauseOnNextStatement(breakReason, std::move(data)); |
194 } | 231 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 { | 270 { |
234 m_debuggerAgent->asyncTaskFinished(task); | 271 m_debuggerAgent->asyncTaskFinished(task); |
235 } | 272 } |
236 | 273 |
237 void V8InspectorSessionImpl::allAsyncTasksCanceled() | 274 void V8InspectorSessionImpl::allAsyncTasksCanceled() |
238 { | 275 { |
239 m_debuggerAgent->allAsyncTasksCanceled(); | 276 m_debuggerAgent->allAsyncTasksCanceled(); |
240 } | 277 } |
241 | 278 |
242 } // namespace blink | 279 } // namespace blink |
OLD | NEW |