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

Side by Side Diff: runtime/vm/service_event.cc

Issue 1527793004: Provide list of service protocol extensions in isolate and emit an event when one is registered (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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 | « runtime/vm/service_event.h ('k') | sdk/lib/developer/extension.dart » ('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 (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/service_event.h" 5 #include "vm/service_event.h"
6 6
7 #include "vm/message_handler.h" 7 #include "vm/message_handler.h"
8 8
9 namespace dart { 9 namespace dart {
10 10
(...skipping 22 matching lines...) Expand all
33 } 33 }
34 34
35 35
36 ServiceEvent::ServiceEvent(Isolate* isolate, EventKind event_kind) 36 ServiceEvent::ServiceEvent(Isolate* isolate, EventKind event_kind)
37 : isolate_(isolate), 37 : isolate_(isolate),
38 kind_(event_kind), 38 kind_(event_kind),
39 embedder_kind_(NULL), 39 embedder_kind_(NULL),
40 embedder_stream_id_(NULL), 40 embedder_stream_id_(NULL),
41 breakpoint_(NULL), 41 breakpoint_(NULL),
42 top_frame_(NULL), 42 top_frame_(NULL),
43 extension_rpc_(NULL),
43 exception_(NULL), 44 exception_(NULL),
44 async_continuation_(NULL), 45 async_continuation_(NULL),
45 at_async_jump_(false), 46 at_async_jump_(false),
46 inspectee_(NULL), 47 inspectee_(NULL),
47 gc_stats_(NULL), 48 gc_stats_(NULL),
48 bytes_(NULL), 49 bytes_(NULL),
49 bytes_length_(0), 50 bytes_length_(0),
50 timestamp_(OS::GetCurrentTimeMillis()) { 51 timestamp_(OS::GetCurrentTimeMillis()) {
51 if ((event_kind == ServiceEvent::kPauseStart) || 52 if ((event_kind == ServiceEvent::kPauseStart) ||
52 (event_kind == ServiceEvent::kPauseExit)) { 53 (event_kind == ServiceEvent::kPauseExit)) {
53 timestamp_ = isolate->message_handler()->paused_timestamp(); 54 timestamp_ = isolate->message_handler()->paused_timestamp();
54 } else if (event_kind == ServiceEvent::kResume) { 55 } else if (event_kind == ServiceEvent::kResume) {
55 timestamp_ = isolate->last_resume_timestamp(); 56 timestamp_ = isolate->last_resume_timestamp();
56 } 57 }
57 } 58 }
58 59
59 60
60 ServiceEvent::ServiceEvent(const DebuggerEvent* debugger_event) 61 ServiceEvent::ServiceEvent(const DebuggerEvent* debugger_event)
61 : isolate_(debugger_event->isolate()), 62 : isolate_(debugger_event->isolate()),
62 kind_(TranslateEventKind(debugger_event->type())), 63 kind_(TranslateEventKind(debugger_event->type())),
63 breakpoint_(NULL), 64 breakpoint_(NULL),
64 top_frame_(NULL), 65 top_frame_(NULL),
66 extension_rpc_(NULL),
65 exception_(NULL), 67 exception_(NULL),
66 async_continuation_(NULL), 68 async_continuation_(NULL),
67 inspectee_(NULL), 69 inspectee_(NULL),
68 gc_stats_(NULL), 70 gc_stats_(NULL),
69 bytes_(NULL), 71 bytes_(NULL),
70 bytes_length_(0), 72 bytes_length_(0),
71 timestamp_(OS::GetCurrentTimeMillis()) { 73 timestamp_(OS::GetCurrentTimeMillis()) {
72 DebuggerEvent::EventType type = debugger_event->type(); 74 DebuggerEvent::EventType type = debugger_event->type();
73 if (type == DebuggerEvent::kBreakpointReached) { 75 if (type == DebuggerEvent::kBreakpointReached) {
74 set_breakpoint(debugger_event->breakpoint()); 76 set_breakpoint(debugger_event->breakpoint());
(...skipping 19 matching lines...) Expand all
94 case kVMUpdate: 96 case kVMUpdate:
95 return "VMUpdate"; 97 return "VMUpdate";
96 case kIsolateStart: 98 case kIsolateStart:
97 return "IsolateStart"; 99 return "IsolateStart";
98 case kIsolateRunnable: 100 case kIsolateRunnable:
99 return "IsolateRunnable"; 101 return "IsolateRunnable";
100 case kIsolateExit: 102 case kIsolateExit:
101 return "IsolateExit"; 103 return "IsolateExit";
102 case kIsolateUpdate: 104 case kIsolateUpdate:
103 return "IsolateUpdate"; 105 return "IsolateUpdate";
106 case kServiceExtensionAdded:
107 return "ServiceExtensionAdded";
104 case kPauseStart: 108 case kPauseStart:
105 return "PauseStart"; 109 return "PauseStart";
106 case kPauseExit: 110 case kPauseExit:
107 return "PauseExit"; 111 return "PauseExit";
108 case kPauseBreakpoint: 112 case kPauseBreakpoint:
109 return "PauseBreakpoint"; 113 return "PauseBreakpoint";
110 case kPauseInterrupted: 114 case kPauseInterrupted:
111 return "PauseInterrupted"; 115 return "PauseInterrupted";
112 case kPauseException: 116 case kPauseException:
113 return "PauseException"; 117 return "PauseException";
(...skipping 26 matching lines...) Expand all
140 144
141 const char* ServiceEvent::stream_id() const { 145 const char* ServiceEvent::stream_id() const {
142 switch (kind()) { 146 switch (kind()) {
143 case kVMUpdate: 147 case kVMUpdate:
144 return Service::vm_stream.id(); 148 return Service::vm_stream.id();
145 149
146 case kIsolateStart: 150 case kIsolateStart:
147 case kIsolateRunnable: 151 case kIsolateRunnable:
148 case kIsolateExit: 152 case kIsolateExit:
149 case kIsolateUpdate: 153 case kIsolateUpdate:
154 case kServiceExtensionAdded:
150 return Service::isolate_stream.id(); 155 return Service::isolate_stream.id();
151 156
152 case kPauseStart: 157 case kPauseStart:
153 case kPauseExit: 158 case kPauseExit:
154 case kPauseBreakpoint: 159 case kPauseBreakpoint:
155 case kPauseInterrupted: 160 case kPauseInterrupted:
156 case kPauseException: 161 case kPauseException:
157 case kResume: 162 case kResume:
158 case kBreakpointAdded: 163 case kBreakpointAdded:
159 case kBreakpointResolved: 164 case kBreakpointResolved:
(...skipping 14 matching lines...) Expand all
174 default: 179 default:
175 UNREACHABLE(); 180 UNREACHABLE();
176 return NULL; 181 return NULL;
177 } 182 }
178 } 183 }
179 184
180 185
181 void ServiceEvent::PrintJSON(JSONStream* js) const { 186 void ServiceEvent::PrintJSON(JSONStream* js) const {
182 JSONObject jsobj(js); 187 JSONObject jsobj(js);
183 PrintJSONHeader(&jsobj); 188 PrintJSONHeader(&jsobj);
189 if (kind() == kServiceExtensionAdded) {
190 ASSERT(extension_rpc_ != NULL);
191 jsobj.AddProperty("extensionRPC", extension_rpc_->ToCString());
192 }
184 if (kind() == kPauseBreakpoint) { 193 if (kind() == kPauseBreakpoint) {
185 JSONArray jsarr(&jsobj, "pauseBreakpoints"); 194 JSONArray jsarr(&jsobj, "pauseBreakpoints");
186 // TODO(rmacnak): If we are paused at more than one breakpoint, 195 // TODO(rmacnak): If we are paused at more than one breakpoint,
187 // provide it here. 196 // provide it here.
188 if (breakpoint() != NULL) { 197 if (breakpoint() != NULL) {
189 jsarr.AddValue(breakpoint()); 198 jsarr.AddValue(breakpoint());
190 } 199 }
191 } else { 200 } else {
192 if (breakpoint() != NULL) { 201 if (breakpoint() != NULL) {
193 jsobj.AddProperty("breakpoint", breakpoint()); 202 jsobj.AddProperty("breakpoint", breakpoint());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 if (kind() == kVMUpdate) { 251 if (kind() == kVMUpdate) {
243 jsobj->AddPropertyVM("vm"); 252 jsobj->AddPropertyVM("vm");
244 } else { 253 } else {
245 jsobj->AddProperty("isolate", isolate()); 254 jsobj->AddProperty("isolate", isolate());
246 } 255 }
247 ASSERT(timestamp_ != -1); 256 ASSERT(timestamp_ != -1);
248 jsobj->AddPropertyTimeMillis("timestamp", timestamp_); 257 jsobj->AddPropertyTimeMillis("timestamp", timestamp_);
249 } 258 }
250 259
251 } // namespace dart 260 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/service_event.h ('k') | sdk/lib/developer/extension.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698