Index: runtime/observatory/lib/src/app/page.dart |
diff --git a/runtime/observatory/lib/src/app/page.dart b/runtime/observatory/lib/src/app/page.dart |
index cb409a98dfd6f3372cf641c23e295e09ceda2427..182eae4469978933dd92af29dd8f28f9bfe66f5e 100644 |
--- a/runtime/observatory/lib/src/app/page.dart |
+++ b/runtime/observatory/lib/src/app/page.dart |
@@ -6,8 +6,11 @@ part of app; |
AllocationProfileRepository _allocationProfileRepository |
= new AllocationProfileRepository(); |
+ContextRepository _contextRepository = new ContextRepository(); |
HeapSnapshotRepository _heapSnapshotRepository |
= new HeapSnapshotRepository(); |
+InboundReferencesRepository _inboundReferencesRepository |
+ = new InboundReferencesRepository(); |
InstanceRepository _instanceRepository = new InstanceRepository(); |
IsolateSampleProfileRepository _isolateSampleProfileRepository |
= new IsolateSampleProfileRepository(); |
@@ -18,6 +21,11 @@ class IsolateNotFound implements Exception { |
IsolateNotFound(this.isolateId); |
String toString() => "IsolateNotFound: $isolateId"; |
} |
+RetainedSizeRepository _retainedSizeRepository = new RetainedSizeRepository(); |
+ReachableSizeRepository _reachableSizeRepository |
+ = new ReachableSizeRepository(); |
+RetainingPathRepository _retainingPathRepository |
+ = new RetainingPathRepository(); |
/// A [Page] controls the user interface of Observatory. At any given time |
/// one page will be the current page. Pages are registered at startup. |
@@ -148,8 +156,10 @@ class FlagsPage extends SimplePage { |
} |
} |
-class InspectPage extends SimplePage { |
- InspectPage(app) : super('inspect', 'service-view', app); |
+class InspectPage extends MatchingPage { |
+ InspectPage(app) : super('inspect', app); |
+ |
+ DivElement container = new DivElement(); |
void _visit(Uri uri) { |
super._visit(uri); |
@@ -163,10 +173,30 @@ class InspectPage extends SimplePage { |
}); |
} |
+ void onInstall() { |
+ if (element == null) { |
+ element = container; |
+ } |
+ assert(element != null); |
+ } |
+ |
void _visitObject(obj) { |
- if (element != null) { |
- ServiceObjectViewElement serviceElement = element; |
+ if (obj is Context) { |
+ container.children = [ |
+ new ContextViewElement(app.vm, obj.isolate, obj, app.events, |
+ app.notifications, |
+ _contextRepository, |
+ _retainedSizeRepository, |
+ _reachableSizeRepository, |
+ _inboundReferencesRepository, |
+ _retainingPathRepository, |
+ _instanceRepository, |
+ queue: app.queue) |
+ ]; |
+ } else { |
+ ServiceObjectViewElement serviceElement =new Element.tag('service-view'); |
serviceElement.object = obj; |
+ container.children = [serviceElement]; |
} |
} |
} |