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

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

Issue 1967933002: [DevTools] Dispatch messages to V8InspectorSession directly. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@1936593002
Patch Set: rebased Created 4 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
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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 { 151 {
152 if (!--m_enabledAgentsCount) 152 if (!--m_enabledAgentsCount)
153 disable(); 153 disable();
154 } 154 }
155 155
156 V8DebuggerAgentImpl* V8DebuggerImpl::findEnabledDebuggerAgent(int contextGroupId ) 156 V8DebuggerAgentImpl* V8DebuggerImpl::findEnabledDebuggerAgent(int contextGroupId )
157 { 157 {
158 if (!contextGroupId) 158 if (!contextGroupId)
159 return nullptr; 159 return nullptr;
160 V8InspectorSessionImpl* session = m_sessions.get(contextGroupId); 160 V8InspectorSessionImpl* session = m_sessions.get(contextGroupId);
161 if (session && session->debuggerAgentImpl()->enabled()) 161 if (session && session->debuggerAgent()->enabled())
162 return session->debuggerAgentImpl(); 162 return session->debuggerAgent();
163 return nullptr; 163 return nullptr;
164 } 164 }
165 165
166 V8DebuggerAgentImpl* V8DebuggerImpl::findEnabledDebuggerAgent(v8::Local<v8::Cont ext> context) 166 V8DebuggerAgentImpl* V8DebuggerImpl::findEnabledDebuggerAgent(v8::Local<v8::Cont ext> context)
167 { 167 {
168 return findEnabledDebuggerAgent(getGroupId(context)); 168 return findEnabledDebuggerAgent(getGroupId(context));
169 } 169 }
170 170
171 void V8DebuggerImpl::getCompiledScripts(int contextGroupId, protocol::Vector<V8D ebuggerParsedScript>& result) 171 void V8DebuggerImpl::getCompiledScripts(int contextGroupId, protocol::Vector<V8D ebuggerParsedScript>& result)
172 { 172 {
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 return v8::Local<v8::Script>(); 724 return v8::Local<v8::Script>();
725 return script; 725 return script;
726 } 726 }
727 727
728 PassOwnPtr<V8StackTrace> V8DebuggerImpl::createStackTrace(v8::Local<v8::StackTra ce> stackTrace, size_t maxStackSize) 728 PassOwnPtr<V8StackTrace> V8DebuggerImpl::createStackTrace(v8::Local<v8::StackTra ce> stackTrace, size_t maxStackSize)
729 { 729 {
730 V8DebuggerAgentImpl* agent = findEnabledDebuggerAgent(m_isolate->GetCurrentC ontext()); 730 V8DebuggerAgentImpl* agent = findEnabledDebuggerAgent(m_isolate->GetCurrentC ontext());
731 return V8StackTraceImpl::create(agent, stackTrace, maxStackSize); 731 return V8StackTraceImpl::create(agent, stackTrace, maxStackSize);
732 } 732 }
733 733
734 PassOwnPtr<V8InspectorSession> V8DebuggerImpl::connect(int contextGroupId) 734 PassOwnPtr<V8InspectorSession> V8DebuggerImpl::connect(int contextGroupId, V8Ins pectorSessionClient* client, const String16* state)
735 { 735 {
736 DCHECK(!m_sessions.contains(contextGroupId)); 736 DCHECK(!m_sessions.contains(contextGroupId));
737 OwnPtr<V8InspectorSessionImpl> session = V8InspectorSessionImpl::create(this , contextGroupId); 737 OwnPtr<V8InspectorSessionImpl> session = V8InspectorSessionImpl::create(this , contextGroupId, client, state);
738 m_sessions.set(contextGroupId, session.get()); 738 m_sessions.set(contextGroupId, session.get());
739 return std::move(session); 739 return std::move(session);
740 } 740 }
741 741
742 void V8DebuggerImpl::disconnect(V8InspectorSessionImpl* session) 742 void V8DebuggerImpl::disconnect(V8InspectorSessionImpl* session)
743 { 743 {
744 DCHECK(m_sessions.contains(session->contextGroupId())); 744 DCHECK(m_sessions.contains(session->contextGroupId()));
745 m_sessions.remove(session->contextGroupId()); 745 m_sessions.remove(session->contextGroupId());
746 } 746 }
747 747
748 void V8DebuggerImpl::contextCreated(const V8ContextInfo& info) 748 void V8DebuggerImpl::contextCreated(const V8ContextInfo& info)
749 { 749 {
750 DCHECK(info.context->GetIsolate() == m_isolate); 750 DCHECK(info.context->GetIsolate() == m_isolate);
751 // TODO(dgozman): make s_lastContextId non-static. 751 // TODO(dgozman): make s_lastContextId non-static.
752 int contextId = atomicIncrement(&s_lastContextId); 752 int contextId = atomicIncrement(&s_lastContextId);
753 String16 debugData = String16::number(info.contextGroupId) + "," + String16: :number(contextId) + "," + (info.isDefault ? "default" : "nondefault"); 753 String16 debugData = String16::number(info.contextGroupId) + "," + String16: :number(contextId) + "," + (info.isDefault ? "default" : "nondefault");
754 v8::HandleScope scope(m_isolate); 754 v8::HandleScope scope(m_isolate);
755 v8::Context::Scope contextScope(info.context); 755 v8::Context::Scope contextScope(info.context);
756 info.context->SetEmbedderData(static_cast<int>(v8::Context::kDebugIdIndex), toV8String(m_isolate, debugData)); 756 info.context->SetEmbedderData(static_cast<int>(v8::Context::kDebugIdIndex), toV8String(m_isolate, debugData));
757 757
758 if (!m_contexts.contains(info.contextGroupId)) 758 if (!m_contexts.contains(info.contextGroupId))
759 m_contexts.set(info.contextGroupId, adoptPtr(new ContextByIdMap())); 759 m_contexts.set(info.contextGroupId, adoptPtr(new ContextByIdMap()));
760 DCHECK(!m_contexts.get(info.contextGroupId)->contains(contextId)); 760 DCHECK(!m_contexts.get(info.contextGroupId)->contains(contextId));
761 761
762 OwnPtr<InspectedContext> contextOwner = adoptPtr(new InspectedContext(this, info, contextId)); 762 OwnPtr<InspectedContext> contextOwner = adoptPtr(new InspectedContext(this, info, contextId));
763 InspectedContext* inspectedContext = contextOwner.get(); 763 InspectedContext* inspectedContext = contextOwner.get();
764 m_contexts.get(info.contextGroupId)->set(contextId, std::move(contextOwner)) ; 764 m_contexts.get(info.contextGroupId)->set(contextId, std::move(contextOwner)) ;
765 765
766 if (V8InspectorSessionImpl* session = m_sessions.get(info.contextGroupId)) 766 if (V8InspectorSessionImpl* session = m_sessions.get(info.contextGroupId))
767 session->runtimeAgentImpl()->reportExecutionContextCreated(inspectedCont ext); 767 session->runtimeAgent()->reportExecutionContextCreated(inspectedContext) ;
768 } 768 }
769 769
770 void V8DebuggerImpl::contextDestroyed(v8::Local<v8::Context> context) 770 void V8DebuggerImpl::contextDestroyed(v8::Local<v8::Context> context)
771 { 771 {
772 int contextId = V8Debugger::contextId(context); 772 int contextId = V8Debugger::contextId(context);
773 int contextGroupId = getGroupId(context); 773 int contextGroupId = getGroupId(context);
774 if (!m_contexts.contains(contextGroupId) || !m_contexts.get(contextGroupId)- >contains(contextId)) 774 if (!m_contexts.contains(contextGroupId) || !m_contexts.get(contextGroupId)- >contains(contextId))
775 return; 775 return;
776 776
777 InspectedContext* inspectedContext = m_contexts.get(contextGroupId)->get(con textId); 777 InspectedContext* inspectedContext = m_contexts.get(contextGroupId)->get(con textId);
778 if (V8InspectorSessionImpl* session = m_sessions.get(contextGroupId)) 778 if (V8InspectorSessionImpl* session = m_sessions.get(contextGroupId))
779 session->runtimeAgentImpl()->reportExecutionContextDestroyed(inspectedCo ntext); 779 session->runtimeAgent()->reportExecutionContextDestroyed(inspectedContex t);
780 780
781 m_contexts.get(contextGroupId)->remove(contextId); 781 m_contexts.get(contextGroupId)->remove(contextId);
782 if (m_contexts.get(contextGroupId)->isEmpty()) 782 if (m_contexts.get(contextGroupId)->isEmpty())
783 m_contexts.remove(contextGroupId); 783 m_contexts.remove(contextGroupId);
784 } 784 }
785 785
786 void V8DebuggerImpl::resetContextGroup(int contextGroupId) 786 void V8DebuggerImpl::resetContextGroup(int contextGroupId)
787 { 787 {
788 if (V8InspectorSessionImpl* session = m_sessions.get(contextGroupId)) 788 if (V8InspectorSessionImpl* session = m_sessions.get(contextGroupId))
789 session->reset(); 789 session->reset();
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 return nullptr; 840 return nullptr;
841 return m_contexts.get(contextGroupId); 841 return m_contexts.get(contextGroupId);
842 } 842 }
843 843
844 V8InspectorSessionImpl* V8DebuggerImpl::sessionForContextGroup(int contextGroupI d) 844 V8InspectorSessionImpl* V8DebuggerImpl::sessionForContextGroup(int contextGroupI d)
845 { 845 {
846 return contextGroupId ? m_sessions.get(contextGroupId) : nullptr; 846 return contextGroupId ? m_sessions.get(contextGroupId) : nullptr;
847 } 847 }
848 848
849 } // namespace blink 849 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698