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

Side by Side Diff: runtime/observatory/lib/src/elements/script_inset.dart

Issue 1120133002: Rework error handling in the service protocol and in Observatory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix tests Created 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 script_inset_element; 5 library script_inset_element;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'observatory_element.dart'; 9 import 'observatory_element.dart';
10 import 'service_ref.dart'; 10 import 'service_ref.dart';
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 r.append(cell(entry.count.toString())); 152 r.append(cell(entry.count.toString()));
153 r.append(cell(serviceRef(entry.target))); 153 r.append(cell(serviceRef(entry.target)));
154 details.append(r); 154 details.append(r);
155 } 155 }
156 } 156 }
157 return details; 157 return details;
158 }); 158 });
159 } 159 }
160 } 160 }
161 161
162 class DeclarationAnnotation extends Annotation { 162 abstract class DeclarationAnnotation extends Annotation {
163 DeclarationAnnotation(decl) { 163 DeclarationAnnotation(decl) {
164 assert(decl.loaded); 164 assert(decl.loaded);
165 var script = decl.script; 165 var script = decl.script;
166 line = script.tokenToLine(decl.tokenPos); 166 line = script.tokenToLine(decl.tokenPos);
167 columnStart = script.tokenToCol(decl.tokenPos); 167 columnStart = script.tokenToCol(decl.tokenPos);
168 if ((line == null) || (columnStart == null)) { 168 if ((line == null) || (columnStart == null)) {
169 line = 0; 169 line = 0;
170 columnStart = 0; 170 columnStart = 0;
171 columnStop = 0; 171 columnStop = 0;
172 } else { 172 } else {
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 e.classes.add("emptyBreakpoint"); 621 e.classes.add("emptyBreakpoint");
622 e.classes.add('noCopy'); 622 e.classes.add('noCopy');
623 e.text = nbsp; 623 e.text = nbsp;
624 return e; 624 return e;
625 } 625 }
626 e.text = 'B'; 626 e.text = 'B';
627 update() { 627 update() {
628 e.classes.clear(); 628 e.classes.clear();
629 e.classes.add('noCopy'); 629 e.classes.add('noCopy');
630 630
631 if (busy) { 631 if (!line.possibleBpt) {
632 e.classes.add("emptyBreakpoint");
633 e.text = nbsp;
634 } else if (busy) {
632 e.classes.add("busyBreakpoint"); 635 e.classes.add("busyBreakpoint");
633 } else { 636 } else {
634 if (line.breakpoints != null) { 637 if (line.breakpoints != null) {
635 if (line.breakpointResolved) { 638 if (line.breakpointResolved) {
636 e.classes.add("resolvedBreakpoint"); 639 e.classes.add("resolvedBreakpoint");
637 } else { 640 } else {
638 e.classes.add("unresolvedBreakpoint"); 641 e.classes.add("unresolvedBreakpoint");
639 } 642 }
640 } else { 643 } else {
641 e.classes.add("possibleBreakpoint"); 644 e.classes.add("possibleBreakpoint");
642 } 645 }
643 } 646 }
644 } 647 }
645 line.changes.listen((_) => update()); 648 line.changes.listen((_) => update());
646 e.onClick.listen((event) { 649 e.onClick.listen((event) {
647 if (busy) { 650 if (busy) {
648 return; 651 return;
649 } 652 }
650 busy = true; 653 busy = true;
651 if (line.breakpoints == null) { 654 if (line.breakpoints == null) {
652 // No breakpoint. Add it. 655 // No breakpoint. Add it.
653 line.script.isolate.addBreakpoint(line.script, line.line).then((_) { 656 line.script.isolate.addBreakpoint(line.script, line.line)
654 busy = false; 657 .catchError((e, st) {
655 update(); 658 if (e is! ServerRpcException ||
656 }); 659 (e as ServerRpcException).code !=
660 ServerRpcException.kNoBreakAtLine) {
661 app.handleException(e, st);
662 }})
663 .whenComplete(() {
664 busy = false;
665 update();
666 });
657 } else { 667 } else {
658 // Existing breakpoint. Remove it. 668 // Existing breakpoint. Remove it.
659 List pending = []; 669 List pending = [];
660 for (var bpt in line.breakpoints) { 670 for (var bpt in line.breakpoints) {
661 pending.add(line.script.isolate.removeBreakpoint(bpt)); 671 pending.add(line.script.isolate.removeBreakpoint(bpt));
662 } 672 }
663 Future.wait(pending).then((_) { 673 Future.wait(pending).then((_) {
664 busy = false; 674 busy = false;
665 update(); 675 update();
666 }); 676 });
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 e.append(span('\n')); 738 e.append(span('\n'));
729 739
730 return e; 740 return e;
731 } 741 }
732 742
733 ScriptInsetElement.created() 743 ScriptInsetElement.created()
734 : super.created() { 744 : super.created() {
735 _updateTask = new Task(update); 745 _updateTask = new Task(update);
736 } 746 }
737 } 747 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/object_view.dart ('k') | runtime/observatory/lib/src/elements/script_view.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698