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

Side by Side Diff: runtime/observatory/lib/src/app/page.dart

Issue 2310003004: Removed polymer & mirror from Observatory (Closed)
Patch Set: Fixed crash in heap-map page Created 4 years, 3 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
OLDNEW
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 part of app; 5 part of app;
6 6
7 final _allocationProfileRepository = new AllocationProfileRepository(); 7 final _allocationProfileRepository = new AllocationProfileRepository();
8 final _breakpointRepository = new BreakpointRepository(); 8 final _breakpointRepository = new BreakpointRepository();
9 final _classSampleProfileRepository = new ClassSampleProfileRepository(); 9 final _classSampleProfileRepository = new ClassSampleProfileRepository();
10 final _classRepository = new ClassRepository(); 10 final _classRepository = new ClassRepository();
(...skipping 30 matching lines...) Expand all
41 RetainedSizeRepository _retainedSizeRepository = new RetainedSizeRepository(); 41 RetainedSizeRepository _retainedSizeRepository = new RetainedSizeRepository();
42 ReachableSizeRepository _reachableSizeRepository 42 ReachableSizeRepository _reachableSizeRepository
43 = new ReachableSizeRepository(); 43 = new ReachableSizeRepository();
44 RetainingPathRepository _retainingPathRepository 44 RetainingPathRepository _retainingPathRepository
45 = new RetainingPathRepository(); 45 = new RetainingPathRepository();
46 46
47 /// A [Page] controls the user interface of Observatory. At any given time 47 /// A [Page] controls the user interface of Observatory. At any given time
48 /// one page will be the current page. Pages are registered at startup. 48 /// one page will be the current page. Pages are registered at startup.
49 /// When the user navigates within the application, each page is asked if it 49 /// When the user navigates within the application, each page is asked if it
50 /// can handle the current location, the first page to say yes, wins. 50 /// can handle the current location, the first page to say yes, wins.
51 abstract class Page extends Observable { 51 abstract class Page {
52 final ObservatoryApplication app; 52 final ObservatoryApplication app;
53 final ObservableMap<String, String> internalArguments = 53 final Map<String, String> internalArguments = <String, String>{};
54 new ObservableMap<String, String>(); 54 HtmlElement element;
55 @observable HtmlElement element;
56 55
57 Page(this.app); 56 Page(this.app);
58 57
59 /// Called when the page is installed, this callback must initialize 58 /// Called when the page is installed, this callback must initialize
60 /// [element]. 59 /// [element].
61 void onInstall(); 60 void onInstall();
62 61
63 /// Called when the page is uninstalled, this callback must clear 62 /// Called when the page is uninstalled, this callback must clear
64 /// [element]. 63 /// [element].
65 void onUninstall() { 64 void onUninstall() {
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 450
452 void onInstall() { 451 void onInstall() {
453 if (element == null) { 452 if (element == null) {
454 element = container; 453 element = container;
455 } 454 }
456 assert(element != null); 455 assert(element != null);
457 } 456 }
458 457
459 @override 458 @override
460 void onUninstall() { 459 void onUninstall() {
461 assert(element != null); 460 super.onUninstall();
462 element.children = const []; 461 container.children = const [];
463 } 462 }
464 } 463 }
465 464
466 class ObjectStorePage extends MatchingPage { 465 class ObjectStorePage extends MatchingPage {
467 ObjectStorePage(app) : super('object-store', app); 466 ObjectStorePage(app) : super('object-store', app);
468 467
469 final DivElement container = new DivElement(); 468 final DivElement container = new DivElement();
470 469
471 void _visit(Uri uri) { 470 void _visit(Uri uri) {
472 super._visit(uri); 471 super._visit(uri);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 }); 553 });
555 } 554 }
556 555
557 void onInstall() { 556 void onInstall() {
558 if (element == null) { 557 if (element == null) {
559 element = container; 558 element = container;
560 } 559 }
561 app.startGCEventListener(); 560 app.startGCEventListener();
562 } 561 }
563 562
563 @override
564 void onUninstall() { 564 void onUninstall() {
565 super.onUninstall(); 565 super.onUninstall();
566 app.stopGCEventListener(); 566 app.stopGCEventListener();
567 container.children = const [];
567 } 568 }
568 } 569 }
569 570
570 class PortsPage extends MatchingPage { 571 class PortsPage extends MatchingPage {
571 PortsPage(app) : super('ports', app); 572 PortsPage(app) : super('ports', app);
572 573
573 final DivElement container = new DivElement(); 574 final DivElement container = new DivElement();
574 575
575 void _visit(Uri uri) { 576 void _visit(Uri uri) {
576 super._visit(uri); 577 super._visit(uri);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 667
667 @override 668 @override
668 void onInstall() { 669 void onInstall() {
669 element = container; 670 element = container;
670 container.children = const []; 671 container.children = const [];
671 app.startLoggingEventListener(); 672 app.startLoggingEventListener();
672 } 673 }
673 674
674 @override 675 @override
675 void onUninstall() { 676 void onUninstall() {
677 super.onUninstall();
678 container.children = const [];
676 app.stopLoggingEventListener(); 679 app.stopLoggingEventListener();
677 } 680 }
678 681
679 void _visit(Uri uri) { 682 void _visit(Uri uri) {
680 assert(element != null); 683 assert(element != null);
681 assert(canVisit(uri)); 684 assert(canVisit(uri));
682 getIsolate(uri).then((isolate) { 685 getIsolate(uri).then((isolate) {
683 container.children = [ 686 container.children = [
684 new LoggingPageElement(app.vm, isolate, app.events, 687 new LoggingPageElement(app.vm, isolate, app.events,
685 app.notifications, queue: app.queue) 688 app.notifications, queue: app.queue)
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 } 776 }
774 777
775 void onInstall() { 778 void onInstall() {
776 if (element == null) { 779 if (element == null) {
777 element = container; 780 element = container;
778 } 781 }
779 } 782 }
780 783
781 @override 784 @override
782 void onUninstall() { 785 void onUninstall() {
786 super.onUninstall();
783 _metricRepository.stopSampling(lastIsolate); 787 _metricRepository.stopSampling(lastIsolate);
788 container.children = const [];
784 } 789 }
785 } 790 }
786 791
787 class TimelinePage extends Page { 792 class TimelinePage extends Page {
788 TimelinePage(app) : super(app); 793 TimelinePage(app) : super(app);
789 794
790 void onInstall() { 795 void onInstall() {
791 element = new TimelinePageElement(app.vm, app.events, app.notifications, 796 element = new TimelinePageElement(app.vm, app.events, app.notifications,
792 queue: app.queue); 797 queue: app.queue);
793 } 798 }
794 799
795 void _visit(Uri uri) { 800 void _visit(Uri uri) {
796 assert(canVisit(uri)); 801 assert(canVisit(uri));
797 } 802 }
798 803
799 bool canVisit(Uri uri) => uri.path == 'timeline'; 804 bool canVisit(Uri uri) => uri.path == 'timeline';
800 } 805 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/app/location_manager.dart ('k') | runtime/observatory/lib/src/app/view_model.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698