OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library debugger_page_element; | 5 library debugger_page_element; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:svg'; | 8 import 'dart:svg'; |
9 import 'dart:html'; | 9 import 'dart:html'; |
10 import 'dart:math'; | 10 import 'dart:math'; |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 debugger.console.print('No stack'); | 171 debugger.console.print('No stack'); |
172 return; | 172 return; |
173 } | 173 } |
174 var expression = args.join(''); | 174 var expression = args.join(''); |
175 var response = | 175 var response = |
176 await debugger.isolate.evalFrame(debugger.currentFrame, expression); | 176 await debugger.isolate.evalFrame(debugger.currentFrame, expression); |
177 if (response is S.DartError) { | 177 if (response is S.DartError) { |
178 debugger.console.print(response.message); | 178 debugger.console.print(response.message); |
179 } else { | 179 } else { |
180 debugger.console.print('= ', newline: false); | 180 debugger.console.print('= ', newline: false); |
181 debugger.console.printRef(debugger.isolate, response, debugger.instances); | 181 debugger.console.printRef(debugger.isolate, response, debugger.objects); |
182 } | 182 } |
183 } | 183 } |
184 | 184 |
185 String helpShort = 'Evaluate and print an expression in the current frame'; | 185 String helpShort = 'Evaluate and print an expression in the current frame'; |
186 | 186 |
187 String helpLong = 'Evaluate and print an expression in the current frame.\n' | 187 String helpLong = 'Evaluate and print an expression in the current frame.\n' |
188 '\n' | 188 '\n' |
189 'Syntax: print <expression>\n' | 189 'Syntax: print <expression>\n' |
190 ' p <expression>\n'; | 190 ' p <expression>\n'; |
191 } | 191 } |
(...skipping 1447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1639 var bpId = event.breakpoint.number; | 1639 var bpId = event.breakpoint.number; |
1640 console.print('Paused at breakpoint ${bpId} at ' | 1640 console.print('Paused at breakpoint ${bpId} at ' |
1641 '${script.name}:${line}:${col}'); | 1641 '${script.name}:${line}:${col}'); |
1642 } else if ((event is M.PauseExceptionEvent) && | 1642 } else if ((event is M.PauseExceptionEvent) && |
1643 (event.exception != null)) { | 1643 (event.exception != null)) { |
1644 console.print('Paused due to exception at ' | 1644 console.print('Paused due to exception at ' |
1645 '${script.name}:${line}:${col}'); | 1645 '${script.name}:${line}:${col}'); |
1646 // This seems to be missing if we are paused-at-exception after | 1646 // This seems to be missing if we are paused-at-exception after |
1647 // paused-at-isolate-exit. Maybe we shutdown part of the debugger too | 1647 // paused-at-isolate-exit. Maybe we shutdown part of the debugger too |
1648 // soon? | 1648 // soon? |
1649 console.printRef(isolate, event.exception, instances); | 1649 console.printRef(isolate, event.exception, objects); |
1650 } else { | 1650 } else { |
1651 console.print('Paused at ${script.name}:${line}:${col}'); | 1651 console.print('Paused at ${script.name}:${line}:${col}'); |
1652 } | 1652 } |
1653 }); | 1653 }); |
1654 } else { | 1654 } else { |
1655 console.print("Paused in message loop (type 'continue' or [F7] " | 1655 console.print("Paused in message loop (type 'continue' or [F7] " |
1656 "to resume processing messages)"); | 1656 "to resume processing messages)"); |
1657 } | 1657 } |
1658 } | 1658 } |
1659 | 1659 |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1993 static const tag = | 1993 static const tag = |
1994 const Tag<DebuggerPageElement>('debugger-page', dependencies: const [ | 1994 const Tag<DebuggerPageElement>('debugger-page', dependencies: const [ |
1995 NavTopMenuElement.tag, | 1995 NavTopMenuElement.tag, |
1996 NavVMMenuElement.tag, | 1996 NavVMMenuElement.tag, |
1997 NavIsolateMenuElement.tag, | 1997 NavIsolateMenuElement.tag, |
1998 NavNotifyElement.tag, | 1998 NavNotifyElement.tag, |
1999 ]); | 1999 ]); |
2000 | 2000 |
2001 S.Isolate _isolate; | 2001 S.Isolate _isolate; |
2002 ObservatoryDebugger _debugger; | 2002 ObservatoryDebugger _debugger; |
2003 M.InstanceRepository _instances; | 2003 M.ObjectRepository _objects; |
2004 M.ScriptRepository _scripts; | 2004 M.ScriptRepository _scripts; |
2005 M.EventRepository _events; | 2005 M.EventRepository _events; |
2006 | 2006 |
2007 factory DebuggerPageElement(S.Isolate isolate, M.InstanceRepository instances, | 2007 factory DebuggerPageElement(S.Isolate isolate, M.ObjectRepository objects, |
2008 M.ScriptRepository scripts, M.EventRepository events) { | 2008 M.ScriptRepository scripts, M.EventRepository events) { |
2009 assert(isolate != null); | 2009 assert(isolate != null); |
2010 assert(instances != null); | 2010 assert(objects != null); |
2011 assert(scripts != null); | 2011 assert(scripts != null); |
2012 assert(events != null); | 2012 assert(events != null); |
2013 final e = document.createElement(tag.name); | 2013 final e = document.createElement(tag.name); |
2014 final debugger = new ObservatoryDebugger(isolate); | 2014 final debugger = new ObservatoryDebugger(isolate); |
2015 debugger.page = e; | 2015 debugger.page = e; |
2016 debugger.instances = instances; | 2016 debugger.objects = objects; |
2017 e._isolate = isolate; | 2017 e._isolate = isolate; |
2018 e._debugger = debugger; | 2018 e._debugger = debugger; |
2019 e._instances = instances; | 2019 e._objects = objects; |
2020 e._scripts = scripts; | 2020 e._scripts = scripts; |
2021 e._events = events; | 2021 e._events = events; |
2022 return e; | 2022 return e; |
2023 } | 2023 } |
2024 | 2024 |
2025 DebuggerPageElement.created() : super.created(); | 2025 DebuggerPageElement.created() : super.created(); |
2026 | 2026 |
2027 Future<StreamSubscription> _vmSubscriptionFuture; | 2027 Future<StreamSubscription> _vmSubscriptionFuture; |
2028 Future<StreamSubscription> _isolateSubscriptionFuture; | 2028 Future<StreamSubscription> _isolateSubscriptionFuture; |
2029 Future<StreamSubscription> _debugSubscriptionFuture; | 2029 Future<StreamSubscription> _debugSubscriptionFuture; |
2030 Future<StreamSubscription> _stdoutSubscriptionFuture; | 2030 Future<StreamSubscription> _stdoutSubscriptionFuture; |
2031 Future<StreamSubscription> _stderrSubscriptionFuture; | 2031 Future<StreamSubscription> _stderrSubscriptionFuture; |
2032 Future<StreamSubscription> _logSubscriptionFuture; | 2032 Future<StreamSubscription> _logSubscriptionFuture; |
2033 | 2033 |
2034 ObservatoryApplication get app => ObservatoryApplication.app; | 2034 ObservatoryApplication get app => ObservatoryApplication.app; |
2035 | 2035 |
2036 Timer _timer; | 2036 Timer _timer; |
2037 | 2037 |
2038 static final consoleElement = new DebuggerConsoleElement(); | 2038 static final consoleElement = new DebuggerConsoleElement(); |
2039 | 2039 |
2040 @override | 2040 @override |
2041 void attached() { | 2041 void attached() { |
2042 super.attached(); | 2042 super.attached(); |
2043 | 2043 |
2044 final stackDiv = new DivElement()..classes = ['stack']; | 2044 final stackDiv = new DivElement()..classes = ['stack']; |
2045 final stackElement = new DebuggerStackElement( | 2045 final stackElement = new DebuggerStackElement( |
2046 _isolate, _debugger, stackDiv, _instances, _scripts, _events); | 2046 _isolate, _debugger, stackDiv, _objects, _scripts, _events); |
2047 stackDiv.children = [stackElement]; | 2047 stackDiv.children = [stackElement]; |
2048 final consoleDiv = new DivElement() | 2048 final consoleDiv = new DivElement() |
2049 ..classes = ['console'] | 2049 ..classes = ['console'] |
2050 ..children = [consoleElement]; | 2050 ..children = [consoleElement]; |
2051 final commandElement = new DebuggerInputElement(_isolate, _debugger); | 2051 final commandElement = new DebuggerInputElement(_isolate, _debugger); |
2052 final commandDiv = new DivElement() | 2052 final commandDiv = new DivElement() |
2053 ..classes = ['commandline'] | 2053 ..classes = ['commandline'] |
2054 ..children = [commandElement]; | 2054 ..children = [commandElement]; |
2055 | 2055 |
2056 children = [ | 2056 children = [ |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2148 S.cancelFutureSubscription(_logSubscriptionFuture); | 2148 S.cancelFutureSubscription(_logSubscriptionFuture); |
2149 _logSubscriptionFuture = null; | 2149 _logSubscriptionFuture = null; |
2150 super.detached(); | 2150 super.detached(); |
2151 } | 2151 } |
2152 } | 2152 } |
2153 | 2153 |
2154 class DebuggerStackElement extends HtmlElement implements Renderable { | 2154 class DebuggerStackElement extends HtmlElement implements Renderable { |
2155 static const tag = const Tag<DebuggerStackElement>('debugger-stack'); | 2155 static const tag = const Tag<DebuggerStackElement>('debugger-stack'); |
2156 | 2156 |
2157 S.Isolate _isolate; | 2157 S.Isolate _isolate; |
2158 M.InstanceRepository _instances; | 2158 M.ObjectRepository _objects; |
2159 M.ScriptRepository _scripts; | 2159 M.ScriptRepository _scripts; |
2160 M.EventRepository _events; | 2160 M.EventRepository _events; |
2161 Element _scroller; | 2161 Element _scroller; |
2162 DivElement _isSampled; | 2162 DivElement _isSampled; |
2163 bool get isSampled => !_isSampled.classes.contains('hidden'); | 2163 bool get isSampled => !_isSampled.classes.contains('hidden'); |
2164 set isSampled(bool value) { | 2164 set isSampled(bool value) { |
2165 if (value != isSampled) { | 2165 if (value != isSampled) { |
2166 _isSampled.classes.toggle('hidden'); | 2166 _isSampled.classes.toggle('hidden'); |
2167 } | 2167 } |
2168 } | 2168 } |
(...skipping 16 matching lines...) Expand all Loading... |
2185 | 2185 |
2186 UListElement _frameList; | 2186 UListElement _frameList; |
2187 UListElement _messageList; | 2187 UListElement _messageList; |
2188 int currentFrame; | 2188 int currentFrame; |
2189 ObservatoryDebugger _debugger; | 2189 ObservatoryDebugger _debugger; |
2190 | 2190 |
2191 factory DebuggerStackElement( | 2191 factory DebuggerStackElement( |
2192 S.Isolate isolate, | 2192 S.Isolate isolate, |
2193 ObservatoryDebugger debugger, | 2193 ObservatoryDebugger debugger, |
2194 Element scroller, | 2194 Element scroller, |
2195 M.InstanceRepository instances, | 2195 M.ObjectRepository objects, |
2196 M.ScriptRepository scripts, | 2196 M.ScriptRepository scripts, |
2197 M.EventRepository events) { | 2197 M.EventRepository events) { |
2198 assert(isolate != null); | 2198 assert(isolate != null); |
2199 assert(debugger != null); | 2199 assert(debugger != null); |
2200 assert(scroller != null); | 2200 assert(scroller != null); |
2201 assert(instances != null); | 2201 assert(objects != null); |
2202 assert(scripts != null); | 2202 assert(scripts != null); |
2203 assert(events != null); | 2203 assert(events != null); |
2204 final e = document.createElement(tag.name); | 2204 final e = document.createElement(tag.name); |
2205 e._isolate = isolate; | 2205 e._isolate = isolate; |
2206 e._debugger = debugger; | 2206 e._debugger = debugger; |
2207 e._scroller = scroller; | 2207 e._scroller = scroller; |
2208 e._instances = instances; | 2208 e._objects = objects; |
2209 e._scripts = scripts; | 2209 e._scripts = scripts; |
2210 e._events = events; | 2210 e._events = events; |
2211 | 2211 |
2212 var btnPause; | 2212 var btnPause; |
2213 var btnRefresh; | 2213 var btnRefresh; |
2214 e.children = [ | 2214 e.children = [ |
2215 e._isSampled = new DivElement() | 2215 e._isSampled = new DivElement() |
2216 ..classes = ['sampledMessage', 'hidden'] | 2216 ..classes = ['sampledMessage', 'hidden'] |
2217 ..children = [ | 2217 ..children = [ |
2218 new SpanElement() | 2218 new SpanElement() |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2256 ]; | 2256 ]; |
2257 return e; | 2257 return e; |
2258 } | 2258 } |
2259 | 2259 |
2260 void render() { | 2260 void render() { |
2261 /* nothing to do */ | 2261 /* nothing to do */ |
2262 } | 2262 } |
2263 | 2263 |
2264 _addFrame(List frameList, S.Frame frameInfo) { | 2264 _addFrame(List frameList, S.Frame frameInfo) { |
2265 final frameElement = new DebuggerFrameElement( | 2265 final frameElement = new DebuggerFrameElement( |
2266 _isolate, frameInfo, _scroller, _instances, _scripts, _events, | 2266 _isolate, frameInfo, _scroller, _objects, _scripts, _events, |
2267 queue: app.queue); | 2267 queue: app.queue); |
2268 | 2268 |
2269 if (frameInfo.index == currentFrame) { | 2269 if (frameInfo.index == currentFrame) { |
2270 frameElement.setCurrent(true); | 2270 frameElement.setCurrent(true); |
2271 } else { | 2271 } else { |
2272 frameElement.setCurrent(false); | 2272 frameElement.setCurrent(false); |
2273 } | 2273 } |
2274 | 2274 |
2275 var li = new LIElement(); | 2275 var li = new LIElement(); |
2276 li.classes.add('list-group-item'); | 2276 li.classes.add('list-group-item'); |
2277 li.children.insert(0, frameElement); | 2277 li.children.insert(0, frameElement); |
2278 | 2278 |
2279 frameList.insert(0, li); | 2279 frameList.insert(0, li); |
2280 } | 2280 } |
2281 | 2281 |
2282 _addMessage(List messageList, S.ServiceMessage messageInfo) { | 2282 _addMessage(List messageList, S.ServiceMessage messageInfo) { |
2283 final messageElement = new DebuggerMessageElement( | 2283 final messageElement = new DebuggerMessageElement( |
2284 _isolate, messageInfo, _instances, _scripts, _events, | 2284 _isolate, messageInfo, _objects, _scripts, _events, |
2285 queue: app.queue); | 2285 queue: app.queue); |
2286 | 2286 |
2287 var li = new LIElement(); | 2287 var li = new LIElement(); |
2288 li.classes.add('list-group-item'); | 2288 li.classes.add('list-group-item'); |
2289 li.children.insert(0, messageElement); | 2289 li.children.insert(0, messageElement); |
2290 | 2290 |
2291 messageList.add(li); | 2291 messageList.add(li); |
2292 } | 2292 } |
2293 | 2293 |
2294 ObservatoryApplication get app => ObservatoryApplication.app; | 2294 ObservatoryApplication get app => ObservatoryApplication.app; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2412 | 2412 |
2413 RenderingScheduler<DebuggerMessageElement> _r; | 2413 RenderingScheduler<DebuggerMessageElement> _r; |
2414 | 2414 |
2415 Stream<RenderedEvent<DebuggerMessageElement>> get onRendered => _r.onRendered; | 2415 Stream<RenderedEvent<DebuggerMessageElement>> get onRendered => _r.onRendered; |
2416 | 2416 |
2417 Element _scroller; | 2417 Element _scroller; |
2418 DivElement _varsDiv; | 2418 DivElement _varsDiv; |
2419 M.Isolate _isolate; | 2419 M.Isolate _isolate; |
2420 S.Frame _frame; | 2420 S.Frame _frame; |
2421 S.Frame get frame => _frame; | 2421 S.Frame get frame => _frame; |
2422 M.InstanceRepository _instances; | 2422 M.ObjectRepository _objects; |
2423 M.ScriptRepository _scripts; | 2423 M.ScriptRepository _scripts; |
2424 M.EventRepository _events; | 2424 M.EventRepository _events; |
2425 | 2425 |
2426 // Is this the current frame? | 2426 // Is this the current frame? |
2427 bool _current = false; | 2427 bool _current = false; |
2428 | 2428 |
2429 // Has this frame been pinned open? | 2429 // Has this frame been pinned open? |
2430 bool _pinned = false; | 2430 bool _pinned = false; |
2431 | 2431 |
2432 bool _expanded = false; | 2432 bool _expanded = false; |
(...skipping 14 matching lines...) Expand all Loading... |
2447 _unexpand(); | 2447 _unexpand(); |
2448 } | 2448 } |
2449 } | 2449 } |
2450 }); | 2450 }); |
2451 } | 2451 } |
2452 | 2452 |
2453 factory DebuggerFrameElement( | 2453 factory DebuggerFrameElement( |
2454 M.Isolate isolate, | 2454 M.Isolate isolate, |
2455 S.Frame frame, | 2455 S.Frame frame, |
2456 Element scroller, | 2456 Element scroller, |
2457 M.InstanceRepository instances, | 2457 M.ObjectRepository objects, |
2458 M.ScriptRepository scripts, | 2458 M.ScriptRepository scripts, |
2459 M.EventRepository events, | 2459 M.EventRepository events, |
2460 {RenderingQueue queue}) { | 2460 {RenderingQueue queue}) { |
2461 assert(isolate != null); | 2461 assert(isolate != null); |
2462 assert(frame != null); | 2462 assert(frame != null); |
2463 assert(scroller != null); | 2463 assert(scroller != null); |
2464 assert(instances != null); | 2464 assert(objects != null); |
2465 assert(scripts != null); | 2465 assert(scripts != null); |
2466 assert(events != null); | 2466 assert(events != null); |
2467 final DebuggerFrameElement e = document.createElement(tag.name); | 2467 final DebuggerFrameElement e = document.createElement(tag.name); |
2468 e._r = new RenderingScheduler(e, queue: queue); | 2468 e._r = new RenderingScheduler(e, queue: queue); |
2469 e._isolate = isolate; | 2469 e._isolate = isolate; |
2470 e._frame = frame; | 2470 e._frame = frame; |
2471 e._scroller = scroller; | 2471 e._scroller = scroller; |
2472 e._instances = instances; | 2472 e._objects = objects; |
2473 e._scripts = scripts; | 2473 e._scripts = scripts; |
2474 e._events = events; | 2474 e._events = events; |
2475 return e; | 2475 return e; |
2476 } | 2476 } |
2477 | 2477 |
2478 DebuggerFrameElement.created() : super.created(); | 2478 DebuggerFrameElement.created() : super.created(); |
2479 | 2479 |
2480 void render() { | 2480 void render() { |
2481 if (_pinned) { | 2481 if (_pinned) { |
2482 classes.add('shadow'); | 2482 classes.add('shadow'); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2530 ..children = [ | 2530 ..children = [ |
2531 new DivElement() | 2531 new DivElement() |
2532 ..classes = ['flex-item-script'] | 2532 ..classes = ['flex-item-script'] |
2533 ..children = _frame.function?.location == null | 2533 ..children = _frame.function?.location == null |
2534 ? const [] | 2534 ? const [] |
2535 : [ | 2535 : [ |
2536 new SourceInsetElement( | 2536 new SourceInsetElement( |
2537 _isolate, | 2537 _isolate, |
2538 _frame.function.location, | 2538 _frame.function.location, |
2539 _scripts, | 2539 _scripts, |
2540 _instances, | 2540 _objects, |
2541 _events, | 2541 _events, |
2542 currentPos: _frame.location.tokenPos, | 2542 currentPos: _frame.location.tokenPos, |
2543 variables: _frame.variables, | 2543 variables: _frame.variables, |
2544 inDebuggerContext: true, | 2544 inDebuggerContext: true, |
2545 queue: _r.queue) | 2545 queue: _r.queue) |
2546 ], | 2546 ], |
2547 new DivElement() | 2547 new DivElement() |
2548 ..classes = ['flex-item-vars'] | 2548 ..classes = ['flex-item-vars'] |
2549 ..children = [ | 2549 ..children = [ |
2550 _varsDiv = new DivElement() | 2550 _varsDiv = new DivElement() |
2551 ..classes = ['memberList', 'frameVars'] | 2551 ..classes = ['memberList', 'frameVars'] |
2552 ..children = ([ | 2552 ..children = ([ |
2553 new DivElement() | 2553 new DivElement() |
2554 ..classes = ['memberItem'] | 2554 ..classes = ['memberItem'] |
2555 ..children = homeMethodName == null | 2555 ..children = homeMethodName == null |
2556 ? const [] | 2556 ? const [] |
2557 : [ | 2557 : [ |
2558 new DivElement() | 2558 new DivElement() |
2559 ..classes = ['memberName'] | 2559 ..classes = ['memberName'] |
2560 ..text = homeMethodName, | 2560 ..text = homeMethodName, |
2561 new DivElement() | 2561 new DivElement() |
2562 ..classes = ['memberName'] | 2562 ..classes = ['memberName'] |
2563 ..children = [ | 2563 ..children = [ |
2564 anyRef(_isolate, homeMethod.dartOwner, | 2564 anyRef(_isolate, homeMethod.dartOwner, |
2565 _instances, | 2565 _objects, |
2566 queue: _r.queue) | 2566 queue: _r.queue) |
2567 ] | 2567 ] |
2568 ] | 2568 ] |
2569 ]..addAll(_frame.variables | 2569 ]..addAll(_frame.variables |
2570 .map((v) => new DivElement() | 2570 .map((v) => new DivElement() |
2571 ..classes = ['memberItem'] | 2571 ..classes = ['memberItem'] |
2572 ..children = [ | 2572 ..children = [ |
2573 new DivElement() | 2573 new DivElement() |
2574 ..classes = ['memberName'] | 2574 ..classes = ['memberName'] |
2575 ..text = v.name, | 2575 ..text = v.name, |
2576 new DivElement() | 2576 new DivElement() |
2577 ..classes = ['memberName'] | 2577 ..classes = ['memberName'] |
2578 ..children = [ | 2578 ..children = [ |
2579 anyRef(_isolate, v['value'], _instances, | 2579 anyRef(_isolate, v['value'], _objects, |
2580 queue: _r.queue) | 2580 queue: _r.queue) |
2581 ] | 2581 ] |
2582 ]) | 2582 ]) |
2583 .toList())) | 2583 .toList())) |
2584 ] | 2584 ] |
2585 ], | 2585 ], |
2586 new DivElement() | 2586 new DivElement() |
2587 ..classes = ['frameContractor'] | 2587 ..classes = ['frameContractor'] |
2588 ..children = [ | 2588 ..children = [ |
2589 collapseButton = new ButtonElement() | 2589 collapseButton = new ButtonElement() |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2769 class DebuggerMessageElement extends HtmlElement implements Renderable { | 2769 class DebuggerMessageElement extends HtmlElement implements Renderable { |
2770 static const tag = const Tag<DebuggerMessageElement>('debugger-message'); | 2770 static const tag = const Tag<DebuggerMessageElement>('debugger-message'); |
2771 | 2771 |
2772 RenderingScheduler<DebuggerMessageElement> _r; | 2772 RenderingScheduler<DebuggerMessageElement> _r; |
2773 | 2773 |
2774 Stream<RenderedEvent<DebuggerMessageElement>> get onRendered => _r.onRendered; | 2774 Stream<RenderedEvent<DebuggerMessageElement>> get onRendered => _r.onRendered; |
2775 | 2775 |
2776 S.Isolate _isolate; | 2776 S.Isolate _isolate; |
2777 S.ServiceMessage _message; | 2777 S.ServiceMessage _message; |
2778 S.ServiceObject _preview; | 2778 S.ServiceObject _preview; |
2779 M.InstanceRepository _instances; | 2779 M.ObjectRepository _objects; |
2780 M.ScriptRepository _scripts; | 2780 M.ScriptRepository _scripts; |
2781 M.EventRepository _events; | 2781 M.EventRepository _events; |
2782 | 2782 |
2783 // Is this the current message? | 2783 // Is this the current message? |
2784 bool _current = false; | 2784 bool _current = false; |
2785 | 2785 |
2786 // Has this message been pinned open? | 2786 // Has this message been pinned open? |
2787 bool _pinned = false; | 2787 bool _pinned = false; |
2788 | 2788 |
2789 bool _expanded = false; | 2789 bool _expanded = false; |
2790 | 2790 |
2791 factory DebuggerMessageElement( | 2791 factory DebuggerMessageElement( |
2792 S.Isolate isolate, | 2792 S.Isolate isolate, |
2793 S.ServiceMessage message, | 2793 S.ServiceMessage message, |
2794 M.InstanceRepository instances, | 2794 M.ObjectRepository objects, |
2795 M.ScriptRepository scripts, | 2795 M.ScriptRepository scripts, |
2796 M.EventRepository events, | 2796 M.EventRepository events, |
2797 {RenderingQueue queue}) { | 2797 {RenderingQueue queue}) { |
2798 assert(isolate != null); | 2798 assert(isolate != null); |
2799 assert(message != null); | 2799 assert(message != null); |
2800 assert(instances != null); | 2800 assert(objects != null); |
2801 assert(instances != null); | |
2802 assert(events != null); | 2801 assert(events != null); |
2803 final DebuggerMessageElement e = document.createElement(tag.name); | 2802 final DebuggerMessageElement e = document.createElement(tag.name); |
2804 e._r = new RenderingScheduler(e, queue: queue); | 2803 e._r = new RenderingScheduler(e, queue: queue); |
2805 e._isolate = isolate; | 2804 e._isolate = isolate; |
2806 e._message = message; | 2805 e._message = message; |
2807 e._instances = instances; | 2806 e._objects = objects; |
2808 e._scripts = scripts; | 2807 e._scripts = scripts; |
2809 e._events = events; | 2808 e._events = events; |
2810 return e; | 2809 return e; |
2811 } | 2810 } |
2812 | 2811 |
2813 DebuggerMessageElement.created() : super.created(); | 2812 DebuggerMessageElement.created() : super.created(); |
2814 | 2813 |
2815 void render() { | 2814 void render() { |
2816 if (_pinned) { | 2815 if (_pinned) { |
2817 classes.add('shadow'); | 2816 classes.add('shadow'); |
(...skipping 30 matching lines...) Expand all Loading... |
2848 ..children = [ | 2847 ..children = [ |
2849 new DivElement() | 2848 new DivElement() |
2850 ..classes = ['flex-item-script'] | 2849 ..classes = ['flex-item-script'] |
2851 ..children = _message.handler == null | 2850 ..children = _message.handler == null |
2852 ? const [] | 2851 ? const [] |
2853 : [ | 2852 : [ |
2854 new SourceInsetElement( | 2853 new SourceInsetElement( |
2855 _isolate, | 2854 _isolate, |
2856 _message.handler.location, | 2855 _message.handler.location, |
2857 _scripts, | 2856 _scripts, |
2858 _instances, | 2857 _objects, |
2859 _events, | 2858 _events, |
2860 inDebuggerContext: true, | 2859 inDebuggerContext: true, |
2861 queue: _r.queue) | 2860 queue: _r.queue) |
2862 ], | 2861 ], |
2863 new DivElement() | 2862 new DivElement() |
2864 ..classes = ['flex-item-vars'] | 2863 ..classes = ['flex-item-vars'] |
2865 ..children = [ | 2864 ..children = [ |
2866 new DivElement() | 2865 new DivElement() |
2867 ..classes = ['memberItem'] | 2866 ..classes = ['memberItem'] |
2868 ..children = [ | 2867 ..children = [ |
2869 new DivElement()..classes = ['memberName'], | 2868 new DivElement()..classes = ['memberName'], |
2870 new DivElement() | 2869 new DivElement() |
2871 ..classes = ['memberValue'] | 2870 ..classes = ['memberValue'] |
2872 ..children = ([ | 2871 ..children = ([ |
2873 previewButton = new ButtonElement() | 2872 previewButton = new ButtonElement() |
2874 ..text = 'preview' | 2873 ..text = 'preview' |
2875 ..onClick.listen((_) { | 2874 ..onClick.listen((_) { |
2876 previewButton.disabled = true; | 2875 previewButton.disabled = true; |
2877 }) | 2876 }) |
2878 ]..addAll(_preview == null | 2877 ]..addAll(_preview == null |
2879 ? const [] | 2878 ? const [] |
2880 : [ | 2879 : [ |
2881 anyRef(_isolate, _preview, _instances, | 2880 anyRef(_isolate, _preview, _objects, |
2882 queue: _r.queue) | 2881 queue: _r.queue) |
2883 ])) | 2882 ])) |
2884 ] | 2883 ] |
2885 ] | 2884 ] |
2886 ], | 2885 ], |
2887 new DivElement() | 2886 new DivElement() |
2888 ..classes = ['messageContractor'] | 2887 ..classes = ['messageContractor'] |
2889 ..children = [ | 2888 ..children = [ |
2890 collapseButton = new ButtonElement() | 2889 collapseButton = new ButtonElement() |
2891 ..onClick.listen((e) async { | 2890 ..onClick.listen((e) async { |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3066 span.classes.add('green'); | 3065 span.classes.add('green'); |
3067 span.appendText(line); | 3066 span.appendText(line); |
3068 span.appendText('\n'); | 3067 span.appendText('\n'); |
3069 children.add(span); | 3068 children.add(span); |
3070 } | 3069 } |
3071 if (autoScroll) { | 3070 if (autoScroll) { |
3072 _scrollToBottom(parent); | 3071 _scrollToBottom(parent); |
3073 } | 3072 } |
3074 } | 3073 } |
3075 | 3074 |
3076 void printRef( | 3075 void printRef(S.Isolate isolate, S.Instance ref, M.ObjectRepository objects, |
3077 S.Isolate isolate, S.Instance ref, M.InstanceRepository instances, | |
3078 {bool newline: true}) { | 3076 {bool newline: true}) { |
3079 _append(new InstanceRefElement(isolate, ref, instances, queue: app.queue)); | 3077 _append(new InstanceRefElement(isolate, ref, objects, queue: app.queue)); |
3080 if (newline) { | 3078 if (newline) { |
3081 this.newline(); | 3079 this.newline(); |
3082 } | 3080 } |
3083 } | 3081 } |
3084 | 3082 |
3085 void newline() { | 3083 void newline() { |
3086 _append(new BRElement()); | 3084 _append(new BRElement()); |
3087 } | 3085 } |
3088 | 3086 |
3089 void clear() { | 3087 void clear() { |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3345 ..setAttribute('height', '24') | 3343 ..setAttribute('height', '24') |
3346 ..children = [ | 3344 ..children = [ |
3347 new PathElement() | 3345 new PathElement() |
3348 ..setAttribute( | 3346 ..setAttribute( |
3349 'd', | 3347 'd', |
3350 'M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 ' | 3348 'M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 ' |
3351 '10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 ' | 3349 '10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 ' |
3352 '0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 ' | 3350 '0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 ' |
3353 '9h2V7h-2v2z') | 3351 '9h2V7h-2v2z') |
3354 ]; | 3352 ]; |
OLD | NEW |