OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 v8::Local<v8::Object> InjectedScript::commandLineAPI() { | 408 v8::Local<v8::Object> InjectedScript::commandLineAPI() { |
409 if (m_commandLineAPI.IsEmpty()) { | 409 if (m_commandLineAPI.IsEmpty()) { |
410 m_commandLineAPI.Reset( | 410 m_commandLineAPI.Reset( |
411 m_context->isolate(), | 411 m_context->isolate(), |
412 m_context->inspector()->console()->createCommandLineAPI( | 412 m_context->inspector()->console()->createCommandLineAPI( |
413 m_context->context())); | 413 m_context->context())); |
414 } | 414 } |
415 return m_commandLineAPI.Get(m_context->isolate()); | 415 return m_commandLineAPI.Get(m_context->isolate()); |
416 } | 416 } |
417 | 417 |
418 InjectedScript::Scope::Scope(V8InspectorImpl* inspector, int contextGroupId) | 418 InjectedScript::Scope::Scope(V8InspectorSessionImpl* session) |
419 : m_inspector(inspector), | 419 : m_inspector(session->inspector()), |
420 m_contextGroupId(contextGroupId), | |
421 m_injectedScript(nullptr), | 420 m_injectedScript(nullptr), |
422 m_handleScope(inspector->isolate()), | 421 m_handleScope(m_inspector->isolate()), |
423 m_tryCatch(inspector->isolate()), | 422 m_tryCatch(m_inspector->isolate()), |
424 m_ignoreExceptionsAndMuteConsole(false), | 423 m_ignoreExceptionsAndMuteConsole(false), |
425 m_previousPauseOnExceptionsState(v8::debug::NoBreakOnException), | 424 m_previousPauseOnExceptionsState(v8::debug::NoBreakOnException), |
426 m_userGesture(false) {} | 425 m_userGesture(false), |
| 426 m_contextGroupId(session->contextGroupId()), |
| 427 m_sessionId(session->sessionId()) {} |
427 | 428 |
428 Response InjectedScript::Scope::initialize() { | 429 Response InjectedScript::Scope::initialize() { |
429 cleanup(); | 430 cleanup(); |
430 // TODO(dgozman): what if we reattach to the same context group during | 431 V8InspectorSessionImpl* session = m_inspector->sessionById(m_sessionId); |
431 // evaluate? Introduce a session id? | |
432 V8InspectorSessionImpl* session = | |
433 m_inspector->sessionForContextGroup(m_contextGroupId); | |
434 if (!session) return Response::InternalError(); | 432 if (!session) return Response::InternalError(); |
435 Response response = findInjectedScript(session); | 433 Response response = findInjectedScript(session); |
436 if (!response.isSuccess()) return response; | 434 if (!response.isSuccess()) return response; |
437 m_context = m_injectedScript->context()->context(); | 435 m_context = m_injectedScript->context()->context(); |
438 m_context->Enter(); | 436 m_context->Enter(); |
439 return Response::OK(); | 437 return Response::OK(); |
440 } | 438 } |
441 | 439 |
442 void InjectedScript::Scope::installCommandLineAPI() { | 440 void InjectedScript::Scope::installCommandLineAPI() { |
443 DCHECK(m_injectedScript && !m_context.IsEmpty() && | 441 DCHECK(m_injectedScript && !m_context.IsEmpty() && |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 InjectedScript::Scope::~Scope() { | 480 InjectedScript::Scope::~Scope() { |
483 if (m_ignoreExceptionsAndMuteConsole) { | 481 if (m_ignoreExceptionsAndMuteConsole) { |
484 setPauseOnExceptionsState(m_previousPauseOnExceptionsState); | 482 setPauseOnExceptionsState(m_previousPauseOnExceptionsState); |
485 m_inspector->client()->unmuteMetrics(m_contextGroupId); | 483 m_inspector->client()->unmuteMetrics(m_contextGroupId); |
486 m_inspector->unmuteExceptions(m_contextGroupId); | 484 m_inspector->unmuteExceptions(m_contextGroupId); |
487 } | 485 } |
488 if (m_userGesture) m_inspector->client()->endUserGesture(); | 486 if (m_userGesture) m_inspector->client()->endUserGesture(); |
489 cleanup(); | 487 cleanup(); |
490 } | 488 } |
491 | 489 |
492 InjectedScript::ContextScope::ContextScope(V8InspectorImpl* inspector, | 490 InjectedScript::ContextScope::ContextScope(V8InspectorSessionImpl* session, |
493 int contextGroupId, | |
494 int executionContextId) | 491 int executionContextId) |
495 : InjectedScript::Scope(inspector, contextGroupId), | 492 : InjectedScript::Scope(session), |
496 m_executionContextId(executionContextId) {} | 493 m_executionContextId(executionContextId) {} |
497 | 494 |
498 InjectedScript::ContextScope::~ContextScope() {} | 495 InjectedScript::ContextScope::~ContextScope() {} |
499 | 496 |
500 Response InjectedScript::ContextScope::findInjectedScript( | 497 Response InjectedScript::ContextScope::findInjectedScript( |
501 V8InspectorSessionImpl* session) { | 498 V8InspectorSessionImpl* session) { |
502 return session->findInjectedScript(m_executionContextId, m_injectedScript); | 499 return session->findInjectedScript(m_executionContextId, m_injectedScript); |
503 } | 500 } |
504 | 501 |
505 InjectedScript::ObjectScope::ObjectScope(V8InspectorImpl* inspector, | 502 InjectedScript::ObjectScope::ObjectScope(V8InspectorSessionImpl* session, |
506 int contextGroupId, | |
507 const String16& remoteObjectId) | 503 const String16& remoteObjectId) |
508 : InjectedScript::Scope(inspector, contextGroupId), | 504 : InjectedScript::Scope(session), m_remoteObjectId(remoteObjectId) {} |
509 m_remoteObjectId(remoteObjectId) {} | |
510 | 505 |
511 InjectedScript::ObjectScope::~ObjectScope() {} | 506 InjectedScript::ObjectScope::~ObjectScope() {} |
512 | 507 |
513 Response InjectedScript::ObjectScope::findInjectedScript( | 508 Response InjectedScript::ObjectScope::findInjectedScript( |
514 V8InspectorSessionImpl* session) { | 509 V8InspectorSessionImpl* session) { |
515 std::unique_ptr<RemoteObjectId> remoteId; | 510 std::unique_ptr<RemoteObjectId> remoteId; |
516 Response response = RemoteObjectId::parse(m_remoteObjectId, &remoteId); | 511 Response response = RemoteObjectId::parse(m_remoteObjectId, &remoteId); |
517 if (!response.isSuccess()) return response; | 512 if (!response.isSuccess()) return response; |
518 InjectedScript* injectedScript = nullptr; | 513 InjectedScript* injectedScript = nullptr; |
519 response = session->findInjectedScript(remoteId.get(), injectedScript); | 514 response = session->findInjectedScript(remoteId.get(), injectedScript); |
520 if (!response.isSuccess()) return response; | 515 if (!response.isSuccess()) return response; |
521 m_objectGroupName = injectedScript->objectGroupName(*remoteId); | 516 m_objectGroupName = injectedScript->objectGroupName(*remoteId); |
522 response = injectedScript->findObject(*remoteId, &m_object); | 517 response = injectedScript->findObject(*remoteId, &m_object); |
523 if (!response.isSuccess()) return response; | 518 if (!response.isSuccess()) return response; |
524 m_injectedScript = injectedScript; | 519 m_injectedScript = injectedScript; |
525 return Response::OK(); | 520 return Response::OK(); |
526 } | 521 } |
527 | 522 |
528 InjectedScript::CallFrameScope::CallFrameScope(V8InspectorImpl* inspector, | 523 InjectedScript::CallFrameScope::CallFrameScope(V8InspectorSessionImpl* session, |
529 int contextGroupId, | |
530 const String16& remoteObjectId) | 524 const String16& remoteObjectId) |
531 : InjectedScript::Scope(inspector, contextGroupId), | 525 : InjectedScript::Scope(session), m_remoteCallFrameId(remoteObjectId) {} |
532 m_remoteCallFrameId(remoteObjectId) {} | |
533 | 526 |
534 InjectedScript::CallFrameScope::~CallFrameScope() {} | 527 InjectedScript::CallFrameScope::~CallFrameScope() {} |
535 | 528 |
536 Response InjectedScript::CallFrameScope::findInjectedScript( | 529 Response InjectedScript::CallFrameScope::findInjectedScript( |
537 V8InspectorSessionImpl* session) { | 530 V8InspectorSessionImpl* session) { |
538 std::unique_ptr<RemoteCallFrameId> remoteId; | 531 std::unique_ptr<RemoteCallFrameId> remoteId; |
539 Response response = RemoteCallFrameId::parse(m_remoteCallFrameId, &remoteId); | 532 Response response = RemoteCallFrameId::parse(m_remoteCallFrameId, &remoteId); |
540 if (!response.isSuccess()) return response; | 533 if (!response.isSuccess()) return response; |
541 m_frameOrdinal = static_cast<size_t>(remoteId->frameOrdinal()); | 534 m_frameOrdinal = static_cast<size_t>(remoteId->frameOrdinal()); |
542 return session->findInjectedScript(remoteId.get(), m_injectedScript); | 535 return session->findInjectedScript(remoteId.get(), m_injectedScript); |
543 } | 536 } |
544 | 537 |
545 } // namespace v8_inspector | 538 } // namespace v8_inspector |
OLD | NEW |