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: include/v8-debug.h

Issue 2642253005: [debugger api] remove legacy JSON debug protocol. (Closed)
Patch Set: fix cctest Created 3 years, 11 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
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2008 the V8 project authors. All rights reserved. 1 // Copyright 2008 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_V8_DEBUG_H_ 5 #ifndef V8_V8_DEBUG_H_
6 #define V8_V8_DEBUG_H_ 6 #define V8_V8_DEBUG_H_
7 7
8 #include "v8.h" // NOLINT(build/include) 8 #include "v8.h" // NOLINT(build/include)
9 9
10 /** 10 /**
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 */ 109 */
110 virtual Local<Context> GetEventContext() const = 0; 110 virtual Local<Context> GetEventContext() const = 0;
111 111
112 /** 112 /**
113 * Client data passed with the corresponding callback when it was 113 * Client data passed with the corresponding callback when it was
114 * registered. 114 * registered.
115 */ 115 */
116 virtual Local<Value> GetCallbackData() const = 0; 116 virtual Local<Value> GetCallbackData() const = 0;
117 117
118 /** 118 /**
119 * Client data passed to DebugBreakForCommand function. The 119 * This is now a dummy that returns nullptr.
120 * debugger takes ownership of the data and will delete it even if
121 * there is no message handler.
122 */ 120 */
123 virtual ClientData* GetClientData() const = 0; 121 virtual ClientData* GetClientData() const = 0;
124 122
125 virtual Isolate* GetIsolate() const = 0; 123 virtual Isolate* GetIsolate() const = 0;
126 124
127 virtual ~EventDetails() {} 125 virtual ~EventDetails() {}
128 }; 126 };
129 127
130 /** 128 /**
131 * Debug event callback function. 129 * Debug event callback function.
132 * 130 *
133 * \param event_details object providing information about the debug event 131 * \param event_details object providing information about the debug event
134 * 132 *
135 * A EventCallback2 does not take possession of the event data, 133 * A EventCallback does not take possession of the event data,
136 * and must not rely on the data persisting after the handler returns. 134 * and must not rely on the data persisting after the handler returns.
137 */ 135 */
138 typedef void (*EventCallback)(const EventDetails& event_details); 136 typedef void (*EventCallback)(const EventDetails& event_details);
139 137
140 /** 138 /**
141 * Debug message callback function. 139 * This is now a no-op.
142 *
143 * \param message the debug message handler message object
144 *
145 * A MessageHandler does not take possession of the message data,
146 * and must not rely on the data persisting after the handler returns.
147 */ 140 */
148 typedef void (*MessageHandler)(const Message& message); 141 typedef void (*MessageHandler)(const Message& message);
149 142
150 /** 143 /**
151 * Callback function for the host to ensure debug messages are processed. 144 * This is now a no-op.
152 */ 145 */
153 typedef void (*DebugMessageDispatchHandler)(); 146 typedef void (*DebugMessageDispatchHandler)();
154 147
155 static bool SetDebugEventListener(Isolate* isolate, EventCallback that, 148 static bool SetDebugEventListener(Isolate* isolate, EventCallback that,
156 Local<Value> data = Local<Value>()); 149 Local<Value> data = Local<Value>());
157 150
158 // Schedule a debugger break to happen when JavaScript code is run 151 // Schedule a debugger break to happen when JavaScript code is run
159 // in the given isolate. 152 // in the given isolate.
160 static void DebugBreak(Isolate* isolate); 153 static void DebugBreak(Isolate* isolate);
161 154
162 // Remove scheduled debugger break in given isolate if it has not 155 // Remove scheduled debugger break in given isolate if it has not
163 // happened yet. 156 // happened yet.
164 static void CancelDebugBreak(Isolate* isolate); 157 static void CancelDebugBreak(Isolate* isolate);
165 158
166 // Check if a debugger break is scheduled in the given isolate. 159 // Check if a debugger break is scheduled in the given isolate.
167 V8_DEPRECATED("No longer supported", 160 V8_DEPRECATED("No longer supported",
168 static bool CheckDebugBreak(Isolate* isolate)); 161 static bool CheckDebugBreak(Isolate* isolate));
169 162
170 // Message based interface. The message protocol is JSON. 163 // This is now a no-op.
171 V8_DEPRECATED("No longer supported", 164 V8_DEPRECATED("No longer supported",
172 static void SetMessageHandler(Isolate* isolate, 165 static void SetMessageHandler(Isolate* isolate,
173 MessageHandler handler)); 166 MessageHandler handler));
174 167
168 // This is now a no-op.
175 V8_DEPRECATED("No longer supported", 169 V8_DEPRECATED("No longer supported",
176 static void SendCommand(Isolate* isolate, 170 static void SendCommand(Isolate* isolate,
177 const uint16_t* command, int length, 171 const uint16_t* command, int length,
178 ClientData* client_data = NULL)); 172 ClientData* client_data = NULL));
179 173
180 /** 174 /**
181 * Run a JavaScript function in the debugger. 175 * Run a JavaScript function in the debugger.
182 * \param fun the function to call 176 * \param fun the function to call
183 * \param data passed as second argument to the function 177 * \param data passed as second argument to the function
184 * With this call the debugger is entered and the function specified is called 178 * With this call the debugger is entered and the function specified is called
(...skipping 15 matching lines...) Expand all
200 v8::Local<v8::Function> fun, 194 v8::Local<v8::Function> fun,
201 Local<Value> data = Local<Value>()); 195 Local<Value> data = Local<Value>());
202 196
203 /** 197 /**
204 * Returns a mirror object for the given object. 198 * Returns a mirror object for the given object.
205 */ 199 */
206 V8_DEPRECATED("No longer supported", 200 V8_DEPRECATED("No longer supported",
207 static MaybeLocal<Value> GetMirror(Local<Context> context, 201 static MaybeLocal<Value> GetMirror(Local<Context> context,
208 v8::Local<v8::Value> obj)); 202 v8::Local<v8::Value> obj));
209 203
210 /** 204 // This is now a no-op.
211 * Makes V8 process all pending debug messages.
212 *
213 * From V8 point of view all debug messages come asynchronously (e.g. from
214 * remote debugger) but they all must be handled synchronously: V8 cannot
215 * do 2 things at one time so normal script execution must be interrupted
216 * for a while.
217 *
218 * Generally when message arrives V8 may be in one of 3 states:
219 * 1. V8 is running script; V8 will automatically interrupt and process all
220 * pending messages;
221 * 2. V8 is suspended on debug breakpoint; in this state V8 is dedicated
222 * to reading and processing debug messages;
223 * 3. V8 is not running at all or has called some long-working C++ function;
224 * by default it means that processing of all debug messages will be deferred
225 * until V8 gets control again; however, embedding application may improve
226 * this by manually calling this method.
227 *
228 * Technically this method in many senses is equivalent to executing empty
229 * script:
230 * 1. It does nothing except for processing all pending debug messages.
231 * 2. It should be invoked with the same precautions and from the same context
232 * as V8 script would be invoked from, because:
233 * a. with "evaluate" command it can do whatever normal script can do,
234 * including all native calls;
235 * b. no other thread should call V8 while this method is running
236 * (v8::Locker may be used here).
237 *
238 * "Evaluate" debug command behavior currently is not specified in scope
239 * of this method.
240 */
241 V8_DEPRECATED("No longer supported", 205 V8_DEPRECATED("No longer supported",
242 static void ProcessDebugMessages(Isolate* isolate)); 206 static void ProcessDebugMessages(Isolate* isolate));
243 207
244 /** 208 /**
245 * Debugger is running in its own context which is entered while debugger 209 * Debugger is running in its own context which is entered while debugger
246 * messages are being dispatched. This is an explicit getter for this 210 * messages are being dispatched. This is an explicit getter for this
247 * debugger context. Note that the content of the debugger context is subject 211 * debugger context. Note that the content of the debugger context is subject
248 * to change. The Context exists only when the debugger is active, i.e. at 212 * to change. The Context exists only when the debugger is active, i.e. at
249 * least one DebugEventListener or MessageHandler is set. 213 * least one DebugEventListener or MessageHandler is set.
250 */ 214 */
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 }; 248 };
285 249
286 250
287 } // namespace v8 251 } // namespace v8
288 252
289 253
290 #undef EXPORT 254 #undef EXPORT
291 255
292 256
293 #endif // V8_V8_DEBUG_H_ 257 #endif // V8_V8_DEBUG_H_
OLDNEW
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698