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

Side by Side Diff: third_party/WebKit/Source/platform/v8_inspector/V8DebuggerImpl.cpp

Issue 1767883002: DevTools: generate string16-based handlers for v8_inspector. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: for landing 2 Created 4 years, 9 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 /* 1 /*
2 * Copyright (c) 2010-2011 Google Inc. All rights reserved. 2 * Copyright (c) 2010-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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 m_debuggerContext.Reset(); 100 m_debuggerContext.Reset();
101 m_callFrameWrapperTemplate.Reset(); 101 m_callFrameWrapperTemplate.Reset();
102 v8::Debug::SetDebugEventListener(m_isolate, nullptr); 102 v8::Debug::SetDebugEventListener(m_isolate, nullptr);
103 } 103 }
104 104
105 bool V8DebuggerImpl::enabled() const 105 bool V8DebuggerImpl::enabled() const
106 { 106 {
107 return !m_debuggerScript.IsEmpty(); 107 return !m_debuggerScript.IsEmpty();
108 } 108 }
109 109
110 void V8Debugger::setContextDebugData(v8::Local<v8::Context> context, const Strin g& type, int contextGroupId) 110 void V8Debugger::setContextDebugData(v8::Local<v8::Context> context, const Strin g16& type, int contextGroupId)
111 { 111 {
112 int contextId = atomicIncrement(&s_lastContextId); 112 int contextId = atomicIncrement(&s_lastContextId);
113 String debugData = String::number(contextGroupId) + "," + String::number(con textId) + "," + type; 113 String16 debugData = String16::number(contextGroupId) + "," + String16::numb er(contextId) + "," + type;
114 v8::HandleScope scope(context->GetIsolate()); 114 v8::HandleScope scope(context->GetIsolate());
115 v8::Context::Scope contextScope(context); 115 v8::Context::Scope contextScope(context);
116 context->SetEmbedderData(static_cast<int>(v8::Context::kDebugIdIndex), toV8S tring(context->GetIsolate(), debugData)); 116 context->SetEmbedderData(static_cast<int>(v8::Context::kDebugIdIndex), toV8S tring(context->GetIsolate(), debugData));
117 } 117 }
118 118
119 int V8Debugger::contextId(v8::Local<v8::Context> context) 119 int V8Debugger::contextId(v8::Local<v8::Context> context)
120 { 120 {
121 v8::Local<v8::Value> data = context->GetEmbedderData(static_cast<int>(v8::Co ntext::kDebugIdIndex)); 121 v8::Local<v8::Value> data = context->GetEmbedderData(static_cast<int>(v8::Co ntext::kDebugIdIndex));
122 if (data.IsEmpty() || !data->IsString()) 122 if (data.IsEmpty() || !data->IsString())
123 return 0; 123 return 0;
124 String dataString = toWTFString(data.As<v8::String>()); 124 String16 dataString = toProtocolString(data.As<v8::String>());
125 if (dataString.isEmpty()) 125 if (dataString.isEmpty())
126 return 0; 126 return 0;
127 size_t commaPos = dataString.find(","); 127 size_t commaPos = dataString.find(",");
128 if (commaPos == kNotFound) 128 if (commaPos == kNotFound)
129 return 0; 129 return 0;
130 size_t commaPos2 = dataString.find(",", commaPos + 1); 130 size_t commaPos2 = dataString.find(",", commaPos + 1);
131 if (commaPos2 == kNotFound) 131 if (commaPos2 == kNotFound)
132 return 0; 132 return 0;
133 return dataString.substring(commaPos + 1, commaPos2 - commaPos - 1).toInt(); 133 return dataString.substring(commaPos + 1, commaPos2 - commaPos - 1).toInt();
134 } 134 }
135 135
136 static int getGroupId(v8::Local<v8::Context> context) 136 static int getGroupId(v8::Local<v8::Context> context)
137 { 137 {
138 v8::Local<v8::Value> data = context->GetEmbedderData(static_cast<int>(v8::Co ntext::kDebugIdIndex)); 138 v8::Local<v8::Value> data = context->GetEmbedderData(static_cast<int>(v8::Co ntext::kDebugIdIndex));
139 if (data.IsEmpty() || !data->IsString()) 139 if (data.IsEmpty() || !data->IsString())
140 return 0; 140 return 0;
141 String dataString = toWTFString(data.As<v8::String>()); 141 String16 dataString = toProtocolString(data.As<v8::String>());
142 if (dataString.isEmpty()) 142 if (dataString.isEmpty())
143 return 0; 143 return 0;
144 size_t commaPos = dataString.find(","); 144 size_t commaPos = dataString.find(",");
145 if (commaPos == kNotFound) 145 if (commaPos == kNotFound)
146 return 0; 146 return 0;
147 return dataString.left(commaPos).toInt(); 147 return dataString.left(commaPos).toInt();
148 } 148 }
149 149
150 void V8DebuggerImpl::addAgent(int contextGroupId, V8DebuggerAgentImpl* agent) 150 void V8DebuggerImpl::addAgent(int contextGroupId, V8DebuggerAgentImpl* agent)
151 { 151 {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 v8::Local<v8::Value> value; 196 v8::Local<v8::Value> value;
197 if (!m_client->callInternalFunction(getScriptsFunction, debuggerScript, WTF_ ARRAY_LENGTH(argv), argv).ToLocal(&value)) 197 if (!m_client->callInternalFunction(getScriptsFunction, debuggerScript, WTF_ ARRAY_LENGTH(argv), argv).ToLocal(&value))
198 return; 198 return;
199 ASSERT(value->IsArray()); 199 ASSERT(value->IsArray());
200 v8::Local<v8::Array> scriptsArray = v8::Local<v8::Array>::Cast(value); 200 v8::Local<v8::Array> scriptsArray = v8::Local<v8::Array>::Cast(value);
201 result.resize(scriptsArray->Length()); 201 result.resize(scriptsArray->Length());
202 for (unsigned i = 0; i < scriptsArray->Length(); ++i) 202 for (unsigned i = 0; i < scriptsArray->Length(); ++i)
203 result[i] = createParsedScript(v8::Local<v8::Object>::Cast(scriptsArray- >Get(v8::Integer::New(m_isolate, i))), true); 203 result[i] = createParsedScript(v8::Local<v8::Object>::Cast(scriptsArray- >Get(v8::Integer::New(m_isolate, i))), true);
204 } 204 }
205 205
206 String V8DebuggerImpl::setBreakpoint(const String& sourceID, const ScriptBreakpo int& scriptBreakpoint, int* actualLineNumber, int* actualColumnNumber, bool inte rstatementLocation) 206 String16 V8DebuggerImpl::setBreakpoint(const String16& sourceID, const ScriptBre akpoint& scriptBreakpoint, int* actualLineNumber, int* actualColumnNumber, bool interstatementLocation)
207 { 207 {
208 v8::HandleScope scope(m_isolate); 208 v8::HandleScope scope(m_isolate);
209 v8::Context::Scope contextScope(debuggerContext()); 209 v8::Context::Scope contextScope(debuggerContext());
210 210
211 v8::Local<v8::Object> info = v8::Object::New(m_isolate); 211 v8::Local<v8::Object> info = v8::Object::New(m_isolate);
212 info->Set(v8InternalizedString("sourceID"), toV8String(m_isolate, sourceID)) ; 212 info->Set(v8InternalizedString("sourceID"), toV8String(m_isolate, sourceID)) ;
213 info->Set(v8InternalizedString("lineNumber"), v8::Integer::New(m_isolate, sc riptBreakpoint.lineNumber)); 213 info->Set(v8InternalizedString("lineNumber"), v8::Integer::New(m_isolate, sc riptBreakpoint.lineNumber));
214 info->Set(v8InternalizedString("columnNumber"), v8::Integer::New(m_isolate, scriptBreakpoint.columnNumber)); 214 info->Set(v8InternalizedString("columnNumber"), v8::Integer::New(m_isolate, scriptBreakpoint.columnNumber));
215 info->Set(v8InternalizedString("interstatementLocation"), v8Boolean(intersta tementLocation, m_isolate)); 215 info->Set(v8InternalizedString("interstatementLocation"), v8Boolean(intersta tementLocation, m_isolate));
216 info->Set(v8InternalizedString("condition"), toV8String(m_isolate, scriptBre akpoint.condition)); 216 info->Set(v8InternalizedString("condition"), toV8String(m_isolate, scriptBre akpoint.condition));
217 217
218 v8::Local<v8::Function> setBreakpointFunction = v8::Local<v8::Function>::Cas t(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("setBreakpoint"))); 218 v8::Local<v8::Function> setBreakpointFunction = v8::Local<v8::Function>::Cas t(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("setBreakpoint")));
219 v8::Local<v8::Value> breakpointId = v8::Debug::Call(debuggerContext(), setBr eakpointFunction, info).ToLocalChecked(); 219 v8::Local<v8::Value> breakpointId = v8::Debug::Call(debuggerContext(), setBr eakpointFunction, info).ToLocalChecked();
220 if (!breakpointId->IsString()) 220 if (!breakpointId->IsString())
221 return ""; 221 return "";
222 *actualLineNumber = info->Get(v8InternalizedString("lineNumber"))->Int32Valu e(); 222 *actualLineNumber = info->Get(v8InternalizedString("lineNumber"))->Int32Valu e();
223 *actualColumnNumber = info->Get(v8InternalizedString("columnNumber"))->Int32 Value(); 223 *actualColumnNumber = info->Get(v8InternalizedString("columnNumber"))->Int32 Value();
224 return toWTFString(breakpointId.As<v8::String>()); 224 return toProtocolString(breakpointId.As<v8::String>());
225 } 225 }
226 226
227 void V8DebuggerImpl::removeBreakpoint(const String& breakpointId) 227 void V8DebuggerImpl::removeBreakpoint(const String16& breakpointId)
228 { 228 {
229 v8::HandleScope scope(m_isolate); 229 v8::HandleScope scope(m_isolate);
230 v8::Context::Scope contextScope(debuggerContext()); 230 v8::Context::Scope contextScope(debuggerContext());
231 231
232 v8::Local<v8::Object> info = v8::Object::New(m_isolate); 232 v8::Local<v8::Object> info = v8::Object::New(m_isolate);
233 info->Set(v8InternalizedString("breakpointId"), toV8String(m_isolate, breakp ointId)); 233 info->Set(v8InternalizedString("breakpointId"), toV8String(m_isolate, breakp ointId));
234 234
235 v8::Local<v8::Function> removeBreakpointFunction = v8::Local<v8::Function>:: Cast(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("removeBreakpoint "))); 235 v8::Local<v8::Function> removeBreakpointFunction = v8::Local<v8::Function>:: Cast(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("removeBreakpoint ")));
236 v8::Debug::Call(debuggerContext(), removeBreakpointFunction, info).ToLocalCh ecked(); 236 v8::Debug::Call(debuggerContext(), removeBreakpointFunction, info).ToLocalCh ecked();
237 } 237 }
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 void V8DebuggerImpl::clearStepping() 369 void V8DebuggerImpl::clearStepping()
370 { 370 {
371 ASSERT(enabled()); 371 ASSERT(enabled());
372 v8::HandleScope scope(m_isolate); 372 v8::HandleScope scope(m_isolate);
373 v8::Context::Scope contextScope(debuggerContext()); 373 v8::Context::Scope contextScope(debuggerContext());
374 374
375 v8::Local<v8::Value> argv[] = { v8::Undefined(m_isolate) }; 375 v8::Local<v8::Value> argv[] = { v8::Undefined(m_isolate) };
376 callDebuggerMethod("clearStepping", 0, argv); 376 callDebuggerMethod("clearStepping", 0, argv);
377 } 377 }
378 378
379 bool V8DebuggerImpl::setScriptSource(const String& sourceID, const String& newCo ntent, bool preview, String* error, Maybe<protocol::Debugger::SetScriptSourceErr or>* errorData, v8::Global<v8::Object>* newCallFrames, Maybe<bool>* stackChanged ) 379 bool V8DebuggerImpl::setScriptSource(const String16& sourceID, const String16& n ewContent, bool preview, ErrorString* error, Maybe<protocol::Debugger::SetScript SourceError>* errorData, v8::Global<v8::Object>* newCallFrames, Maybe<bool>* sta ckChanged)
380 { 380 {
381 class EnableLiveEditScope { 381 class EnableLiveEditScope {
382 public: 382 public:
383 explicit EnableLiveEditScope(v8::Isolate* isolate) : m_isolate(isolate) 383 explicit EnableLiveEditScope(v8::Isolate* isolate) : m_isolate(isolate)
384 { 384 {
385 v8::Debug::SetLiveEditEnabled(m_isolate, true); 385 v8::Debug::SetLiveEditEnabled(m_isolate, true);
386 inLiveEditScope = true; 386 inLiveEditScope = true;
387 } 387 }
388 ~EnableLiveEditScope() 388 ~EnableLiveEditScope()
389 { 389 {
(...skipping 15 matching lines...) Expand all
405 405
406 v8::Local<v8::Value> v8result; 406 v8::Local<v8::Value> v8result;
407 { 407 {
408 EnableLiveEditScope enableLiveEditScope(m_isolate); 408 EnableLiveEditScope enableLiveEditScope(m_isolate);
409 v8::TryCatch tryCatch(m_isolate); 409 v8::TryCatch tryCatch(m_isolate);
410 tryCatch.SetVerbose(false); 410 tryCatch.SetVerbose(false);
411 v8::MaybeLocal<v8::Value> maybeResult = callDebuggerMethod("liveEditScri ptSource", 3, argv); 411 v8::MaybeLocal<v8::Value> maybeResult = callDebuggerMethod("liveEditScri ptSource", 3, argv);
412 if (tryCatch.HasCaught()) { 412 if (tryCatch.HasCaught()) {
413 v8::Local<v8::Message> message = tryCatch.Message(); 413 v8::Local<v8::Message> message = tryCatch.Message();
414 if (!message.IsEmpty()) 414 if (!message.IsEmpty())
415 *error = toWTFStringWithTypeCheck(message->Get()); 415 *error = toProtocolStringWithTypeCheck(message->Get());
416 else 416 else
417 *error = "Unknown error."; 417 *error = "Unknown error.";
418 return false; 418 return false;
419 } 419 }
420 v8result = maybeResult.ToLocalChecked(); 420 v8result = maybeResult.ToLocalChecked();
421 } 421 }
422 ASSERT(!v8result.IsEmpty()); 422 ASSERT(!v8result.IsEmpty());
423 v8::Local<v8::Object> resultTuple = v8result->ToObject(m_isolate); 423 v8::Local<v8::Object> resultTuple = v8result->ToObject(m_isolate);
424 int code = static_cast<int>(resultTuple->Get(0)->ToInteger(m_isolate)->Value ()); 424 int code = static_cast<int>(resultTuple->Get(0)->ToInteger(m_isolate)->Value ());
425 switch (code) { 425 switch (code) {
426 case 0: 426 case 0:
427 { 427 {
428 *stackChanged = resultTuple->Get(1)->BooleanValue(); 428 *stackChanged = resultTuple->Get(1)->BooleanValue();
429 // Call stack may have changed after if the edited function was on t he stack. 429 // Call stack may have changed after if the edited function was on t he stack.
430 if (!preview && isPaused()) 430 if (!preview && isPaused())
431 newCallFrames->Reset(m_isolate, currentCallFrames()); 431 newCallFrames->Reset(m_isolate, currentCallFrames());
432 return true; 432 return true;
433 } 433 }
434 // Compile error. 434 // Compile error.
435 case 1: 435 case 1:
436 { 436 {
437 *errorData = protocol::Debugger::SetScriptSourceError::create() 437 *errorData = protocol::Debugger::SetScriptSourceError::create()
438 .setMessage(toWTFStringWithTypeCheck(resultTuple->Get(2))) 438 .setMessage(toProtocolStringWithTypeCheck(resultTuple->Get(2)))
439 .setLineNumber(resultTuple->Get(3)->ToInteger(m_isolate)->Va lue()) 439 .setLineNumber(resultTuple->Get(3)->ToInteger(m_isolate)->Value( ))
440 .setColumnNumber(resultTuple->Get(4)->ToInteger(m_isolate)-> Value()).build(); 440 .setColumnNumber(resultTuple->Get(4)->ToInteger(m_isolate)->Valu e()).build();
441 return false; 441 return false;
442 } 442 }
443 } 443 }
444 *error = "Unknown error."; 444 *error = "Unknown error.";
445 return false; 445 return false;
446 } 446 }
447 447
448 int V8DebuggerImpl::frameCount() 448 int V8DebuggerImpl::frameCount()
449 { 449 {
450 ASSERT(isPaused()); 450 ASSERT(isPaused());
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 void V8DebuggerImpl::handleProgramBreak(v8::Local<v8::Context> pausedContext, v8 ::Local<v8::Object> executionState, v8::Local<v8::Value> exception, v8::Local<v8 ::Array> hitBreakpointNumbers, bool isPromiseRejection) 532 void V8DebuggerImpl::handleProgramBreak(v8::Local<v8::Context> pausedContext, v8 ::Local<v8::Object> executionState, v8::Local<v8::Value> exception, v8::Local<v8 ::Array> hitBreakpointNumbers, bool isPromiseRejection)
533 { 533 {
534 // Don't allow nested breaks. 534 // Don't allow nested breaks.
535 if (m_runningNestedMessageLoop) 535 if (m_runningNestedMessageLoop)
536 return; 536 return;
537 537
538 V8DebuggerAgentImpl* agent = getAgentForContext(pausedContext); 538 V8DebuggerAgentImpl* agent = getAgentForContext(pausedContext);
539 if (!agent) 539 if (!agent)
540 return; 540 return;
541 541
542 protocol::Vector<String> breakpointIds; 542 protocol::Vector<String16> breakpointIds;
543 if (!hitBreakpointNumbers.IsEmpty()) { 543 if (!hitBreakpointNumbers.IsEmpty()) {
544 breakpointIds.resize(hitBreakpointNumbers->Length()); 544 breakpointIds.resize(hitBreakpointNumbers->Length());
545 for (size_t i = 0; i < hitBreakpointNumbers->Length(); i++) { 545 for (size_t i = 0; i < hitBreakpointNumbers->Length(); i++) {
546 v8::Local<v8::Value> hitBreakpointNumber = hitBreakpointNumbers->Get (i); 546 v8::Local<v8::Value> hitBreakpointNumber = hitBreakpointNumbers->Get (i);
547 ASSERT(!hitBreakpointNumber.IsEmpty() && hitBreakpointNumber->IsInt3 2()); 547 ASSERT(!hitBreakpointNumber.IsEmpty() && hitBreakpointNumber->IsInt3 2());
548 breakpointIds[i] = String::number(hitBreakpointNumber->Int32Value()) ; 548 breakpointIds[i] = String16::number(hitBreakpointNumber->Int32Value( ));
549 } 549 }
550 } 550 }
551 551
552 m_pausedContext = pausedContext; 552 m_pausedContext = pausedContext;
553 m_executionState = executionState; 553 m_executionState = executionState;
554 V8DebuggerAgentImpl::SkipPauseRequest result = agent->didPause(pausedContext , currentCallFrames(), exception, breakpointIds, isPromiseRejection); 554 V8DebuggerAgentImpl::SkipPauseRequest result = agent->didPause(pausedContext , currentCallFrames(), exception, breakpointIds, isPromiseRejection);
555 if (result == V8DebuggerAgentImpl::RequestNoSkip) { 555 if (result == V8DebuggerAgentImpl::RequestNoSkip) {
556 m_runningNestedMessageLoop = true; 556 m_runningNestedMessageLoop = true;
557 int groupId = getGroupId(pausedContext); 557 int groupId = getGroupId(pausedContext);
558 ASSERT(groupId); 558 ASSERT(groupId);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 handleV8AsyncTaskEvent(agent, eventContext, eventDetails.GetExec utionState(), eventDetails.GetEventData()); 628 handleV8AsyncTaskEvent(agent, eventContext, eventDetails.GetExec utionState(), eventDetails.GetEventData());
629 } else if (event == v8::PromiseEvent) { 629 } else if (event == v8::PromiseEvent) {
630 if (agent->v8PromiseEventsEnabled()) 630 if (agent->v8PromiseEventsEnabled())
631 handleV8PromiseEvent(agent, eventContext, eventDetails.GetExecut ionState(), eventDetails.GetEventData()); 631 handleV8PromiseEvent(agent, eventContext, eventDetails.GetExecut ionState(), eventDetails.GetEventData());
632 } 632 }
633 } 633 }
634 } 634 }
635 635
636 void V8DebuggerImpl::handleV8AsyncTaskEvent(V8DebuggerAgentImpl* agent, v8::Loca l<v8::Context> context, v8::Local<v8::Object> executionState, v8::Local<v8::Obje ct> eventData) 636 void V8DebuggerImpl::handleV8AsyncTaskEvent(V8DebuggerAgentImpl* agent, v8::Loca l<v8::Context> context, v8::Local<v8::Object> executionState, v8::Local<v8::Obje ct> eventData)
637 { 637 {
638 String type = toWTFStringWithTypeCheck(callInternalGetterFunction(eventData, "type")); 638 String16 type = toProtocolStringWithTypeCheck(callInternalGetterFunction(eve ntData, "type"));
639 String name = toWTFStringWithTypeCheck(callInternalGetterFunction(eventData, "name")); 639 String16 name = toProtocolStringWithTypeCheck(callInternalGetterFunction(eve ntData, "name"));
640 int id = callInternalGetterFunction(eventData, "id")->ToInteger(m_isolate)-> Value(); 640 int id = callInternalGetterFunction(eventData, "id")->ToInteger(m_isolate)-> Value();
641 641
642 m_pausedContext = context; 642 m_pausedContext = context;
643 m_executionState = executionState; 643 m_executionState = executionState;
644 agent->didReceiveV8AsyncTaskEvent(context, type, name, id); 644 agent->didReceiveV8AsyncTaskEvent(context, type, name, id);
645 m_pausedContext.Clear(); 645 m_pausedContext.Clear();
646 m_executionState.Clear(); 646 m_executionState.Clear();
647 } 647 }
648 648
649 void V8DebuggerImpl::handleV8PromiseEvent(V8DebuggerAgentImpl* agent, v8::Local< v8::Context> context, v8::Local<v8::Object> executionState, v8::Local<v8::Object > eventData) 649 void V8DebuggerImpl::handleV8PromiseEvent(V8DebuggerAgentImpl* agent, v8::Local< v8::Context> context, v8::Local<v8::Object> executionState, v8::Local<v8::Object > eventData)
(...skipping 12 matching lines...) Expand all
662 m_pausedContext.Clear(); 662 m_pausedContext.Clear();
663 m_executionState.Clear(); 663 m_executionState.Clear();
664 } 664 }
665 665
666 V8DebuggerParsedScript V8DebuggerImpl::createParsedScript(v8::Local<v8::Object> object, bool success) 666 V8DebuggerParsedScript V8DebuggerImpl::createParsedScript(v8::Local<v8::Object> object, bool success)
667 { 667 {
668 v8::Local<v8::Value> id = object->Get(v8InternalizedString("id")); 668 v8::Local<v8::Value> id = object->Get(v8InternalizedString("id"));
669 ASSERT(!id.IsEmpty() && id->IsInt32()); 669 ASSERT(!id.IsEmpty() && id->IsInt32());
670 670
671 V8DebuggerParsedScript parsedScript; 671 V8DebuggerParsedScript parsedScript;
672 parsedScript.scriptId = String::number(id->Int32Value()); 672 parsedScript.scriptId = String16::number(id->Int32Value());
673 parsedScript.script.setURL(toWTFStringWithTypeCheck(object->Get(v8Internaliz edString("name")))) 673 parsedScript.script.setURL(toProtocolStringWithTypeCheck(object->Get(v8Inter nalizedString("name"))))
674 .setSourceURL(toWTFStringWithTypeCheck(object->Get(v8InternalizedString( "sourceURL")))) 674 .setSourceURL(toProtocolStringWithTypeCheck(object->Get(v8InternalizedSt ring("sourceURL"))))
675 .setSourceMappingURL(toWTFStringWithTypeCheck(object->Get(v8Internalized String("sourceMappingURL")))) 675 .setSourceMappingURL(toProtocolStringWithTypeCheck(object->Get(v8Interna lizedString("sourceMappingURL"))))
676 .setSource(toWTFStringWithTypeCheck(object->Get(v8InternalizedString("so urce")))) 676 .setSource(toProtocolStringWithTypeCheck(object->Get(v8InternalizedStrin g("source"))))
677 .setStartLine(object->Get(v8InternalizedString("startLine"))->ToInteger( m_isolate)->Value()) 677 .setStartLine(object->Get(v8InternalizedString("startLine"))->ToInteger( m_isolate)->Value())
678 .setStartColumn(object->Get(v8InternalizedString("startColumn"))->ToInte ger(m_isolate)->Value()) 678 .setStartColumn(object->Get(v8InternalizedString("startColumn"))->ToInte ger(m_isolate)->Value())
679 .setEndLine(object->Get(v8InternalizedString("endLine"))->ToInteger(m_is olate)->Value()) 679 .setEndLine(object->Get(v8InternalizedString("endLine"))->ToInteger(m_is olate)->Value())
680 .setEndColumn(object->Get(v8InternalizedString("endColumn"))->ToInteger( m_isolate)->Value()) 680 .setEndColumn(object->Get(v8InternalizedString("endColumn"))->ToInteger( m_isolate)->Value())
681 .setIsContentScript(object->Get(v8InternalizedString("isContentScript")) ->ToBoolean(m_isolate)->Value()) 681 .setIsContentScript(object->Get(v8InternalizedString("isContentScript")) ->ToBoolean(m_isolate)->Value())
682 .setIsInternalScript(object->Get(v8InternalizedString("isInternalScript" ))->ToBoolean(m_isolate)->Value()) 682 .setIsInternalScript(object->Get(v8InternalizedString("isInternalScript" ))->ToBoolean(m_isolate)->Value())
683 .setExecutionContextId(object->Get(v8InternalizedString("executionContex tId"))->ToInteger(m_isolate)->Value()) 683 .setExecutionContextId(object->Get(v8InternalizedString("executionContex tId"))->ToInteger(m_isolate)->Value())
684 .setIsLiveEdit(inLiveEditScope); 684 .setIsLiveEdit(inLiveEditScope);
685 parsedScript.success = success; 685 parsedScript.success = success;
686 return parsedScript; 686 return parsedScript;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 v8::Local<v8::Value> V8DebuggerImpl::collectionEntries(v8::Local<v8::Object>& ob ject) 738 v8::Local<v8::Value> V8DebuggerImpl::collectionEntries(v8::Local<v8::Object>& ob ject)
739 { 739 {
740 if (!enabled()) { 740 if (!enabled()) {
741 ASSERT_NOT_REACHED(); 741 ASSERT_NOT_REACHED();
742 return v8::Local<v8::Value>::New(m_isolate, v8::Undefined(m_isolate)); 742 return v8::Local<v8::Value>::New(m_isolate, v8::Undefined(m_isolate));
743 } 743 }
744 v8::Local<v8::Value> argv[] = { object }; 744 v8::Local<v8::Value> argv[] = { object };
745 return callDebuggerMethod("getCollectionEntries", 1, argv).ToLocalChecked(); 745 return callDebuggerMethod("getCollectionEntries", 1, argv).ToLocalChecked();
746 } 746 }
747 747
748 v8::MaybeLocal<v8::Value> V8DebuggerImpl::setFunctionVariableValue(v8::Local<v8: :Value> functionValue, int scopeNumber, const String& variableName, v8::Local<v8 ::Value> newValue) 748 v8::MaybeLocal<v8::Value> V8DebuggerImpl::setFunctionVariableValue(v8::Local<v8: :Value> functionValue, int scopeNumber, const String16& variableName, v8::Local< v8::Value> newValue)
749 { 749 {
750 if (m_debuggerScript.IsEmpty()) { 750 if (m_debuggerScript.IsEmpty()) {
751 ASSERT_NOT_REACHED(); 751 ASSERT_NOT_REACHED();
752 return m_isolate->ThrowException(v8::String::NewFromUtf8(m_isolate, "Deb ugging is not enabled.", v8::NewStringType::kNormal).ToLocalChecked()); 752 return m_isolate->ThrowException(v8::String::NewFromUtf8(m_isolate, "Deb ugging is not enabled.", v8::NewStringType::kNormal).ToLocalChecked());
753 } 753 }
754 754
755 v8::Local<v8::Value> argv[] = { 755 v8::Local<v8::Value> argv[] = {
756 functionValue, 756 functionValue,
757 v8::Local<v8::Value>(v8::Integer::New(m_isolate, scopeNumber)), 757 v8::Local<v8::Value>(v8::Integer::New(m_isolate, scopeNumber)),
758 toV8String(m_isolate, variableName), 758 toV8String(m_isolate, variableName),
759 newValue 759 newValue
760 }; 760 };
761 return callDebuggerMethod("setFunctionVariableValue", 4, argv); 761 return callDebuggerMethod("setFunctionVariableValue", 4, argv);
762 } 762 }
763 763
764 764
765 bool V8DebuggerImpl::isPaused() 765 bool V8DebuggerImpl::isPaused()
766 { 766 {
767 return !m_pausedContext.IsEmpty(); 767 return !m_pausedContext.IsEmpty();
768 } 768 }
769 769
770 v8::Local<v8::Script> V8DebuggerImpl::compileInternalScript(v8::Local<v8::Contex t>, v8::Local<v8::String> code, const String& fileName) 770 v8::Local<v8::Script> V8DebuggerImpl::compileInternalScript(v8::Local<v8::Contex t>, v8::Local<v8::String> code, const String16& fileName)
771 { 771 {
772 // NOTE: For compatibility with WebCore, ScriptSourceCode's line starts at 772 // NOTE: For compatibility with WebCore, ScriptSourceCode's line starts at
773 // 1, whereas v8 starts at 0. 773 // 1, whereas v8 starts at 0.
774 v8::ScriptOrigin origin( 774 v8::ScriptOrigin origin(
775 toV8String(m_isolate, fileName), 775 toV8String(m_isolate, fileName),
776 v8::Integer::New(m_isolate, 0), 776 v8::Integer::New(m_isolate, 0),
777 v8::Integer::New(m_isolate, 0), 777 v8::Integer::New(m_isolate, 0),
778 v8::False(m_isolate), // sharable 778 v8::False(m_isolate), // sharable
779 v8::Local<v8::Integer>(), 779 v8::Local<v8::Integer>(),
780 v8::True(m_isolate), // internal 780 v8::True(m_isolate), // internal
781 toV8String(m_isolate, String()), // sourceMap 781 toV8String(m_isolate, String16()), // sourceMap
782 v8::True(m_isolate)); // opaqueresource 782 v8::True(m_isolate)); // opaqueresource
783 v8::ScriptCompiler::Source source(code, origin); 783 v8::ScriptCompiler::Source source(code, origin);
784 v8::Local<v8::Script> script; 784 v8::Local<v8::Script> script;
785 if (!v8::ScriptCompiler::Compile(m_isolate->GetCurrentContext(), &source, v8 ::ScriptCompiler::kNoCompileOptions).ToLocal(&script)) 785 if (!v8::ScriptCompiler::Compile(m_isolate->GetCurrentContext(), &source, v8 ::ScriptCompiler::kNoCompileOptions).ToLocal(&script))
786 return v8::Local<v8::Script>(); 786 return v8::Local<v8::Script>();
787 return script; 787 return script;
788 } 788 }
789 789
790 PassOwnPtr<V8StackTrace> V8DebuggerImpl::createStackTrace(v8::Local<v8::StackTra ce> stackTrace, size_t maxStackSize) 790 PassOwnPtr<V8StackTrace> V8DebuggerImpl::createStackTrace(v8::Local<v8::StackTra ce> stackTrace, size_t maxStackSize)
791 { 791 {
792 V8DebuggerAgentImpl* agent = getAgentForContext(m_isolate->GetCurrentContext ()); 792 V8DebuggerAgentImpl* agent = getAgentForContext(m_isolate->GetCurrentContext ());
793 return V8StackTraceImpl::create(agent, stackTrace, maxStackSize); 793 return V8StackTraceImpl::create(agent, stackTrace, maxStackSize);
794 } 794 }
795 795
796 PassOwnPtr<V8StackTrace> V8DebuggerImpl::captureStackTrace(size_t maxStackSize) 796 PassOwnPtr<V8StackTrace> V8DebuggerImpl::captureStackTrace(size_t maxStackSize)
797 { 797 {
798 V8DebuggerAgentImpl* agent = getAgentForContext(m_isolate->GetCurrentContext ()); 798 V8DebuggerAgentImpl* agent = getAgentForContext(m_isolate->GetCurrentContext ());
799 return V8StackTraceImpl::capture(agent, maxStackSize); 799 return V8StackTraceImpl::capture(agent, maxStackSize);
800 } 800 }
801 801
802 v8::Local<v8::Context> V8DebuggerImpl::regexContext() 802 v8::Local<v8::Context> V8DebuggerImpl::regexContext()
803 { 803 {
804 if (m_regexContext.IsEmpty()) 804 if (m_regexContext.IsEmpty())
805 m_regexContext.Reset(m_isolate, v8::Context::New(m_isolate)); 805 m_regexContext.Reset(m_isolate, v8::Context::New(m_isolate));
806 return m_regexContext.Get(m_isolate); 806 return m_regexContext.Get(m_isolate);
807 } 807 }
808 808
809 } // namespace blink 809 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698