OLD | NEW |
1 <head> | 1 <head> |
| 2 <link rel="import" href="action_link.html"> |
2 <link rel="import" href="curly_block.html"> | 3 <link rel="import" href="curly_block.html"> |
3 <link rel="import" href="eval_box.html"> | 4 <link rel="import" href="eval_box.html"> |
4 <link rel="import" href="function_ref.html"> | 5 <link rel="import" href="function_ref.html"> |
| 6 <link rel="import" href="isolate_summary.html"> |
5 <link rel="import" href="library_ref.html"> | 7 <link rel="import" href="library_ref.html"> |
6 <link rel="import" href="nav_bar.html"> | 8 <link rel="import" href="nav_bar.html"> |
7 <link rel="import" href="observatory_element.html"> | 9 <link rel="import" href="observatory_element.html"> |
8 <link rel="import" href="script_inset.html"> | 10 <link rel="import" href="script_inset.html"> |
9 <link rel="import" href="script_ref.html"> | 11 <link rel="import" href="script_ref.html"> |
10 </head> | 12 </head> |
11 <polymer-element name="isolate-view" extends="observatory-element"> | 13 <polymer-element name="isolate-view" extends="observatory-element"> |
12 <template> | 14 <template> |
13 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs
s"> | 15 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs
s"> |
14 <style> | 16 <style> |
15 .sourceInset { | 17 .sourceInset { |
16 padding-left: 15%; | 18 padding-left: 15%; |
17 padding-right: 15%; | 19 padding-right: 15%; |
18 } | 20 } |
19 .miniProfileChart { | 21 .miniProfileChart { |
20 width: 80%; | 22 width: 80%; |
21 } | 23 } |
22 </style> | 24 </style> |
23 | 25 |
24 <nav-bar> | 26 <nav-bar> |
25 <top-nav-menu></top-nav-menu> | 27 <top-nav-menu></top-nav-menu> |
26 <isolate-nav-menu isolate="{{ isolate }}" last="{{ true }}"> | 28 <isolate-nav-menu isolate="{{ isolate }}" last="{{ true }}"> |
27 </isolate-nav-menu> | 29 </isolate-nav-menu> |
28 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 30 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
29 </nav-bar> | 31 </nav-bar> |
30 | 32 |
31 <div class="content"> | 33 <div class="content"> |
32 <h1>isolate '{{ isolate.name }}'</h1> | 34 <h1>isolate '{{ isolate.name }}'</h1> |
33 <div class="memberList"> | 35 </div> |
34 <div class="memberItem"> | |
35 <div class="memberName">status</div> | |
36 <div class="memberValue"> | |
37 <template if="{{ isolate.pausedOnStart }}"> | |
38 <strong style="color:darkred;">paused</strong> @ isolate start | |
39 <span style="padding-left:20px;"> | |
40 [<a on-click="{{ resume }}">resume</a>] | |
41 </span> | |
42 </template> | |
43 | 36 |
44 <template if="{{ isolate.pausedOnExit }}"> | 37 <br> |
45 <strong style="color:darkred;">paused</strong> @ isolate exit | 38 <div class="flex-row"> |
46 <span style="padding-left:20px;"> | 39 <div class="flex-item-10-percent"> |
47 [<a on-click="{{ resume }}">resume</a>] | 40 </div> |
48 </span> | 41 <div class="flex-item-20-percent"> |
49 </template> | 42 <isolate-run-state isolate="{{ isolate }}"></isolate-run-state> |
50 | 43 </div> |
51 <template if="{{ isolate.running }}"> | 44 <div class="flex-item-60-percent"> |
52 <strong>running</strong> | 45 <isolate-location isolate="{{ isolate }}"></isolate-location> |
53 @ | 46 </div> |
54 <function-ref ref="{{ isolate.topFrame['function'] }}"> | 47 <div class="flex-item-10-percent"> |
55 </function-ref> | |
56 (<script-ref ref="{{ isolate.topFrame['script'] }}" | |
57 pos="{{ isolate.topFrame['tokenPos'] }}"> | |
58 </script-ref>) | |
59 </template> | |
60 | |
61 <template if="{{ isolate.idle }}"> | |
62 <strong>idle</strong> | |
63 </template> | |
64 </div> | |
65 </div> | |
66 </div> | 48 </div> |
67 </div> | 49 </div> |
68 | |
69 <template if="{{ isolate.error != null }}"> | |
70 <div class="content"> | |
71 <h1>Error</h1> | |
72 <div class="memberList"> | |
73 <div class="memberItem"> | |
74 <div class="memberName">message</div> | |
75 <div class="memberValue"> | |
76 <pre>{{ isolate.error.message }}</pre> | |
77 </div> | |
78 </div> | |
79 <div class="memberItem"> | |
80 <template if="{{ isolate.error.exception != null }}"> | |
81 <div class="memberName">exception</div> | |
82 <div class="memberValue"> | |
83 <instance-ref ref="{{ isolate.error.exception }}"></instance-ref
> | |
84 </div> | |
85 </template> | |
86 </div> | |
87 <div class="memberItem"> | |
88 <template if="{{ isolate.error.stacktrace != null }}"> | |
89 <div class="memberName">stacktrace</div> | |
90 <div class="memberValue"> | |
91 <instance-ref ref="{{ isolate.error.stacktrace }}"></instance-ref> | |
92 </div> | |
93 </template> | |
94 </div> | |
95 </div> | |
96 </div> | |
97 <hr> | |
98 </template> | |
99 | |
100 <br> | 50 <br> |
101 | 51 |
102 <template if="{{ isolate.topFrame != null }}"> | 52 <template if="{{ isolate.topFrame != null }}"> |
| 53 <br> |
103 <script-inset script="{{ isolate.topFrame['script'] }}" | 54 <script-inset script="{{ isolate.topFrame['script'] }}" |
104 pos="{{ isolate.topFrame['tokenPos'] }}"> | 55 pos="{{ isolate.topFrame['tokenPos'] }}"> |
105 </script-inset> | 56 </script-inset> |
106 </template> | 57 </template> |
107 | 58 |
| 59 <div class="flex-row"> |
| 60 <div class="flex-item-20-percent"></div> |
| 61 <div class="flex-item-60-percent"><hr></div> |
| 62 <div class="flex-item-20-percent"></div> |
| 63 </div> |
| 64 |
108 <br> | 65 <br> |
109 | 66 |
| 67 <isolate-shared-summary isolate="{{ isolate }}"></isolate-shared-summary> |
| 68 |
| 69 <div class="flex-row"> |
| 70 <div class="flex-item-20-percent"></div> |
| 71 <div class="flex-item-60-percent"><hr></div> |
| 72 <div class="flex-item-20-percent"></div> |
| 73 </div> |
| 74 |
110 <div class="content-centered"> | 75 <div class="content-centered"> |
111 <div class="flex-row"> | 76 <div class="flex-row"> |
112 | 77 <div class="flex-item-50-percent"> |
113 <div class="flex-item-fixed-6-12"> | |
114 <div class="memberList"> | 78 <div class="memberList"> |
115 <div class="memberItem"> | 79 <div class="memberItem"> |
116 <div class="memberName">root library</div> | 80 <div class="memberName">root library</div> |
117 <div class="memberValue"> | 81 <div class="memberValue"> |
118 <library-ref ref="{{ isolate.rootLib }}"></library-ref> | 82 <library-ref ref="{{ isolate.rootLib }}"></library-ref> |
119 </div> | 83 </div> |
120 </div> | 84 </div> |
121 <div class="memberItem"> | 85 <div class="memberItem"> |
122 <template if="{{ isolate.entry != null }}"> | 86 <template if="{{ isolate.entry != null }}"> |
123 <div class="memberName">entry</div> | 87 <div class="memberName">entry</div> |
124 <div class="memberValue"> | 88 <div class="memberValue"> |
125 <function-ref ref="{{ isolate.entry }}"></function-ref> | 89 <function-ref ref="{{ isolate.entry }}"></function-ref> |
126 </div> | 90 </div> |
127 </template> | 91 </template> |
128 </div> | 92 </div> |
129 <div class="memberItem"> | 93 <div class="memberItem"> |
130 <div class="memberName">id</div> | 94 <div class="memberName">isolate id</div> |
131 <div class="memberValue">{{ isolate.mainPort }}</div> | 95 <div class="memberValue">{{ isolate.mainPort }}</div> |
132 </div> | 96 </div> |
133 <br> | |
134 <div class="memberItem"> | |
135 <div class="memberValue"> | |
136 See <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack
trace</a> | |
137 </div> | |
138 </div> | |
139 <div class="memberItem"> | |
140 <div class="memberValue"> | |
141 See <a href="{{ isolate.relativeHashLink('profile') }}">cpu prof
ile</a> | |
142 </div> | |
143 </div> | |
144 <div class="memberItem"> | |
145 <div class="memberValue"> | |
146 See <a href="{{ isolate.relativeHashLink('debug/breakpoints') }}
">breakpoints</a> | |
147 | |
148 </div> | |
149 </div> | |
150 </div> | 97 </div> |
151 </div> | 98 </div> |
152 | 99 <div class="flex-item-50-percent"> |
153 <div class="flex-item-fixed-6-12"> | 100 <div class="memberItem"> |
154 <div class="memberList"> | 101 <div class="memberValue"> |
155 <div class="memberItem"> | 102 See <a href="{{ isolate.relativeHashLink('debug/breakpoints') }}">
breakpoints</a> |
156 <div class="memberName">new heap</div> | |
157 <div class="memberValue"> | |
158 {{ isolate.newHeapUsed | formatSize }} | |
159 of | |
160 {{ isolate.newHeapCapacity | formatSize }} | |
161 </div> | |
162 </div> | |
163 <div class="memberItem"> | |
164 <div class="memberName">old heap</div> | |
165 <div class="memberValue"> | |
166 {{ isolate.oldHeapUsed | formatSize }} | |
167 of | |
168 {{ isolate.oldHeapCapacity | formatSize }} | |
169 </div> | |
170 </div> | |
171 </div> | |
172 <br> | |
173 <div class="memberList"> | |
174 <div class="memberItem"> | |
175 <div class="memberValue"> | |
176 See <a href="{{ isolate.relativeHashLink('allocationprofile') }}
">allocation profile</a> | |
177 </div> | |
178 </div> | |
179 <div class="memberItem"> | |
180 <div class="memberValue"> | |
181 See <a href="{{ isolate.relativeHashLink('heapmap') }}">heap map
</a> | |
182 </div> | |
183 </div> | 103 </div> |
184 </div> | 104 </div> |
185 </div> | 105 </div> |
186 | 106 </div> |
187 </div> <!-- flex row --> | 107 </div> |
188 </div> <!-- content --> | |
189 | 108 |
190 <hr> | 109 <hr> |
191 | 110 |
192 <div class="content"> | 111 <div class="content"> |
193 libraries ({{ isolate.libraries.length }}) | 112 libraries ({{ isolate.libraries.length }}) |
194 <curly-block expand="{{ isolate.libraries.length <= 8 }}"> | 113 <curly-block expand="{{ isolate.libraries.length <= 8 }}"> |
195 <div class="memberList"> | 114 <div class="memberList"> |
196 <template repeat="{{ lib in isolate.libraries }}"> | 115 <template repeat="{{ lib in isolate.libraries }}"> |
197 <div class="memberItem"> | 116 <div class="memberItem"> |
198 <div class="memberName"> | 117 <div class="memberName"> |
199 <library-ref ref="{{ lib }}"></library-ref> | 118 <library-ref ref="{{ lib }}"></library-ref> |
200 </div> | 119 </div> |
201 </div> | 120 </div> |
202 </template> | 121 </template> |
203 </div> | 122 </div> |
204 </curly-block> | 123 </curly-block> |
205 </div> | 124 </div> |
206 | 125 |
207 <hr> | 126 <hr> |
208 | 127 |
209 <div class="content"> | 128 <div class="content"> |
210 <div class="memberValue">Isolate execution</div> | |
211 <template repeat="{{ key in isolate.counters.keys }}"> | |
212 <div class="memberValue">{{ key }} ({{ isolate.counters[key] }})</div> | |
213 </template> | |
214 </div> | |
215 | |
216 <div class="content"> | |
217 <div id="tagProfileChart" class="miniProfileChart" style="height: 600px"><
/div> | 129 <div id="tagProfileChart" class="miniProfileChart" style="height: 600px"><
/div> |
218 </div> | 130 </div> |
219 | 131 |
220 <hr> | 132 <hr> |
221 | 133 |
222 <div class="content"> | 134 <div class="content"> |
223 <eval-box callback="{{ eval }}"></eval-box> | 135 <eval-box callback="{{ eval }}"></eval-box> |
224 </div> | 136 </div> |
225 <br><br><br><br> | 137 <br><br><br><br> |
226 <br><br><br><br> | 138 <br><br><br><br> |
227 </template> | 139 </template> |
228 <script type="application/dart" src="isolate_view.dart"></script> | 140 <script type="application/dart" src="isolate_view.dart"></script> |
229 </polymer-element> | 141 </polymer-element> |
OLD | NEW |