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

Side by Side Diff: Source/core/inspector/InspectorDOMDebuggerAgent.cpp

Issue 16934003: Inspector: replace generic discardAgents logic with explicit call to discard a listener. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 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) 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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 : InspectorBaseAgent<InspectorDOMDebuggerAgent>("DOMDebugger", instrumenting Agents, inspectorState) 83 : InspectorBaseAgent<InspectorDOMDebuggerAgent>("DOMDebugger", instrumenting Agents, inspectorState)
84 , m_domAgent(domAgent) 84 , m_domAgent(domAgent)
85 , m_debuggerAgent(debuggerAgent) 85 , m_debuggerAgent(debuggerAgent)
86 , m_pauseInNextEventListener(false) 86 , m_pauseInNextEventListener(false)
87 { 87 {
88 m_debuggerAgent->setListener(this); 88 m_debuggerAgent->setListener(this);
89 } 89 }
90 90
91 InspectorDOMDebuggerAgent::~InspectorDOMDebuggerAgent() 91 InspectorDOMDebuggerAgent::~InspectorDOMDebuggerAgent()
92 { 92 {
93 ASSERT(!m_debuggerAgent); 93 if (m_debuggerAgent)
94 m_debuggerAgent->setListener(0);
94 ASSERT(!m_instrumentingAgents->inspectorDOMDebuggerAgent()); 95 ASSERT(!m_instrumentingAgents->inspectorDOMDebuggerAgent());
95 } 96 }
96 97
97 // Browser debugger agent enabled only when JS debugger is enabled. 98 // Browser debugger agent enabled only when JS debugger is enabled.
98 void InspectorDOMDebuggerAgent::debuggerWasEnabled() 99 void InspectorDOMDebuggerAgent::debuggerWasEnabled()
99 { 100 {
100 m_instrumentingAgents->setInspectorDOMDebuggerAgent(this); 101 m_instrumentingAgents->setInspectorDOMDebuggerAgent(this);
101 } 102 }
102 103
103 void InspectorDOMDebuggerAgent::debuggerWasDisabled() 104 void InspectorDOMDebuggerAgent::debuggerWasDisabled()
104 { 105 {
105 disable(); 106 disable();
106 } 107 }
107 108
108 void InspectorDOMDebuggerAgent::stepInto() 109 void InspectorDOMDebuggerAgent::stepInto()
109 { 110 {
110 m_pauseInNextEventListener = true; 111 m_pauseInNextEventListener = true;
111 } 112 }
112 113
113 void InspectorDOMDebuggerAgent::didPause() 114 void InspectorDOMDebuggerAgent::didPause()
114 { 115 {
115 m_pauseInNextEventListener = false; 116 m_pauseInNextEventListener = false;
116 } 117 }
117 118
119 void InspectorDOMDebuggerAgent::discardListener()
120 {
121 m_debuggerAgent = 0;
122 }
123
118 void InspectorDOMDebuggerAgent::didProcessTask() 124 void InspectorDOMDebuggerAgent::didProcessTask()
119 { 125 {
120 if (!m_pauseInNextEventListener) 126 if (!m_pauseInNextEventListener)
121 return; 127 return;
122 if (m_debuggerAgent && m_debuggerAgent->runningNestedMessageLoop()) 128 if (m_debuggerAgent && m_debuggerAgent->runningNestedMessageLoop())
123 return; 129 return;
124 m_pauseInNextEventListener = false; 130 m_pauseInNextEventListener = false;
125 } 131 }
126 132
127 void InspectorDOMDebuggerAgent::disable() 133 void InspectorDOMDebuggerAgent::disable()
128 { 134 {
129 m_instrumentingAgents->setInspectorDOMDebuggerAgent(0); 135 m_instrumentingAgents->setInspectorDOMDebuggerAgent(0);
130 clear(); 136 clear();
131 } 137 }
132 138
133 void InspectorDOMDebuggerAgent::clearFrontend() 139 void InspectorDOMDebuggerAgent::clearFrontend()
134 { 140 {
135 disable(); 141 disable();
136 } 142 }
137 143
138 void InspectorDOMDebuggerAgent::discardAgent()
139 {
140 m_debuggerAgent->setListener(0);
141 m_debuggerAgent = 0;
142 }
143
144 void InspectorDOMDebuggerAgent::discardBindings() 144 void InspectorDOMDebuggerAgent::discardBindings()
145 { 145 {
146 m_domBreakpoints.clear(); 146 m_domBreakpoints.clear();
147 } 147 }
148 148
149 void InspectorDOMDebuggerAgent::setEventListenerBreakpoint(ErrorString* error, c onst String& eventName) 149 void InspectorDOMDebuggerAgent::setEventListenerBreakpoint(ErrorString* error, c onst String& eventName)
150 { 150 {
151 setBreakpoint(error, String(listenerEventCategoryType) + eventName); 151 setBreakpoint(error, String(listenerEventCategoryType) + eventName);
152 } 152 }
153 153
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 } 524 }
525 525
526 void InspectorDOMDebuggerAgent::clear() 526 void InspectorDOMDebuggerAgent::clear()
527 { 527 {
528 m_domBreakpoints.clear(); 528 m_domBreakpoints.clear();
529 m_pauseInNextEventListener = false; 529 m_pauseInNextEventListener = false;
530 } 530 }
531 531
532 } // namespace WebCore 532 } // namespace WebCore
533 533
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698