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

Side by Side Diff: Source/bindings/core/v8/ScriptDebugServer.cpp

Issue 1128273005: Devtools: Move runMessageLoopOnPause and other methods on ScriptDebugServer::Client (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove empty line Created 5 years, 7 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 | Annotate | Revision Log
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 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 m_breakProgramCallbackTemplate.Reset(m_isolate, templ); 266 m_breakProgramCallbackTemplate.Reset(m_isolate, templ);
267 } 267 }
268 268
269 v8::Local<v8::Function> breakProgramFunction = v8::Local<v8::FunctionTemplat e>::New(m_isolate, m_breakProgramCallbackTemplate)->GetFunction(); 269 v8::Local<v8::Function> breakProgramFunction = v8::Local<v8::FunctionTemplat e>::New(m_isolate, m_breakProgramCallbackTemplate)->GetFunction();
270 v8::Debug::Call(breakProgramFunction); 270 v8::Debug::Call(breakProgramFunction);
271 } 271 }
272 272
273 void ScriptDebugServer::continueProgram() 273 void ScriptDebugServer::continueProgram()
274 { 274 {
275 if (isPaused()) 275 if (isPaused())
276 quitMessageLoopOnPause(); 276 m_client->quitMessageLoopOnPause();
277 m_pausedScriptState.clear(); 277 m_pausedScriptState.clear();
278 m_executionState.Clear(); 278 m_executionState.Clear();
279 } 279 }
280 280
281 void ScriptDebugServer::stepIntoStatement() 281 void ScriptDebugServer::stepIntoStatement()
282 { 282 {
283 ASSERT(isPaused()); 283 ASSERT(isPaused());
284 ASSERT(!m_executionState.IsEmpty()); 284 ASSERT(!m_executionState.IsEmpty());
285 v8::HandleScope handleScope(m_isolate); 285 v8::HandleScope handleScope(m_isolate);
286 v8::Local<v8::Value> argv[] = { m_executionState }; 286 v8::Local<v8::Value> argv[] = { m_executionState };
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 v8::Local<v8::Array> hitBreakpoints; 516 v8::Local<v8::Array> hitBreakpoints;
517 thisPtr->handleProgramBreak(pausedScriptState, v8::Local<v8::Object>::Cast(i nfo[0]), exception, hitBreakpoints); 517 thisPtr->handleProgramBreak(pausedScriptState, v8::Local<v8::Object>::Cast(i nfo[0]), exception, hitBreakpoints);
518 } 518 }
519 519
520 void ScriptDebugServer::handleProgramBreak(ScriptState* pausedScriptState, v8::L ocal<v8::Object> executionState, v8::Local<v8::Value> exception, v8::Local<v8::A rray> hitBreakpointNumbers, bool isPromiseRejection) 520 void ScriptDebugServer::handleProgramBreak(ScriptState* pausedScriptState, v8::L ocal<v8::Object> executionState, v8::Local<v8::Value> exception, v8::Local<v8::A rray> hitBreakpointNumbers, bool isPromiseRejection)
521 { 521 {
522 // Don't allow nested breaks. 522 // Don't allow nested breaks.
523 if (m_runningNestedMessageLoop) 523 if (m_runningNestedMessageLoop)
524 return; 524 return;
525 525
526 ScriptDebugListener* listener = getDebugListenerForContext(pausedScriptState ->context()); 526 ScriptDebugListener* listener = m_client->getDebugListenerForContext(pausedS criptState->context());
527 if (!listener) 527 if (!listener)
528 return; 528 return;
529 529
530 Vector<String> breakpointIds; 530 Vector<String> breakpointIds;
531 if (!hitBreakpointNumbers.IsEmpty()) { 531 if (!hitBreakpointNumbers.IsEmpty()) {
532 breakpointIds.resize(hitBreakpointNumbers->Length()); 532 breakpointIds.resize(hitBreakpointNumbers->Length());
533 for (size_t i = 0; i < hitBreakpointNumbers->Length(); i++) { 533 for (size_t i = 0; i < hitBreakpointNumbers->Length(); i++) {
534 v8::Local<v8::Value> hitBreakpointNumber = hitBreakpointNumbers->Get (i); 534 v8::Local<v8::Value> hitBreakpointNumber = hitBreakpointNumbers->Get (i);
535 ASSERT(!hitBreakpointNumber.IsEmpty() && hitBreakpointNumber->IsInt3 2()); 535 ASSERT(!hitBreakpointNumber.IsEmpty() && hitBreakpointNumber->IsInt3 2());
536 breakpointIds[i] = String::number(hitBreakpointNumber->Int32Value()) ; 536 breakpointIds[i] = String::number(hitBreakpointNumber->Int32Value()) ;
537 } 537 }
538 } 538 }
539 539
540 m_pausedScriptState = pausedScriptState; 540 m_pausedScriptState = pausedScriptState;
541 m_executionState = executionState; 541 m_executionState = executionState;
542 ScriptDebugListener::SkipPauseRequest result = listener->didPause(pausedScri ptState, currentCallFrames(), ScriptValue(pausedScriptState, exception), breakpo intIds, isPromiseRejection); 542 ScriptDebugListener::SkipPauseRequest result = listener->didPause(pausedScri ptState, currentCallFrames(), ScriptValue(pausedScriptState, exception), breakpo intIds, isPromiseRejection);
543 if (result == ScriptDebugListener::NoSkip) { 543 if (result == ScriptDebugListener::NoSkip) {
544 m_runningNestedMessageLoop = true; 544 m_runningNestedMessageLoop = true;
545 runMessageLoopOnPause(pausedScriptState->context()); 545 m_client->runMessageLoopOnPause(pausedScriptState->context());
546 m_runningNestedMessageLoop = false; 546 m_runningNestedMessageLoop = false;
547 } 547 }
548 m_pausedScriptState.clear(); 548 m_pausedScriptState.clear();
549 m_executionState.Clear(); 549 m_executionState.Clear();
550 550
551 if (result == ScriptDebugListener::StepFrame) { 551 if (result == ScriptDebugListener::StepFrame) {
552 v8::Local<v8::Value> argv[] = { executionState }; 552 v8::Local<v8::Value> argv[] = { executionState };
553 callDebuggerMethod("stepFrameStatement", 1, argv); 553 callDebuggerMethod("stepFrameStatement", 1, argv);
554 } else if (result == ScriptDebugListener::StepInto) { 554 } else if (result == ScriptDebugListener::StepInto) {
555 v8::Local<v8::Value> argv[] = { executionState }; 555 v8::Local<v8::Value> argv[] = { executionState };
(...skipping 27 matching lines...) Expand all
583 { 583 {
584 if (!enabled()) 584 if (!enabled())
585 return; 585 return;
586 v8::DebugEvent event = eventDetails.GetEvent(); 586 v8::DebugEvent event = eventDetails.GetEvent();
587 if (event != v8::AsyncTaskEvent && event != v8::Break && event != v8::Except ion && event != v8::AfterCompile && event != v8::BeforeCompile && event != v8::C ompileError && event != v8::PromiseEvent) 587 if (event != v8::AsyncTaskEvent && event != v8::Break && event != v8::Except ion && event != v8::AfterCompile && event != v8::BeforeCompile && event != v8::C ompileError && event != v8::PromiseEvent)
588 return; 588 return;
589 589
590 v8::Local<v8::Context> eventContext = eventDetails.GetEventContext(); 590 v8::Local<v8::Context> eventContext = eventDetails.GetEventContext();
591 ASSERT(!eventContext.IsEmpty()); 591 ASSERT(!eventContext.IsEmpty());
592 592
593 ScriptDebugListener* listener = getDebugListenerForContext(eventContext); 593 ScriptDebugListener* listener = m_client->getDebugListenerForContext(eventCo ntext);
594 if (listener) { 594 if (listener) {
595 v8::HandleScope scope(m_isolate); 595 v8::HandleScope scope(m_isolate);
596 if (event == v8::AfterCompile || event == v8::CompileError) { 596 if (event == v8::AfterCompile || event == v8::CompileError) {
597 v8::Context::Scope contextScope(v8::Debug::GetDebugContext()); 597 v8::Context::Scope contextScope(v8::Debug::GetDebugContext());
598 v8::Local<v8::Value> argv[] = { eventDetails.GetEventData() }; 598 v8::Local<v8::Value> argv[] = { eventDetails.GetEventData() };
599 v8::Local<v8::Value> value = callDebuggerMethod("getAfterCompileScri pt", 1, argv).ToLocalChecked(); 599 v8::Local<v8::Value> value = callDebuggerMethod("getAfterCompileScri pt", 1, argv).ToLocalChecked();
600 ASSERT(value->IsObject()); 600 ASSERT(value->IsObject());
601 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(value); 601 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(value);
602 dispatchDidParseSource(listener, object, event != v8::AfterCompile ? CompileError : CompileSuccess); 602 dispatchDidParseSource(listener, object, event != v8::AfterCompile ? CompileError : CompileSuccess);
603 } else if (event == v8::Exception) { 603 } else if (event == v8::Exception) {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 return callDebuggerMethod("setFunctionVariableValue", 4, argv); 742 return callDebuggerMethod("setFunctionVariableValue", 4, argv);
743 } 743 }
744 744
745 745
746 bool ScriptDebugServer::isPaused() 746 bool ScriptDebugServer::isPaused()
747 { 747 {
748 return m_pausedScriptState; 748 return m_pausedScriptState;
749 } 749 }
750 750
751 } // namespace blink 751 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698