| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 , m_enabled(false) | 64 , m_enabled(false) |
| 65 { | 65 { |
| 66 } | 66 } |
| 67 | 67 |
| 68 V8RuntimeAgentImpl::~V8RuntimeAgentImpl() | 68 V8RuntimeAgentImpl::~V8RuntimeAgentImpl() |
| 69 { | 69 { |
| 70 } | 70 } |
| 71 | 71 |
| 72 void V8RuntimeAgentImpl::evaluate( | 72 void V8RuntimeAgentImpl::evaluate( |
| 73 ErrorString* errorString, | 73 ErrorString* errorString, |
| 74 const String& expression, | 74 const String16& expression, |
| 75 const Maybe<String>& objectGroup, | 75 const Maybe<String16>& objectGroup, |
| 76 const Maybe<bool>& includeCommandLineAPI, | 76 const Maybe<bool>& includeCommandLineAPI, |
| 77 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, | 77 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, |
| 78 const Maybe<int>& executionContextId, | 78 const Maybe<int>& executionContextId, |
| 79 const Maybe<bool>& returnByValue, | 79 const Maybe<bool>& returnByValue, |
| 80 const Maybe<bool>& generatePreview, | 80 const Maybe<bool>& generatePreview, |
| 81 OwnPtr<RemoteObject>* result, | 81 OwnPtr<RemoteObject>* result, |
| 82 Maybe<bool>* wasThrown, | 82 Maybe<bool>* wasThrown, |
| 83 Maybe<ExceptionDetails>* exceptionDetails) | 83 Maybe<ExceptionDetails>* exceptionDetails) |
| 84 { | 84 { |
| 85 if (!executionContextId.isJust()) { | 85 if (!executionContextId.isJust()) { |
| 86 *errorString = "Cannot find default execution context"; | 86 *errorString = "Cannot find default execution context"; |
| 87 return; | 87 return; |
| 88 } | 88 } |
| 89 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(executionContextId.fromJust()); | 89 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(executionContextId.fromJust()); |
| 90 if (!injectedScript) { | 90 if (!injectedScript) { |
| 91 *errorString = "Cannot find execution context with given id"; | 91 *errorString = "Cannot find execution context with given id"; |
| 92 return; | 92 return; |
| 93 } | 93 } |
| 94 IgnoreExceptionsScope ignoreExceptionsScope(doNotPauseOnExceptionsAndMuteCon
sole.fromMaybe(false) ? m_debugger : nullptr); | 94 IgnoreExceptionsScope ignoreExceptionsScope(doNotPauseOnExceptionsAndMuteCon
sole.fromMaybe(false) ? m_debugger : nullptr); |
| 95 injectedScript->evaluate(errorString, expression, objectGroup.fromMaybe(""),
includeCommandLineAPI.fromMaybe(false), returnByValue.fromMaybe(false), generat
ePreview.fromMaybe(false), result, wasThrown, exceptionDetails); | 95 injectedScript->evaluate(errorString, expression, objectGroup.fromMaybe(""),
includeCommandLineAPI.fromMaybe(false), returnByValue.fromMaybe(false), generat
ePreview.fromMaybe(false), result, wasThrown, exceptionDetails); |
| 96 } | 96 } |
| 97 | 97 |
| 98 void V8RuntimeAgentImpl::callFunctionOn(ErrorString* errorString, | 98 void V8RuntimeAgentImpl::callFunctionOn(ErrorString* errorString, |
| 99 const String& objectId, | 99 const String16& objectId, |
| 100 const String& expression, | 100 const String16& expression, |
| 101 const Maybe<protocol::Array<protocol::Runtime::CallArgument>>& optionalArgum
ents, | 101 const Maybe<protocol::Array<protocol::Runtime::CallArgument>>& optionalArgum
ents, |
| 102 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, | 102 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, |
| 103 const Maybe<bool>& returnByValue, | 103 const Maybe<bool>& returnByValue, |
| 104 const Maybe<bool>& generatePreview, | 104 const Maybe<bool>& generatePreview, |
| 105 OwnPtr<RemoteObject>* result, | 105 OwnPtr<RemoteObject>* result, |
| 106 Maybe<bool>* wasThrown) | 106 Maybe<bool>* wasThrown) |
| 107 { | 107 { |
| 108 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); | 108 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); |
| 109 if (!remoteId) { | 109 if (!remoteId) { |
| 110 *errorString = "Invalid object id"; | 110 *errorString = "Invalid object id"; |
| 111 return; | 111 return; |
| 112 } | 112 } |
| 113 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId.get()); | 113 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId.get()); |
| 114 if (!injectedScript) { | 114 if (!injectedScript) { |
| 115 *errorString = "Inspected frame has gone"; | 115 *errorString = "Inspected frame has gone"; |
| 116 return; | 116 return; |
| 117 } | 117 } |
| 118 String arguments; | 118 String16 arguments; |
| 119 if (optionalArguments.isJust()) | 119 if (optionalArguments.isJust()) |
| 120 arguments = protocol::toValue(optionalArguments.fromJust())->toJSONStrin
g(); | 120 arguments = protocol::toValue(optionalArguments.fromJust())->toJSONStrin
g(); |
| 121 | 121 |
| 122 IgnoreExceptionsScope ignoreExceptionsScope(doNotPauseOnExceptionsAndMuteCon
sole.fromMaybe(false) ? m_debugger : nullptr); | 122 IgnoreExceptionsScope ignoreExceptionsScope(doNotPauseOnExceptionsAndMuteCon
sole.fromMaybe(false) ? m_debugger : nullptr); |
| 123 injectedScript->callFunctionOn(errorString, objectId, expression, arguments,
returnByValue.fromMaybe(false), generatePreview.fromMaybe(false), result, wasTh
rown); | 123 injectedScript->callFunctionOn(errorString, objectId, expression, arguments,
returnByValue.fromMaybe(false), generatePreview.fromMaybe(false), result, wasTh
rown); |
| 124 } | 124 } |
| 125 | 125 |
| 126 void V8RuntimeAgentImpl::getProperties( | 126 void V8RuntimeAgentImpl::getProperties( |
| 127 ErrorString* errorString, | 127 ErrorString* errorString, |
| 128 const String& objectId, | 128 const String16& objectId, |
| 129 const Maybe<bool>& ownProperties, | 129 const Maybe<bool>& ownProperties, |
| 130 const Maybe<bool>& accessorPropertiesOnly, | 130 const Maybe<bool>& accessorPropertiesOnly, |
| 131 const Maybe<bool>& generatePreview, | 131 const Maybe<bool>& generatePreview, |
| 132 OwnPtr<protocol::Array<protocol::Runtime::PropertyDescriptor>>* result, | 132 OwnPtr<protocol::Array<protocol::Runtime::PropertyDescriptor>>* result, |
| 133 Maybe<protocol::Array<protocol::Runtime::InternalPropertyDescriptor>>* inter
nalProperties, | 133 Maybe<protocol::Array<protocol::Runtime::InternalPropertyDescriptor>>* inter
nalProperties, |
| 134 Maybe<ExceptionDetails>* exceptionDetails) | 134 Maybe<ExceptionDetails>* exceptionDetails) |
| 135 { | 135 { |
| 136 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); | 136 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); |
| 137 if (!remoteId) { | 137 if (!remoteId) { |
| 138 *errorString = "Invalid object id"; | 138 *errorString = "Invalid object id"; |
| 139 return; | 139 return; |
| 140 } | 140 } |
| 141 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId.get()); | 141 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId.get()); |
| 142 if (!injectedScript) { | 142 if (!injectedScript) { |
| 143 *errorString = "Inspected frame has gone"; | 143 *errorString = "Inspected frame has gone"; |
| 144 return; | 144 return; |
| 145 } | 145 } |
| 146 | 146 |
| 147 IgnoreExceptionsScope ignoreExceptionsScope(m_debugger); | 147 IgnoreExceptionsScope ignoreExceptionsScope(m_debugger); |
| 148 | 148 |
| 149 injectedScript->getProperties(errorString, objectId, ownProperties.fromMaybe
(false), accessorPropertiesOnly.fromMaybe(false), generatePreview.fromMaybe(fals
e), result, exceptionDetails); | 149 injectedScript->getProperties(errorString, objectId, ownProperties.fromMaybe
(false), accessorPropertiesOnly.fromMaybe(false), generatePreview.fromMaybe(fals
e), result, exceptionDetails); |
| 150 | 150 |
| 151 if (errorString->isEmpty() && !exceptionDetails->isJust() && !accessorProper
tiesOnly.fromMaybe(false)) | 151 if (errorString->isEmpty() && !exceptionDetails->isJust() && !accessorProper
tiesOnly.fromMaybe(false)) |
| 152 injectedScript->getInternalProperties(errorString, objectId, internalPro
perties, exceptionDetails); | 152 injectedScript->getInternalProperties(errorString, objectId, internalPro
perties, exceptionDetails); |
| 153 } | 153 } |
| 154 | 154 |
| 155 void V8RuntimeAgentImpl::releaseObject(ErrorString* errorString, const String& o
bjectId) | 155 void V8RuntimeAgentImpl::releaseObject(ErrorString* errorString, const String16&
objectId) |
| 156 { | 156 { |
| 157 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); | 157 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); |
| 158 if (!remoteId) { | 158 if (!remoteId) { |
| 159 *errorString = "Invalid object id"; | 159 *errorString = "Invalid object id"; |
| 160 return; | 160 return; |
| 161 } | 161 } |
| 162 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId.get()); | 162 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId.get()); |
| 163 if (!injectedScript) | 163 if (!injectedScript) |
| 164 return; | 164 return; |
| 165 bool pausingOnNextStatement = m_debugger->pausingOnNextStatement(); | 165 bool pausingOnNextStatement = m_debugger->pausingOnNextStatement(); |
| 166 if (pausingOnNextStatement) | 166 if (pausingOnNextStatement) |
| 167 m_debugger->setPauseOnNextStatement(false); | 167 m_debugger->setPauseOnNextStatement(false); |
| 168 injectedScript->releaseObject(objectId); | 168 injectedScript->releaseObject(objectId); |
| 169 if (pausingOnNextStatement) | 169 if (pausingOnNextStatement) |
| 170 m_debugger->setPauseOnNextStatement(true); | 170 m_debugger->setPauseOnNextStatement(true); |
| 171 } | 171 } |
| 172 | 172 |
| 173 void V8RuntimeAgentImpl::releaseObjectGroup(ErrorString*, const String& objectGr
oup) | 173 void V8RuntimeAgentImpl::releaseObjectGroup(ErrorString*, const String16& object
Group) |
| 174 { | 174 { |
| 175 bool pausingOnNextStatement = m_debugger->pausingOnNextStatement(); | 175 bool pausingOnNextStatement = m_debugger->pausingOnNextStatement(); |
| 176 if (pausingOnNextStatement) | 176 if (pausingOnNextStatement) |
| 177 m_debugger->setPauseOnNextStatement(false); | 177 m_debugger->setPauseOnNextStatement(false); |
| 178 m_injectedScriptManager->releaseObjectGroup(objectGroup); | 178 m_injectedScriptManager->releaseObjectGroup(objectGroup); |
| 179 if (pausingOnNextStatement) | 179 if (pausingOnNextStatement) |
| 180 m_debugger->setPauseOnNextStatement(true); | 180 m_debugger->setPauseOnNextStatement(true); |
| 181 } | 181 } |
| 182 | 182 |
| 183 void V8RuntimeAgentImpl::run(ErrorString* errorString) | 183 void V8RuntimeAgentImpl::run(ErrorString* errorString) |
| 184 { | 184 { |
| 185 *errorString = "Not paused"; | 185 *errorString = "Not paused"; |
| 186 } | 186 } |
| 187 | 187 |
| 188 void V8RuntimeAgentImpl::setCustomObjectFormatterEnabled(ErrorString*, bool enab
led) | 188 void V8RuntimeAgentImpl::setCustomObjectFormatterEnabled(ErrorString*, bool enab
led) |
| 189 { | 189 { |
| 190 m_state->setBoolean(V8RuntimeAgentImplState::customObjectFormatterEnabled, e
nabled); | 190 m_state->setBoolean(V8RuntimeAgentImplState::customObjectFormatterEnabled, e
nabled); |
| 191 m_injectedScriptManager->setCustomObjectFormatterEnabled(enabled); | 191 m_injectedScriptManager->setCustomObjectFormatterEnabled(enabled); |
| 192 } | 192 } |
| 193 | 193 |
| 194 void V8RuntimeAgentImpl::compileScript(ErrorString* errorString, | 194 void V8RuntimeAgentImpl::compileScript(ErrorString* errorString, |
| 195 const String& expression, | 195 const String16& expression, |
| 196 const String& sourceURL, | 196 const String16& sourceURL, |
| 197 bool persistScript, | 197 bool persistScript, |
| 198 int executionContextId, | 198 int executionContextId, |
| 199 Maybe<protocol::Runtime::ScriptId>* scriptId, | 199 Maybe<String16>* scriptId, |
| 200 Maybe<ExceptionDetails>* exceptionDetails) | 200 Maybe<ExceptionDetails>* exceptionDetails) |
| 201 { | 201 { |
| 202 if (!m_enabled) { | 202 if (!m_enabled) { |
| 203 *errorString = "Runtime agent is not enabled"; | 203 *errorString = "Runtime agent is not enabled"; |
| 204 return; | 204 return; |
| 205 } | 205 } |
| 206 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(executionContextId); | 206 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(executionContextId); |
| 207 if (!injectedScript) { | 207 if (!injectedScript) { |
| 208 *errorString = "Inspected frame has gone"; | 208 *errorString = "Inspected frame has gone"; |
| 209 return; | 209 return; |
| 210 } | 210 } |
| 211 | 211 |
| 212 v8::Isolate* isolate = injectedScript->isolate(); | 212 v8::Isolate* isolate = injectedScript->isolate(); |
| 213 v8::HandleScope handles(isolate); | 213 v8::HandleScope handles(isolate); |
| 214 v8::Context::Scope scope(injectedScript->context()); | 214 v8::Context::Scope scope(injectedScript->context()); |
| 215 v8::TryCatch tryCatch(isolate); | 215 v8::TryCatch tryCatch(isolate); |
| 216 v8::Local<v8::Script> script = m_debugger->compileInternalScript(injectedScr
ipt->context(), toV8String(isolate, expression), sourceURL); | 216 v8::Local<v8::Script> script = m_debugger->compileInternalScript(injectedScr
ipt->context(), toV8String(isolate, expression), sourceURL); |
| 217 if (script.IsEmpty()) { | 217 if (script.IsEmpty()) { |
| 218 v8::Local<v8::Message> message = tryCatch.Message(); | 218 v8::Local<v8::Message> message = tryCatch.Message(); |
| 219 if (!message.IsEmpty()) | 219 if (!message.IsEmpty()) |
| 220 *exceptionDetails = createExceptionDetails(isolate, message); | 220 *exceptionDetails = createExceptionDetails(isolate, message); |
| 221 else | 221 else |
| 222 *errorString = "Script compilation failed"; | 222 *errorString = "Script compilation failed"; |
| 223 return; | 223 return; |
| 224 } | 224 } |
| 225 | 225 |
| 226 if (!persistScript) | 226 if (!persistScript) |
| 227 return; | 227 return; |
| 228 | 228 |
| 229 String scriptValueId = String::number(script->GetUnboundScript()->GetId()); | 229 String16 scriptValueId = String16::number(script->GetUnboundScript()->GetId(
)); |
| 230 OwnPtr<v8::Global<v8::Script>> global = adoptPtr(new v8::Global<v8::Script>(
isolate, script)); | 230 OwnPtr<v8::Global<v8::Script>> global = adoptPtr(new v8::Global<v8::Script>(
isolate, script)); |
| 231 m_compiledScripts.set(scriptValueId, global.release()); | 231 m_compiledScripts.set(scriptValueId, global.release()); |
| 232 *scriptId = scriptValueId; | 232 *scriptId = scriptValueId; |
| 233 } | 233 } |
| 234 | 234 |
| 235 void V8RuntimeAgentImpl::runScript(ErrorString* errorString, | 235 void V8RuntimeAgentImpl::runScript(ErrorString* errorString, |
| 236 const protocol::Runtime::ScriptId& scriptId, | 236 const String16& scriptId, |
| 237 int executionContextId, | 237 int executionContextId, |
| 238 const Maybe<String>& objectGroup, | 238 const Maybe<String16>& objectGroup, |
| 239 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, | 239 const Maybe<bool>& doNotPauseOnExceptionsAndMuteConsole, |
| 240 const Maybe<bool>& includeCommandLineAPI, | 240 const Maybe<bool>& includeCommandLineAPI, |
| 241 OwnPtr<RemoteObject>* result, | 241 OwnPtr<RemoteObject>* result, |
| 242 Maybe<ExceptionDetails>* exceptionDetails) | 242 Maybe<ExceptionDetails>* exceptionDetails) |
| 243 { | 243 { |
| 244 if (!m_enabled) { | 244 if (!m_enabled) { |
| 245 *errorString = "Runtime agent is not enabled"; | 245 *errorString = "Runtime agent is not enabled"; |
| 246 return; | 246 return; |
| 247 } | 247 } |
| 248 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(executionContextId); | 248 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(executionContextId); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 { | 304 { |
| 305 ErrorString error; | 305 ErrorString error; |
| 306 disable(&error); | 306 disable(&error); |
| 307 ASSERT(m_frontend); | 307 ASSERT(m_frontend); |
| 308 m_frontend = nullptr; | 308 m_frontend = nullptr; |
| 309 } | 309 } |
| 310 | 310 |
| 311 void V8RuntimeAgentImpl::restore() | 311 void V8RuntimeAgentImpl::restore() |
| 312 { | 312 { |
| 313 m_frontend->executionContextsCleared(); | 313 m_frontend->executionContextsCleared(); |
| 314 String error; | 314 ErrorString error; |
| 315 enable(&error); | 315 enable(&error); |
| 316 if (m_state->booleanProperty(V8RuntimeAgentImplState::customObjectFormatterE
nabled, false)) | 316 if (m_state->booleanProperty(V8RuntimeAgentImplState::customObjectFormatterE
nabled, false)) |
| 317 m_injectedScriptManager->setCustomObjectFormatterEnabled(true); | 317 m_injectedScriptManager->setCustomObjectFormatterEnabled(true); |
| 318 } | 318 } |
| 319 | 319 |
| 320 void V8RuntimeAgentImpl::enable(ErrorString* errorString) | 320 void V8RuntimeAgentImpl::enable(ErrorString* errorString) |
| 321 { | 321 { |
| 322 m_enabled = true; | 322 m_enabled = true; |
| 323 m_client->reportExecutionContexts(); | 323 m_client->reportExecutionContexts(); |
| 324 } | 324 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 340 void V8RuntimeAgentImpl::setClearConsoleCallback(PassOwnPtr<V8RuntimeAgent::Clea
rConsoleCallback> callback) | 340 void V8RuntimeAgentImpl::setClearConsoleCallback(PassOwnPtr<V8RuntimeAgent::Clea
rConsoleCallback> callback) |
| 341 { | 341 { |
| 342 m_injectedScriptManager->injectedScriptHost()->setClearConsoleCallback(callb
ack); | 342 m_injectedScriptManager->injectedScriptHost()->setClearConsoleCallback(callb
ack); |
| 343 } | 343 } |
| 344 | 344 |
| 345 void V8RuntimeAgentImpl::setInspectObjectCallback(PassOwnPtr<V8RuntimeAgent::Ins
pectCallback> callback) | 345 void V8RuntimeAgentImpl::setInspectObjectCallback(PassOwnPtr<V8RuntimeAgent::Ins
pectCallback> callback) |
| 346 { | 346 { |
| 347 m_injectedScriptManager->injectedScriptHost()->setInspectObjectCallback(call
back); | 347 m_injectedScriptManager->injectedScriptHost()->setInspectObjectCallback(call
back); |
| 348 } | 348 } |
| 349 | 349 |
| 350 PassOwnPtr<RemoteObject> V8RuntimeAgentImpl::wrapObject(v8::Local<v8::Context> c
ontext, v8::Local<v8::Value> value, const String& groupName, bool generatePrevie
w) | 350 PassOwnPtr<RemoteObject> V8RuntimeAgentImpl::wrapObject(v8::Local<v8::Context> c
ontext, v8::Local<v8::Value> value, const String16& groupName, bool generatePrev
iew) |
| 351 { | 351 { |
| 352 InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(
context); | 352 InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(
context); |
| 353 if (!injectedScript) | 353 if (!injectedScript) |
| 354 return nullptr; | 354 return nullptr; |
| 355 return injectedScript->wrapObject(value, groupName, generatePreview); | 355 return injectedScript->wrapObject(value, groupName, generatePreview); |
| 356 } | 356 } |
| 357 | 357 |
| 358 PassOwnPtr<RemoteObject> V8RuntimeAgentImpl::wrapTable(v8::Local<v8::Context> co
ntext, v8::Local<v8::Value> table, v8::Local<v8::Value> columns) | 358 PassOwnPtr<RemoteObject> V8RuntimeAgentImpl::wrapTable(v8::Local<v8::Context> co
ntext, v8::Local<v8::Value> table, v8::Local<v8::Value> columns) |
| 359 { | 359 { |
| 360 InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(
context); | 360 InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(
context); |
| 361 if (!injectedScript) | 361 if (!injectedScript) |
| 362 return nullptr; | 362 return nullptr; |
| 363 return injectedScript->wrapTable(table, columns); | 363 return injectedScript->wrapTable(table, columns); |
| 364 } | 364 } |
| 365 | 365 |
| 366 void V8RuntimeAgentImpl::disposeObjectGroup(const String& groupName) | 366 void V8RuntimeAgentImpl::disposeObjectGroup(const String16& groupName) |
| 367 { | 367 { |
| 368 m_injectedScriptManager->releaseObjectGroup(groupName); | 368 m_injectedScriptManager->releaseObjectGroup(groupName); |
| 369 } | 369 } |
| 370 | 370 |
| 371 v8::Local<v8::Value> V8RuntimeAgentImpl::findObject(const String& objectId, v8::
Local<v8::Context>* context, String* groupName) | 371 v8::Local<v8::Value> V8RuntimeAgentImpl::findObject(const String16& objectId, v8
::Local<v8::Context>* context, String16* groupName) |
| 372 { | 372 { |
| 373 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); | 373 OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId); |
| 374 if (!remoteId) | 374 if (!remoteId) |
| 375 return v8::Local<v8::Value>(); | 375 return v8::Local<v8::Value>(); |
| 376 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId->contextId()); | 376 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId->contextId()); |
| 377 if (!injectedScript) | 377 if (!injectedScript) |
| 378 return v8::Local<v8::Value>(); | 378 return v8::Local<v8::Value>(); |
| 379 if (context) | 379 if (context) |
| 380 *context = injectedScript->context(); | 380 *context = injectedScript->context(); |
| 381 if (groupName) | 381 if (groupName) |
| 382 *groupName = injectedScript->objectGroupName(*remoteId); | 382 *groupName = injectedScript->objectGroupName(*remoteId); |
| 383 return injectedScript->findObject(*remoteId); | 383 return injectedScript->findObject(*remoteId); |
| 384 } | 384 } |
| 385 | 385 |
| 386 void V8RuntimeAgentImpl::addInspectedObject(PassOwnPtr<Inspectable> inspectable) | 386 void V8RuntimeAgentImpl::addInspectedObject(PassOwnPtr<Inspectable> inspectable) |
| 387 { | 387 { |
| 388 m_injectedScriptManager->injectedScriptHost()->addInspectedObject(inspectabl
e); | 388 m_injectedScriptManager->injectedScriptHost()->addInspectedObject(inspectabl
e); |
| 389 } | 389 } |
| 390 | 390 |
| 391 void V8RuntimeAgentImpl::clearInspectedObjects() | 391 void V8RuntimeAgentImpl::clearInspectedObjects() |
| 392 { | 392 { |
| 393 m_injectedScriptManager->injectedScriptHost()->clearInspectedObjects(); | 393 m_injectedScriptManager->injectedScriptHost()->clearInspectedObjects(); |
| 394 } | 394 } |
| 395 | 395 |
| 396 void V8RuntimeAgentImpl::reportExecutionContextCreated(v8::Local<v8::Context> co
ntext, const String& type, const String& origin, const String& humanReadableName
, const String& frameId) | 396 void V8RuntimeAgentImpl::reportExecutionContextCreated(v8::Local<v8::Context> co
ntext, const String16& type, const String16& origin, const String16& humanReadab
leName, const String16& frameId) |
| 397 { | 397 { |
| 398 if (!m_enabled) | 398 if (!m_enabled) |
| 399 return; | 399 return; |
| 400 InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(
context); | 400 InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(
context); |
| 401 if (!injectedScript) | 401 if (!injectedScript) |
| 402 return; | 402 return; |
| 403 int contextId = injectedScript->contextId(); | 403 int contextId = injectedScript->contextId(); |
| 404 injectedScript->setOrigin(origin); | 404 injectedScript->setOrigin(origin); |
| 405 OwnPtr<protocol::Runtime::ExecutionContextDescription> description = protoco
l::Runtime::ExecutionContextDescription::create() | 405 OwnPtr<protocol::Runtime::ExecutionContextDescription> description = protoco
l::Runtime::ExecutionContextDescription::create() |
| 406 .setId(contextId) | 406 .setId(contextId) |
| 407 .setName(humanReadableName) | 407 .setName(humanReadableName) |
| 408 .setOrigin(origin) | 408 .setOrigin(origin) |
| 409 .setFrameId(frameId).build(); | 409 .setFrameId(frameId).build(); |
| 410 if (!type.isEmpty()) | 410 if (!type.isEmpty()) |
| 411 description->setType(type); | 411 description->setType(type); |
| 412 m_frontend->executionContextCreated(description.release()); | 412 m_frontend->executionContextCreated(description.release()); |
| 413 } | 413 } |
| 414 | 414 |
| 415 void V8RuntimeAgentImpl::reportExecutionContextDestroyed(v8::Local<v8::Context>
context) | 415 void V8RuntimeAgentImpl::reportExecutionContextDestroyed(v8::Local<v8::Context>
context) |
| 416 { | 416 { |
| 417 int contextId = m_injectedScriptManager->discardInjectedScriptFor(context); | 417 int contextId = m_injectedScriptManager->discardInjectedScriptFor(context); |
| 418 if (!m_enabled) | 418 if (!m_enabled) |
| 419 return; | 419 return; |
| 420 m_frontend->executionContextDestroyed(contextId); | 420 m_frontend->executionContextDestroyed(contextId); |
| 421 } | 421 } |
| 422 | 422 |
| 423 PassOwnPtr<ExceptionDetails> V8RuntimeAgentImpl::createExceptionDetails(v8::Isol
ate* isolate, v8::Local<v8::Message> message) | 423 PassOwnPtr<ExceptionDetails> V8RuntimeAgentImpl::createExceptionDetails(v8::Isol
ate* isolate, v8::Local<v8::Message> message) |
| 424 { | 424 { |
| 425 OwnPtr<ExceptionDetails> exceptionDetails = ExceptionDetails::create().setTe
xt(toWTFStringWithTypeCheck(message->Get())).build(); | 425 OwnPtr<ExceptionDetails> exceptionDetails = ExceptionDetails::create().setTe
xt(toProtocolStringWithTypeCheck(message->Get())).build(); |
| 426 exceptionDetails->setLine(message->GetLineNumber()); | 426 exceptionDetails->setLine(message->GetLineNumber()); |
| 427 exceptionDetails->setColumn(message->GetStartColumn()); | 427 exceptionDetails->setColumn(message->GetStartColumn()); |
| 428 v8::Local<v8::StackTrace> messageStackTrace = message->GetStackTrace(); | 428 v8::Local<v8::StackTrace> messageStackTrace = message->GetStackTrace(); |
| 429 if (!messageStackTrace.IsEmpty() && messageStackTrace->GetFrameCount() > 0) | 429 if (!messageStackTrace.IsEmpty() && messageStackTrace->GetFrameCount() > 0) |
| 430 exceptionDetails->setStack(m_debugger->createStackTrace(messageStackTrac
e, messageStackTrace->GetFrameCount())->buildInspectorObject()); | 430 exceptionDetails->setStack(m_debugger->createStackTrace(messageStackTrac
e, messageStackTrace->GetFrameCount())->buildInspectorObject()); |
| 431 return exceptionDetails.release(); | 431 return exceptionDetails.release(); |
| 432 } | 432 } |
| 433 | 433 |
| 434 } // namespace blink | 434 } // namespace blink |
| OLD | NEW |