Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 452 e.classes.add("emptyBreakpoint"); | 452 e.classes.add("emptyBreakpoint"); |
| 453 e.classes.add('noCopy'); | 453 e.classes.add('noCopy'); |
| 454 e.text = nbsp; | 454 e.text = nbsp; |
| 455 return e; | 455 return e; |
| 456 } | 456 } |
| 457 e.text = 'B'; | 457 e.text = 'B'; |
| 458 update() { | 458 update() { |
| 459 e.classes.clear(); | 459 e.classes.clear(); |
| 460 e.classes.add('noCopy'); | 460 e.classes.add('noCopy'); |
| 461 | 461 |
| 462 if (busy) { | 462 if (!line.possibleBpt) { |
| 463 e.classes.add("emptyBreakpoint"); | |
| 464 e.text = nbsp; | |
| 465 } else if (busy) { | |
| 463 e.classes.add("busyBreakpoint"); | 466 e.classes.add("busyBreakpoint"); |
| 464 } else { | 467 } else { |
| 465 if (line.breakpoints != null) { | 468 if (line.breakpoints != null) { |
| 466 if (line.breakpointResolved) { | 469 if (line.breakpointResolved) { |
| 467 e.classes.add("resolvedBreakpoint"); | 470 e.classes.add("resolvedBreakpoint"); |
| 468 } else { | 471 } else { |
| 469 e.classes.add("unresolvedBreakpoint"); | 472 e.classes.add("unresolvedBreakpoint"); |
| 470 } | 473 } |
| 471 } else { | 474 } else { |
| 472 e.classes.add("possibleBreakpoint"); | 475 e.classes.add("possibleBreakpoint"); |
| 473 } | 476 } |
| 474 } | 477 } |
| 475 } | 478 } |
| 476 line.changes.listen((_) => update()); | 479 line.changes.listen((_) => update()); |
| 477 e.onClick.listen((event) { | 480 e.onClick.listen((event) { |
| 478 if (busy) { | 481 if (busy) { |
| 479 return; | 482 return; |
| 480 } | 483 } |
| 481 busy = true; | 484 busy = true; |
| 482 if (line.breakpoints == null) { | 485 if (line.breakpoints == null) { |
| 483 // No breakpoint. Add it. | 486 // No breakpoint. Add it. |
| 484 line.script.isolate.addBreakpoint(line.script, line.line).then((_) { | 487 line.script.isolate.addBreakpoint(line.script, line.line).then((_) { |
| 485 busy = false; | 488 busy = false; |
| 486 update(); | 489 update(); |
| 490 }).catchError((e, st) { | |
| 491 bool suppressError = false; | |
| 492 if (e is ServerRpcException) { | |
| 493 ServerRpcException se = e; | |
| 494 suppressError = (se.code == ServerRpcException.kNoBreakAtLine); | |
| 495 } | |
| 496 if (!suppressError) { | |
| 497 return new Future.error(e, st); | |
|
Cutch
2015/05/13 17:50:09
Maybe cleaner as:
if (e is ServiceRpcException &&
turnidge
2015/05/14 17:53:43
Rewritten.
| |
| 498 } | |
| 487 }); | 499 }); |
| 488 } else { | 500 } else { |
| 489 // Existing breakpoint. Remove it. | 501 // Existing breakpoint. Remove it. |
| 490 List pending = []; | 502 List pending = []; |
| 491 for (var bpt in line.breakpoints) { | 503 for (var bpt in line.breakpoints) { |
| 492 pending.add(line.script.isolate.removeBreakpoint(bpt)); | 504 pending.add(line.script.isolate.removeBreakpoint(bpt)); |
| 493 } | 505 } |
| 494 Future.wait(pending).then((_) { | 506 Future.wait(pending).then((_) { |
| 495 busy = false; | 507 busy = false; |
| 496 update(); | 508 update(); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 556 } | 568 } |
| 557 | 569 |
| 558 // So blank lines are included when copying script to the clipboard. | 570 // So blank lines are included when copying script to the clipboard. |
| 559 e.append(span('\n')); | 571 e.append(span('\n')); |
| 560 | 572 |
| 561 return e; | 573 return e; |
| 562 } | 574 } |
| 563 | 575 |
| 564 ScriptInsetElement.created() : super.created(); | 576 ScriptInsetElement.created() : super.created(); |
| 565 } | 577 } |
| OLD | NEW |