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

Unified Diff: runtime/observatory/lib/src/elements/instance_view.html

Issue 2286503002: Converted Observatory error-view element (Closed)
Patch Set: Created 4 years, 4 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/observatory/lib/src/elements/instance_view.html
diff --git a/runtime/observatory/lib/src/elements/instance_view.html b/runtime/observatory/lib/src/elements/instance_view.html
index b7c9e137d0f64e6930a4cd254e339bd9b105fbce..3c592aa5bc29ac2281d88231faef5c581c3116dc 100644
--- a/runtime/observatory/lib/src/elements/instance_view.html
+++ b/runtime/observatory/lib/src/elements/instance_view.html
@@ -1,5 +1,4 @@
<link rel="import" href="../../../../packages/polymer/polymer.html">
-<link rel="import" href="error_view.html">
<link rel="import" href="eval_box.html">
<link rel="import" href="eval_link.html">
@@ -17,355 +16,349 @@
<nav-notify notifications="{{ app.notifications }}"></nav-notify>
</nav-bar>
- <template if="{{ instance.isError }}">
- <error-view error_obj="{{ instance['error'] }}"></error-view>
- </template>
+ <div class="content">
+ <template if="{{ instance.isAbstractType }}">
+ <h1>type {{ instance.name }}</h1>
+ </template>
+ <template if="{{ !instance.isAbstractType }}">
+ <h1>instance of {{ instance.clazz.name }}</h1>
+ </template>
- <template if="{{ !instance.isError }}">
- <div class="content">
- <template if="{{ instance.isAbstractType }}">
- <h1>type {{ instance.name }}</h1>
- </template>
- <template if="{{ !instance.isAbstractType }}">
- <h1>instance of {{ instance.clazz.name }}</h1>
- </template>
+ <object-common object="{{ instance }}"></object-common>
- <object-common object="{{ instance }}"></object-common>
+ <div class="memberList">
+ <div class="memberItem">&nbsp;</div>
- <div class="memberList">
- <div class="memberItem">&nbsp;</div>
-
- <template if="{{ instance.valueAsString != null }}">
- <div class="memberItem">
- <div class="memberName">value</div>
- <div class="memberValue">
- <pre>{{ instance.valueAsString }}</pre>
- </div>
+ <template if="{{ instance.valueAsString != null }}">
+ <div class="memberItem">
+ <div class="memberName">value</div>
+ <div class="memberValue">
+ <pre>{{ instance.valueAsString }}</pre>
</div>
- </template>
+ </div>
+ </template>
- <template if="{{ instance.isString }}">
- <div class="memberItem">
- <div class="memberName">valueAsLiteral</div>
- <div class="memberValue"> {{ asStringLiteral(instance.valueAsString, instance.valueAsStringIsTruncated) }}</div>
- </div>
- </template>
+ <template if="{{ instance.isString }}">
+ <div class="memberItem">
+ <div class="memberName">valueAsLiteral</div>
+ <div class="memberValue"> {{ asStringLiteral(instance.valueAsString, instance.valueAsStringIsTruncated) }}</div>
+ </div>
+ </template>
- <template if="{{ instance.typeClass != null }}">
- <div class="memberItem">
- <div class="memberName">type class</div>
- <div class="memberValue">
- <class-ref ref="{{ instance.typeClass }}">
- </class-ref>
- </div>
+ <template if="{{ instance.typeClass != null }}">
+ <div class="memberItem">
+ <div class="memberName">type class</div>
+ <div class="memberValue">
+ <class-ref ref="{{ instance.typeClass }}">
+ </class-ref>
</div>
- </template>
- <template if="{{ instance.typeArguments.length > 0 }}">
- <div class="memberItem">
- <div class="memberName">type arguments</div>
- <div class="memberValue">
- &lt;
- <template repeat="{{ index in instance.typeArguments['types'].asMap().keys }}">
- <instance-ref ref="{{ instance.typeArguments['types'][index] }}">
- </instance-ref>
- <template if="{{ index < instance.typeArguments['types'].length - 1 }}">
- ,
- </template>
+ </div>
+ </template>
+ <template if="{{ instance.typeArguments.length > 0 }}">
+ <div class="memberItem">
+ <div class="memberName">type arguments</div>
+ <div class="memberValue">
+ &lt;
+ <template repeat="{{ index in instance.typeArguments['types'].asMap().keys }}">
+ <instance-ref ref="{{ instance.typeArguments['types'][index] }}">
+ </instance-ref>
+ <template if="{{ index < instance.typeArguments['types'].length - 1 }}">
+ ,
</template>
- &gt;
- </div>
+ </template>
+ &gt;
</div>
- </template>
- <template if="{{ instance.parameterizedClass != null }}">
- <div class="memberItem">
- <div class="memberName">parameterized class</div>
- <div class="memberValue">
- <class-ref ref="{{ instance.parameterizedClass }}">
- </class-ref>
- </div>
+ </div>
+ </template>
+ <template if="{{ instance.parameterizedClass != null }}">
+ <div class="memberItem">
+ <div class="memberName">parameterized class</div>
+ <div class="memberValue">
+ <class-ref ref="{{ instance.parameterizedClass }}">
+ </class-ref>
</div>
- </template>
- <template if="{{ instance.parameterIndex != null }}">
- <div class="memberItem">
- <div class="memberName">parameter index</div>
- <div class="memberValue">
- {{ instance.parameterIndex }}
- </div>
+ </div>
+ </template>
+ <template if="{{ instance.parameterIndex != null }}">
+ <div class="memberItem">
+ <div class="memberName">parameter index</div>
+ <div class="memberValue">
+ {{ instance.parameterIndex }}
</div>
- </template>
- <template if="{{ instance.targetType != null }}">
- <div class="memberItem">
- <div class="memberName">target type</div>
- <div class="memberValue">
- <instance-ref ref="{{ instance.targetType }}">
- </instance-ref>
- </div>
+ </div>
+ </template>
+ <template if="{{ instance.targetType != null }}">
+ <div class="memberItem">
+ <div class="memberName">target type</div>
+ <div class="memberValue">
+ <instance-ref ref="{{ instance.targetType }}">
+ </instance-ref>
</div>
- </template>
- <template if="{{ instance.bound != null }}">
- <div class="memberItem">
- <div class="memberName">bound</div>
- <div class="memberValue">
- <instance-ref ref="{{ instance.bound }}">
- </instance-ref>
- </div>
+ </div>
+ </template>
+ <template if="{{ instance.bound != null }}">
+ <div class="memberItem">
+ <div class="memberName">bound</div>
+ <div class="memberValue">
+ <instance-ref ref="{{ instance.bound }}">
+ </instance-ref>
</div>
- </template>
+ </div>
+ </template>
- <template if="{{ instance.isClosure }}">
- <div class="memberItem">
- <div class="memberName">closure function</div>
- <div class="memberValue">
- <function-ref ref="{{ instance.closureFunction }}">
- </function-ref>
- </div>
- </div>
- <div class="memberItem">
- <div class="memberName">closure context</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.context }}">
- </any-service-ref>
- </div>
- </div>
- <div class="memberItem">
- <div class="memberName">closure breakpoint</div>
- <div class="memberValue">
- <template if="{{ instance.activationBreakpoint == null }}">
- <action-link callback="{{ setBreakOnActivation }}"
- label="break on activation">
- </action-link>
- </template>
- <template if="{{ instance.activationBreakpoint != null }}">
- {{ instance.activationBreakpoint.toString() }}
- <action-link callback="{{ clearBreakOnActivation }}"
- label="remove">
- </action-link>
- </template>
- </div>
+ <template if="{{ instance.isClosure }}">
+ <div class="memberItem">
+ <div class="memberName">closure function</div>
+ <div class="memberValue">
+ <function-ref ref="{{ instance.closureFunction }}">
+ </function-ref>
</div>
- </template>
-
+ </div>
<div class="memberItem">
- <div class="memberName">toString()</div>
+ <div class="memberName">closure context</div>
<div class="memberValue">
- <eval-link callback="{{ evaluate }}" expr="toString()"></eval-link>
+ <any-service-ref ref="{{ instance.context }}">
+ </any-service-ref>
</div>
</div>
<div class="memberItem">
- <div class="memberName">runtimeType</div>
+ <div class="memberName">closure breakpoint</div>
<div class="memberValue">
- <eval-link callback="{{ evaluate }}" expr="runtimeType"></eval-link>
+ <template if="{{ instance.activationBreakpoint == null }}">
+ <action-link callback="{{ setBreakOnActivation }}"
+ label="break on activation">
+ </action-link>
+ </template>
+ <template if="{{ instance.activationBreakpoint != null }}">
+ {{ instance.activationBreakpoint.toString() }}
+ <action-link callback="{{ clearBreakOnActivation }}"
+ label="remove">
+ </action-link>
+ </template>
</div>
</div>
+ </template>
+
+ <div class="memberItem">
+ <div class="memberName">toString()</div>
+ <div class="memberValue">
+ <eval-link callback="{{ evaluate }}" expr="toString()"></eval-link>
+ </div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">runtimeType</div>
+ <div class="memberValue">
+ <eval-link callback="{{ evaluate }}" expr="runtimeType"></eval-link>
+ </div>
</div>
</div>
+ </div>
- <hr>
+ <hr>
- <div class="content">
- <eval-box callback="{{ evaluate }}"></eval-box>
- </div>
+ <div class="content">
+ <eval-box callback="{{ evaluate }}"></eval-box>
+ </div>
- <hr>
+ <hr>
- <div class="content">
- <template if="{{ instance.nativeFields.isNotEmpty }}">
- native fields ({{ instance.nativeFields.length }})
- <curly-block expand="{{ instance.nativeFields.length <= 100 }}">
- <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 <= 100 }}">
- <div class="memberList">
- <template repeat="{{ field in instance.fields }}">
- <div class="memberItem">
- <div class="memberName">
- <field-ref ref="{{ field.decl }}"></field-ref>
- </div>
- <div class="memberValue">
- <any-service-ref ref="{{ field.value }}"></any-service-ref>
- </div>
- </div>
- </template>
- </div>
- </curly-block><br><br>
- </template>
+ <div class="content">
+ <template if="{{ instance.nativeFields.isNotEmpty }}">
+ native fields ({{ instance.nativeFields.length }})
+ <curly-block expand="{{ instance.nativeFields.length <= 100 }}">
+ <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.length }})
- <curly-block expand="{{ instance.elements.length <= 100 }}">
- <div class="memberList">
- <template repeat="{{ index in instance.elements.asMap().keys }}">
- <div class="memberItem">
- <div class="memberName">[{{ index }}]</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.elements[index] }}">
- </any-service-ref>
- </div>
+ <template if="{{ instance.fields.isNotEmpty }}">
+ fields ({{ instance.fields.length }})
+ <curly-block expand="{{ instance.fields.length <= 100 }}">
+ <div class="memberList">
+ <template repeat="{{ field in instance.fields }}">
+ <div class="memberItem">
+ <div class="memberName">
+ <field-ref ref="{{ field.decl }}"></field-ref>
</div>
- </template>
- <template if="{{ instance.length != instance.elements.length }}">
- <div class="memberItem">
- <div class="memberName">...</div>
- <div class="memberValue">
- <em>{{ instance.length - instance.elements.length }} omitted elements</em>
- </div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ field.value }}"></any-service-ref>
</div>
- </template>
- </div>
- </curly-block><br><br>
- </template>
+ </div>
+ </template>
+ </div>
+ </curly-block><br><br>
+ </template>
- <template if="{{ instance.associations.isNotEmpty }}">
- associations ({{ instance.length }})
- <curly-block expand="{{ instance.associations.length <= 100 }}">
- <div class="memberList">
- <template repeat="{{ association in instance.associations }}">
- <div class="memberItem">
- <div class="memberValue">
- [<any-service-ref ref="{{ association.key }}"></any-service-ref>]
- </div>
- <div class="memberValue">
- <any-service-ref ref="{{ association.value }}"></any-service-ref>
- </div>
+ <template if="{{ instance.elements.isNotEmpty }}">
+ elements ({{ instance.length }})
+ <curly-block expand="{{ instance.elements.length <= 100 }}">
+ <div class="memberList">
+ <template repeat="{{ index in instance.elements.asMap().keys }}">
+ <div class="memberItem">
+ <div class="memberName">[{{ index }}]</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.elements[index] }}">
+ </any-service-ref>
</div>
- </template>
- <template if="{{ instance.length != instance.associations.length }}">
- <div class="memberItem">
- <div class="memberName">...</div>
- <div class="memberValue">
- <em>{{ instance.length - instance.associations.length }} omitted associations</em>
- </div>
+ </div>
+ </template>
+ <template if="{{ instance.length != instance.elements.length }}">
rmacnak 2016/08/26 17:05:26 indent
+ <div class="memberItem">
+ <div class="memberName">...</div>
+ <div class="memberValue">
+ <em>{{ instance.length - instance.elements.length }} omitted elements</em>
</div>
- </template>
- </div>
- </curly-block><br><br>
- </template>
+ </div>
+ </template>
+ </div>
+ </curly-block><br><br>
+ </template>
- <template if="{{ instance.typedElements.isNotEmpty }}">
- elements ({{ instance.length }})
- <curly-block expand="{{ instance.typedElements.length <= 100 }}">
- <div class="memberList">
- <template repeat="{{ index in instance.typedElements.asMap().keys }}">
- <div class="memberItem">
- <div class="memberName">[{{ index }}]</div>
- <div class="memberValue">{{ instance.typedElements[index].toString() }}</div>
+ <template if="{{ instance.associations.isNotEmpty }}">
+ associations ({{ instance.length }})
+ <curly-block expand="{{ instance.associations.length <= 100 }}">
+ <div class="memberList">
+ <template repeat="{{ association in instance.associations }}">
+ <div class="memberItem">
+ <div class="memberValue">
+ [<any-service-ref ref="{{ association.key }}"></any-service-ref>]
</div>
- </template>
- <template if="{{ instance.length != instance.typedElements.length }}">
- <div class="memberItem">
- <div class="memberName">...</div>
- <div class="memberValue">
- <em>{{ instance.length - instance.elements.length }} omitted elements</em>
- </div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ association.value }}"></any-service-ref>
</div>
- </template>
- </div>
- </curly-block><br><br>
- </template>
-
- <template if="{{ instance.isRegExp }}">
- <div class="memberList">
- <div class="memberItem">
- <div class="memberName">pattern</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.pattern }}"></any-service-ref>
</div>
- </div>
- <div class="memberItem">
- <div class="memberName">isCaseSensitive</div>
- <div class="memberValue">{{ instance.isCaseSensitive }}</div>
- </div>
- <div class="memberItem">
- <div class="memberName">isMultiLine</div>
- <div class="memberValue">{{ instance.isMultiLine }}</div>
- </div>
- <div class="memberItem">
- <div class="memberName">oneByteFunction</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.oneByteFunction }}"></any-service-ref>
+ </template>
+ <template if="{{ instance.length != instance.associations.length }}">
rmacnak 2016/08/26 17:05:26 indent
+ <div class="memberItem">
+ <div class="memberName">...</div>
+ <div class="memberValue">
+ <em>{{ instance.length - instance.associations.length }} omitted associations</em>
+ </div>
</div>
- </div>
- <div class="memberItem">
- <div class="memberName">twoByteFunction</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.twoByteFunction }}"></any-service-ref>
+ </template>
+ </div>
+ </curly-block><br><br>
+ </template>
+
+ <template if="{{ instance.typedElements.isNotEmpty }}">
+ elements ({{ instance.length }})
+ <curly-block expand="{{ instance.typedElements.length <= 100 }}">
+ <div class="memberList">
+ <template repeat="{{ index in instance.typedElements.asMap().keys }}">
+ <div class="memberItem">
+ <div class="memberName">[{{ index }}]</div>
+ <div class="memberValue">{{ instance.typedElements[index].toString() }}</div>
</div>
- </div>
- <div class="memberItem">
- <div class="memberName">externalOneByteFunction</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.externalOneByteFunction }}"></any-service-ref>
+ </template>
+ <template if="{{ instance.length != instance.typedElements.length }}">
+ <div class="memberItem">
+ <div class="memberName">...</div>
+ <div class="memberValue">
+ <em>{{ instance.length - instance.elements.length }} omitted elements</em>
+ </div>
</div>
+ </template>
+ </div>
+ </curly-block><br><br>
+ </template>
+
+ <template if="{{ instance.isRegExp }}">
+ <div class="memberList">
+ <div class="memberItem">
+ <div class="memberName">pattern</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.pattern }}"></any-service-ref>
</div>
- <div class="memberItem">
- <div class="memberName">externalTwoByteFunction</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.externalTwoByteFunction }}"></any-service-ref>
- </div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">isCaseSensitive</div>
+ <div class="memberValue">{{ instance.isCaseSensitive }}</div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">isMultiLine</div>
+ <div class="memberValue">{{ instance.isMultiLine }}</div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">oneByteFunction</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.oneByteFunction }}"></any-service-ref>
</div>
- <div class="memberItem">
- <div class="memberName">oneByteBytecode</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.oneByteBytecode }}"></any-service-ref>
- </div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">twoByteFunction</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.twoByteFunction }}"></any-service-ref>
</div>
- <div class="memberItem">
- <div class="memberName">twoByteBytecode</div>
- <div class="memberValue">
- <any-service-ref ref="{{ instance.twoByteBytecode }}"></any-service-ref>
- </div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">externalOneByteFunction</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.externalOneByteFunction }}"></any-service-ref>
</div>
</div>
- </template>
-
- <template if="{{ instance.isMirrorReference }}">
<div class="memberItem">
- <div class="memberName">referent</div>
+ <div class="memberName">externalTwoByteFunction</div>
<div class="memberValue">
- <any-service-ref ref="{{ instance.referent }}">
- </any-service-ref>
+ <any-service-ref ref="{{ instance.externalTwoByteFunction }}"></any-service-ref>
</div>
</div>
- </template>
-
- <template if="{{ instance.isWeakProperty }}">
<div class="memberItem">
- <div class="memberName">key</div>
+ <div class="memberName">oneByteBytecode</div>
<div class="memberValue">
- <any-service-ref ref="{{ instance.key }}"></any-service-ref>
+ <any-service-ref ref="{{ instance.oneByteBytecode }}"></any-service-ref>
</div>
</div>
<div class="memberItem">
- <div class="memberName">value</div>
+ <div class="memberName">twoByteBytecode</div>
<div class="memberValue">
- <any-service-ref ref="{{ instance.value }}"></any-service-ref>
+ <any-service-ref ref="{{ instance.twoByteBytecode }}"></any-service-ref>
</div>
</div>
- </template>
+ </div>
+ </template>
- </div>
+ <template if="{{ instance.isMirrorReference }}">
+ <div class="memberItem">
+ <div class="memberName">referent</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.referent }}">
+ </any-service-ref>
+ </div>
+ </div>
+ </template>
- <div class="content-centered-big">
- <template if="{{ instance.isClosure }}">
- <source-inset location="{{ instance.closureFunction.location }}"></source-inset>
- </template>
- <template if="{{ instance.typeClass != null }}">
- <source-inset location="{{ instance.typeClass.location }}"></source-inset>
- </template>
- </div>
+ <template if="{{ instance.isWeakProperty }}">
+ <div class="memberItem">
+ <div class="memberName">key</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.key }}"></any-service-ref>
+ </div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">value</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ instance.value }}"></any-service-ref>
+ </div>
+ </div>
+ </template>
+
+ </div>
+
+ <div class="content-centered-big">
+ <template if="{{ instance.isClosure }}">
+ <source-inset location="{{ instance.closureFunction.location }}"></source-inset>
+ </template>
+ <template if="{{ instance.typeClass != null }}">
+ <source-inset location="{{ instance.typeClass.location }}"></source-inset>
+ </template>
+ </div>
- </template>
<view-footer></view-footer>
</template>
</polymer-element>

Powered by Google App Engine
This is Rietveld 408576698