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

Unified Diff: runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/instance_view.html

Issue 532063002: Teach the Observatory about Contexts. Factor out object graph information from the instance view. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
Index: runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/instance_view.html
diff --git a/runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/instance_view.html b/runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/instance_view.html
index fee5ce919026e09d7d3399b617d79f5d482050f6..22fa0ea35c932d255d4550c1547080444344c98e 100644
--- a/runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/instance_view.html
+++ b/runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/instance_view.html
@@ -9,6 +9,8 @@
<link rel="import" href="instance_ref.html">
<link rel="import" href="observatory_element.html">
<link rel="import" href="nav_bar.html">
+<link rel="import" href="object_common.html">
+<link rel="import" href="context_ref.html">
<polymer-element name="instance-view" extends="observatory-element">
<template>
@@ -35,88 +37,19 @@
<template if="{{ !instance.isType }}">
<h1>instance of {{ instance.clazz.name }}</h1>
</template>
+
+ <object-common object="{{ instance }}"></object-common>
+
<div class="memberList">
- <div class="memberItem">
- <div class="memberName">class</div>
- <div class="memberValue">
- <class-ref ref="{{ instance.clazz }}">
- </class-ref>
- </div>
- </div>
+ <div class="memberItem">&nbsp;</div>
+
<template if="{{ instance.valueAsString != null }}">
<div class="memberItem">
<div class="memberName">value</div>
<div class="memberValue">{{ instance.valueAsString }}</div>
</div>
</template>
- <div class="memberItem" title="Space for this object in memory">
- <div class="memberName">size</div>
- <div class="memberValue">{{ instance.size | formatSize }}</div>
- </div>
- <div class="memberItem" title="Space that would be reclaimed if references to this object were replaced with null">
- <div class="memberName">retained size</div>
- <div class="memberValue">
- <template if="{{ retainedBytes == null }}">
- <eval-link callback="{{ retainedSize }}"
- label="[calculate]">
- </eval-link>
- </template>
- <template if="{{ retainedBytes != null }}">
- {{ retainedBytes | formatSize }}
- </template>
- </div>
- </div>
- <div class="memberItem">
- <div class="memberName">retaining path</div>
- <div class="memberValue">
- <template if="{{ path == null }}">
- <eval-link callback="{{ retainingPath }}"
- label="[find]"
- expr="10">
- </eval-link>
- </template>
- <template if="{{ path != null }}">
- <template repeat="{{ element in path['elements'] }}">
- <div class="memberItem">
- <div class="memberName">[{{ element['index']}}]</div>
- <div class="memberValue">
- <any-service-ref ref="{{ element['value'] }}"></any-service-ref>
- <template if="{{ element['parentField'] != null }}">
- in <field-ref ref="{{ element['parentField'] }}"></field-ref> of
- </template>
- <template if="{{ element['parentListIndex'] != null }}">
- in [{{ element['parentListIndex'] }}] of
- </template>
- </div>
- </div>
- </template>
- <template if="{{ path['length'] > path['elements'].length }}">
- showing {{ path['elements'].length }} of {{ path['length'] }}
- <eval-link
- callback="{{ retainingPath }}"
- label="[find more]"
- expr="{{ path['elements'].length * 2 }}">
- </eval-link>
- </template>
- </template>
- </div>
- </div>
- <div class="memberItem" title="Objects which directly reference this object">
- <div class="memberName">inbound references</div>
- <div class="memberValue">
- <template if="{{ inboundReferences == null }}">
- <eval-link callback="{{ fetchInboundReferences }}"
- label="[find]"
- expr="100">
- </eval-link>
- </template>
- <template if="{{ inboundReferences != null }}">
- <template repeat="{{ reference in inboundReferences['references'] }}">
- <inbound-reference ref="{{ reference }}"></inbound-reference>
- </template>
- </template>
- </div>
- </div>
+
<template if="{{ instance.typeClass != null }}">
<div class="memberItem">
<div class="memberName">type class</div>
@@ -126,6 +59,7 @@
</div>
</div>
</template>
+
<template if="{{ instance.isClosure }}">
<div class="memberItem">
<div class="memberName">closure function</div>
@@ -135,8 +69,15 @@
</div>
</div>
</template>
-
- <div class="memberItem">&nbsp;</div>
+ <template if="{{ instance.isClosure }}">
+ <div class="memberItem">
+ <div class="memberName">closure context</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.closureCtxt }}">
+ </any-service-ref>
+ </div>
+ </div>
+ </template>
<div class="memberItem">
<div class="memberName">toString()</div>
@@ -150,6 +91,20 @@
<hr>
<div class="content">
+ <template if="{{ instance.nativeFields.isNotEmpty }}">
+ native fields ({{ instance.nativeFields.length }})
+ <curly-block expand="{{ instance.nativeFields.length <= 8 }}">
+ <div class="memberList">
+ <template repeat="{{ field in instance.nativeFields }}">
+ <div class="memberItem">
+ <div class="memberName">[{{ field['index']}}]</div>
+ <div class="memberValue">[{{ field['value']}}]</div>
+ </div>
+ </template>
+ </div>
+ </curly-block><br><br>
+ </template>
+
<template if="{{ instance.fields.isNotEmpty }}">
fields ({{ instance.fields.length }})
<curly-block expand="{{ instance.fields.length <= 8 }}">
@@ -168,20 +123,6 @@
</curly-block><br><br>
</template>
- <template if="{{ instance.nativeFields.isNotEmpty }}">
- native fields ({{ instance.nativeFields.length }})
- <curly-block expand="{{ instance.nativeFields.length <= 8 }}">
- <div class="memberList">
- <template repeat="{{ field in instance.nativeFields }}">
- <div class="memberItem">
- <div class="memberName">[{{ field['index']}}]</div>
- <div class="memberValue">[{{ field['value']}}]</div>
- </div>
- </template>
- </div>
- </curly-block><br><br>
- </template>
-
<template if="{{ instance.elements.isNotEmpty }}">
elements ({{ instance.elements.length }})
<curly-block expand="{{ instance.elements.length <= 8 }}">
@@ -190,8 +131,7 @@
<div class="memberItem">
<div class="memberName">[{{ element['index']}}]</div>
<div class="memberValue">
- <any-service-ref ref="{{ element['value'] }}">
- </instance-ref>
+ <any-service-ref ref="{{ element['value'] }}"></any-service-ref>
</div>
</div>
</template>
@@ -205,6 +145,7 @@
<div class="content">
<eval-box callback="{{ eval }}"></eval-box>
</div>
+
<br><br><br><br>
<br><br><br><br>

Powered by Google App Engine
This is Rietveld 408576698