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

Side by Side Diff: runtime/bin/vmservice/client/deployed/web/index.html

Issue 199363002: Rework library and class view pages. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/bin/vmservice/client/deployed/web/index.html_bootstrap.dart.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html><html><head> 1 <!DOCTYPE html><html><head>
2 2
3 3
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c ss"> 5 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c ss">
6 6
7 <title>Dart VM Observatory</title> 7 <title>Dart VM Observatory</title>
8 <script type="text/javascript" src="https://www.google.com/jsapi"></script> 8 <script type="text/javascript" src="https://www.google.com/jsapi"></script>
9 9
10 10
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 </li> 221 </li>
222 </template> 222 </template>
223 </ul> 223 </ul>
224 </template> 224 </template>
225 </template> 225 </template>
226 226
227 </polymer-element> 227 </polymer-element>
228 <polymer-element name="service-ref" extends="observatory-element"> 228 <polymer-element name="service-ref" extends="observatory-element">
229 229
230 </polymer-element><polymer-element name="class-ref" extends="service-ref"> 230 </polymer-element><polymer-element name="class-ref" extends="service-ref">
231 <template> 231
232 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> 232 <template><a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a></template>
233 </template> 233
234 234
235 </polymer-element> 235 </polymer-element>
236 <polymer-element name="error-view" extends="observatory-element"> 236 <polymer-element name="curly-block">
237 <template>
238 <div class="row">
239 <div class="col-md-8 col-md-offset-2">
240 <div class="panel panel-danger">
241 <div class="panel-heading">{{ error.kind }}</div>
242 <div class="panel-body">
243 <p>{{ error.message }}</p>
244 </div>
245 </div>
246 </div>
247 </div>
248 </template>
249
250 </polymer-element><polymer-element name="field-ref" extends="service-ref">
251 <template>
252 <div>
253 <template if="{{ ref['final'] }}"> final </template>
254 <template if="{{ ref['const'] }}"> const </template>
255 <template if="{{ (ref['declared_type']['name'] == 'dynamic' &amp;&amp; !ref['f inal'] &amp;&amp; !ref['const']) }}">
256 var
257 </template>
258 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}">
259 <class-ref ref="{{ ref['declared_type'] }}"></class-ref>
260 </template>
261 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
262 </div>
263 </template> </polymer-element><polymer-element name="function-ref" extends="ser vice-ref">
264 <template>
265 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
266 </template>
267
268 </polymer-element><polymer-element name="curly-block">
269 <template> 237 <template>
270 <style> 238 <style>
271 .idle { 239 .idle {
272 display: inline-block; 240 display: inline-block;
273 color: #0489c3; 241 color: #0489c3;
274 cursor: pointer; 242 cursor: pointer;
275 } 243 }
276 .busy { 244 .busy {
277 display: inline-block; 245 display: inline-block;
278 color: white; 246 color: white;
(...skipping 22 matching lines...) Expand all
301 <template if="{{ !busy }}"> 269 <template if="{{ !busy }}">
302 {<a on-click="{{ toggleExpand }}"><div class="idle">&nbsp;&nbsp;⊞&nbsp;& nbsp;</div></a>} 270 {<a on-click="{{ toggleExpand }}"><div class="idle">&nbsp;&nbsp;⊞&nbsp;& nbsp;</div></a>}
303 </template> 271 </template>
304 </template> 272 </template>
305 </template> 273 </template>
306 274
307 </polymer-element> 275 </polymer-element>
308 <polymer-element name="instance-ref" extends="service-ref"> 276 <polymer-element name="instance-ref" extends="service-ref">
309 <template> 277 <template>
310 <style> 278 <style>
311 .member { 279 .memberList {
280 display: table;
281 }
282 .memberItem {
283 display: table-row;
284 }
285 .memberName, .memberValue {
286 display: table-cell;
312 vertical-align: top; 287 vertical-align: top;
313 padding: 1px 0 1px 1em; 288 padding: 3px 0 3px 1em;
289 font: 400 14px 'Montserrat', sans-serif;
314 } 290 }
315 </style> 291 </style>
316 <div> 292 <div>
317 <template if="{{ isUnexpected(ref.serviceType) }}"> 293 <template if="{{ isUnexpected(ref.serviceType) }}">
318 unexpected reference type &lt;{{ ref.serviceType }}&gt; 294 unexpected reference type &lt;{{ ref.serviceType }}&gt;
319 </template> 295 </template>
320 296
321 <template if="{{ isError(ref.serviceType) }}"> 297 <template if="{{ isError(ref.serviceType) }}">
322 <pre>{{ ref.message }}</pre> 298 <pre>{{ ref.message }}</pre>
323 </template> 299 </template>
324 300
325 <template if="{{ isNull(ref.serviceType) }}"> 301 <template if="{{ isNull(ref.serviceType) }}">
326 <div title="{{ hoverText }}">{{ ref['preview'] }}</div> 302 <div title="{{ hoverText }}">{{ ref['preview'] }}</div>
327 </template> 303 </template>
328 304
329 <template if="{{ (isString(ref.serviceType) || 305 <template if="{{ (isString(ref.serviceType) ||
330 isBool(ref.serviceType) || 306 isBool(ref.serviceType) ||
331 isInt(ref.serviceType)) }}"> 307 isInt(ref.serviceType)) }}">
332 <a href="{{ url }}">{{ ref['preview'] }}</a> 308 <a href="{{ url }}">{{ ref['preview'] }}</a>
333 </template> 309 </template>
334 310
335 <template if="{{ isClosure(ref.serviceType) }}"> 311 <template if="{{ isClosure(ref.serviceType) }}">
336 <a href="{{ url }}"> 312 <a href="{{ url }}">
313 <!-- TODO(turnidge): Switch this to fully-qualified function -->
337 {{ ref['closureFunc']['user_name'] }} 314 {{ ref['closureFunc']['user_name'] }}
338 </a> 315 </a>
339 </template> 316 </template>
340 317
341 <template if="{{ isInstance(ref.serviceType) }}"> 318 <template if="{{ isInstance(ref.serviceType) }}">
342 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a> 319 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a>
343 <curly-block callback="{{ expander() }}"> 320 <curly-block callback="{{ expander() }}">
344 <table> 321 <div class="memberList">
345 <tbody><tr template="" repeat="{{ field in ref['fields'] }}"> 322 <template repeat="{{ field in ref['fields'] }}">
346 <td class="member">{{ field['decl']['user_name'] }}</td> 323 <div class="memberItem">
347 <td class="member"> 324 <div class="memberName">
348 <instance-ref ref="{{ field['value'] }}"></instance-ref> 325 {{ field['decl']['user_name'] }}
349 </td> 326 </div>
350 </tr> 327 <div class="memberValue">
351 </tbody></table> 328 <instance-ref ref="{{ field['value'] }}"></instance-ref>
329 </div>
330 </div>
331 </template>
332 </div>
352 </curly-block> 333 </curly-block>
353 </template> 334 </template>
354 335
355 <template if="{{ isList(ref.serviceType) }}"> 336 <template if="{{ isList(ref.serviceType) }}">
356 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em> ({{ ref['le ngth']}})</a> 337 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em> ({{ ref['le ngth']}})</a>
357 <curly-block callback="{{ expander() }}"> 338 <curly-block callback="{{ expander() }}">
358 <table> 339 <div class="memberList">
359 <tbody><tr template="" repeat="{{ element in ref['elements'] }}"> 340 <template repeat="{{ element in ref['elements'] }}">
360 <td class="member">[{{ element['index']}}]</td> 341 <div class="memberItem">
361 <td class="member"> 342 <div class="memberName">[{{ element['index']}}]</div>
362 <instance-ref ref="{{ element['value'] }}"></instance-ref> 343 <div class="memberValue">
363 </td> 344 <instance-ref ref="{{ element['value'] }}"></instance-ref>
364 </tr> 345 </div>
365 </tbody></table> 346 </div>
347 </template>
348 </div>
366 </curly-block> 349 </curly-block>
367 </template> 350 </template>
368 351
369 </div> 352 </div>
370 </template> 353 </template>
371 354
372 </polymer-element> 355 </polymer-element>
356 <polymer-element name="eval-box" extends="observatory-element">
357 <template>
358 <style>
359 .textbox {
360 width: 80ex;
361 font: 400 16px 'Montserrat', sans-serif;
362 }
363 .bigtextbox {
364 font: 400 16px 'Montserrat', sans-serif;
365 }
366 .button {
367 font: 400 16px 'Montserrat', sans-serif;
368 }
369 .radios {
370 display: inline;
371 }
372 .radios label{
373 padding-left: 15px;
374 }
375 .historyExpr, .historyValue {
376 vertical-align: text-top;
377 font: 400 14px 'Montserrat', sans-serif;
378 }
379 .historyExpr a {
380 display: block;
381 color: black;
382 text-decoration: none;
383 padding: 6px 6px;
384 cursor: pointer;
385 white-space: pre-line;
386 }
387 .historyExpr a:hover {
388 background-color: #e1f5fe
389 }
390 .historyValue {
391 display: block;
392 padding: 6px 6px;
393 }
394 </style>
395 <form>
396 <template if="{{ lineMode == '1-line' }}">
397 <input class="textbox" type="text" value="{{ text }}">
398 </template>
399 <template if="{{ lineMode == 'N-line' }}">
400 <textarea class="bigtextbox" rows="5" cols="80" value="{{ text }}"></tex tarea>
401 </template>
402
403 <input class="button" type="submit" value="Evaluate" on-click="{{ eval }}" >
404 <div class="radios" on-change="{{ updateLineMode }}">
405 <label for="1-line">1-line
406 <input type="radio" name="lineMode" value="1-line" checked="">
407 </label>
408 <label for="N-line">N-line
409 <input type="radio" name="lineMode" value="N-line">
410 </label>
411 </div>
412 </form>
413
414 <br>
415 <template if="{{ results.isNotEmpty }}">
416 <table>
417 <tbody><tr template="" repeat="{{ result in results }}">
418 <td class="historyExpr">
419 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr'] }}">{{ result['expr'] }}</a>
420 </td>
421 <td class="historyValue">
422 <template if="{{ result['value'] == null }}">
423 <div style="color:#aaa;cursor:wait;">&lt;pending&gt;</div>
424 </template>
425 <template if="{{ result['value'] != null }}">
426 <instance-ref isolate="{{ isolate }}" ref="{{ result['value'] }}">
427 </instance-ref>
428 </template>
429 </td>
430 </tr>
431 </tbody></table>
432 </template>
433 </template>
434 </polymer-element>
435
436
437 <polymer-element name="field-ref" extends="service-ref">
438 <template>
439 <div>
440 <template if="{{ ref['final'] }}"> final </template>
441 <template if="{{ ref['const'] }}"> const </template>
442 <template if="{{ (ref['declared_type']['name'] == 'dynamic' &amp;&amp; !ref['f inal'] &amp;&amp; !ref['const']) }}">
443 var
444 </template>
445 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}">
446 <class-ref ref="{{ ref['declared_type'] }}"></class-ref>
447 </template>
448 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
449 </div>
450 </template> </polymer-element><polymer-element name="function-ref" extends="ser vice-ref">
451 <template><!-- These comments are here to allow newlines.
452 --><template if="{{ qualified &amp;&amp; !hasParent &amp;&amp; hasClass }}" ><!--
453 --><class-ref ref="{{ ref['class'] }}"></class-ref>.</template><!--
454 --><template if="{{ qualified &amp;&amp; hasParent }}"><!--
455 --><function-ref ref="{{ ref['parent'] }}" qualified="{{ true }}">
456 </function-ref>.<!--
457 --></template><a href="{{ url }}">{{ name }}</a><!--
458 --></template>
459
460 </polymer-element>
373 <polymer-element name="library-ref" extends="service-ref"> 461 <polymer-element name="library-ref" extends="service-ref">
374 <template> 462 <template>
375 <a href="{{ url }}">{{ name }}</a> 463 <a href="{{ url }}">{{ name }}</a>
376 </template> 464 </template>
377 465
378 </polymer-element><polymer-element name="class-view" extends="observatory-elemen t"> 466 </polymer-element><polymer-element name="script-ref" extends="service-ref">
467 <template>
468 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
469 </template>
470
471 </polymer-element>
472 <polymer-element name="class-view" extends="observatory-element">
379 <template> 473 <template>
474 <style>
475 .content {
476 padding-left: 10%;
477 font: 400 14px 'Montserrat', sans-serif;
478 }
479 h1 {
480 font: 400 18px 'Montserrat', sans-serif;
481 }
482 .memberList {
483 display: table;
484 }
485 .memberItem {
486 display: table-row;
487 }
488 .memberName, .memberValue {
489 display: table-cell;
490 vertical-align: top;
491 padding: 3px 0 3px 1em;
492 font: 400 14px 'Montserrat', sans-serif;
493 }
494 </style>
495
380 <nav-bar> 496 <nav-bar>
381 <top-nav-menu></top-nav-menu> 497 <top-nav-menu></top-nav-menu>
382 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu> 498 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu>
383 <library-nav-menu library="{{ cls['library'] }}"></library-nav-menu> 499 <library-nav-menu library="{{ cls['library'] }}"></library-nav-menu>
384 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu> 500 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu>
385 <nav-refresh callback="{{ refresh }}"></nav-refresh> 501 <nav-refresh callback="{{ refresh }}"></nav-refresh>
386 </nav-bar> 502 </nav-bar>
387 503
388 <div class="row"> 504 <div class="content">
389 <div class="col-md-8 col-md-offset-2"> 505 <h1>
390 <div class="panel panel-warning"> 506 <template if="{{ cls['abstract'] }}">
391 <div class="panel-heading"> 507 abstract
392 class <strong>{{ cls.name }}</strong> 508 </template>
393 <template if="{{ cls['super']['type'] != 'Null' }}"> 509 <template if="{{ cls['patch'] }}">
394 extends 510 patch
395 <class-ref ref="{{ cls['super'] }}"></class-ref> 511 </template>
396 </template> 512 class {{ cls.name }}
397 <p></p> 513 </h1>
398 <library-ref ref="{{ cls['library'] }}"></library-ref> 514 <div class="memberList">
515 <div class="memberItem">
516 <div class="memberName">library</div>
517 <div class="memberValue">
518 <library-ref ref="{{ cls['library'] }}"></library-ref>
519 </div>
399 </div> 520 </div>
400 <div class="panel-body"> 521 <div class="memberItem">
401 <table class="table table-hover"> 522 <div class="memberName">script</div>
402 <tbody> 523 <div class="memberValue">
403 <tr> 524 <script-ref ref="{{ cls['script'] }}" line="{{ cls['line'] }}">
404 <td>Abstract</td><td>{{ cls['abstract'] }}</td> 525 </script-ref>
405 </tr> 526 </div>
406 <tr>
407 <td>Const</td><td>{{ cls['const'] }}</td>
408 </tr>
409 <tr>
410 <td>Finalized</td><td>{{ cls['const'] }}</td>
411 </tr>
412 <tr>
413 <td>Implemented</td><td>{{ cls['implemented'] }}</td>
414 </tr>
415 <tr>
416 <td>Patch</td><td>{{ cls['patch'] }}</td>
417 </tr>
418 <tr>
419 <td>VM Name</td><td>{{ cls['name'] }}</td>
420 </tr>
421 </tbody>
422 </table>
423 <template if="{{ cls['error'] == null }}">
424 <blockquote><strong>Fields</strong></blockquote>
425 <table class="table table-hover">
426 <tbody>
427 <tr template="" repeat="{{ field in cls['fields'] }}">
428 <td><field-ref ref="{{ field }}"></field-ref></td>
429 <td><instance-ref ref="{{ field['value'] }}"></instance-ref></ td>
430 </tr>
431 </tbody>
432 </table>
433 <blockquote><strong>Functions</strong></blockquote>
434 <table class="table table-hover">
435 <thead>
436 <tr>
437 <th>User Name</th>
438 <th>VM Name</th>
439 </tr>
440 </thead>
441 <tbody>
442 <tr template="" repeat="{{ function in cls['functions'] }}">
443 <td><function-ref ref="{{ function }}"></function-ref></td>
444 <td><function-ref ref="{{ function }}" internal=""></function- ref></td>
445 </tr>
446 </tbody>
447 </table>
448 </template>
449 <template if="{{ cls['error'] != null }}">
450 <error-view error_obj="{{ cls['error'] }}"></error-view>
451 </template>
452 </div> 527 </div>
528
529 <div class="memberItem">&nbsp;</div>
530
531 <template if="{{ cls['super']['type'] != 'Null' }}">
532 <div class="memberItem">
533 <div class="memberName">extends</div>
534 <div class="memberValue">
535 <class-ref ref="{{ cls['super'] }}"></class-ref>
536 </div>
537 </div>
538 </template>
539 <template if="{{ cls['subclasses'].length > 0 }}">
540 <div class="memberItem">
541 <div class="memberName">extended by</div>
542 <div class="memberValue">
543 <template repeat="{{ subclass in cls['subclasses'] }}">
544 <class-ref ref="{{ subclass }}"></class-ref>
545 </template>
546 </div>
547 </div>
548 </template>
549
550 <div class="memberItem">&nbsp;</div>
551
552 <template if="{{ cls['interfaces'].length > 0 }}">
553 <div class="memberItem">
554 <div class="memberName">implements</div>
555 <div class="memberValue">
556 <template repeat="{{ interface in cls['interfaces'] }}">
557 <class-ref ref="{{ interface }}"></class-ref>
558 </template>
559 </div>
560 </div>
561 </template>
562 <template if="{{ cls.name != cls.vmName }}">
563 <div class="memberItem">
564 <div class="memberName">vm name</div>
565 <div class="memberValue">{{ cls.vmName }}</div>
566 </div>
567 </template>
453 </div> 568 </div>
454 </div> 569 </div>
570
571 <template if="{{ cls['error'] != null }}">
572 <!-- TODO(turnidge): Don't use instance-ref for error display here -->
573 <instance-ref ref="{{ cls['error'] }}"></instance-ref>
574 </template>
575
576 <hr>
577
578 <div class="content">
579 <template if="{{ cls['fields'].isNotEmpty }}">
580 fields ({{ cls['fields'].length }})
581 <curly-block>
582 <div class="memberList">
583 <template repeat="{{ field in cls['fields'] }}">
584 <div class="memberItem">
585 <div class="memberName">
586 <field-ref ref="{{ field }}"></field-ref>
587 </div>
588 <div class="memberValue">
589 <template if="{{ field['value'] != null }}">
590 <instance-ref ref="{{ field['value'] }}"></instance-ref>
591 </template>
592 </div>
593 </div>
594 </template>
595 </div>
596 </curly-block><br>
597 </template>
598
599 <template if="{{ cls['functions'].isNotEmpty }}">
600 functions ({{ cls['functions'].length }})
601 <curly-block>
602 <div class="memberList">
603 <template repeat="{{ function in cls['functions'] }}">
604 <div class="memberItem">
605 <div class="memberValue">
606 <function-ref ref="{{ function }}" qualified="{{ false }}">
607 </function-ref>
608 </div>
609 </div>
610 </template>
611 </div>
612 </curly-block><br>
613 </template>
455 </div> 614 </div>
615
616 <hr>
617
618 <div class="content">
619 <eval-box callback="{{ eval }}"></eval-box>
620 </div>
621 <br><br><br><br>
622 <br><br><br><br>
456 </template> 623 </template>
457 624
458 </polymer-element> 625 </polymer-element>
459 <polymer-element name="code-ref" extends="service-ref"> 626 <polymer-element name="code-ref" extends="service-ref">
460 <template> 627 <template>
461 <a href="{{ url }}">{{ name }}</a> 628 <a href="{{ url }}">{{ name }}</a>
462 </template> 629 </template>
463 630
464 </polymer-element><polymer-element name="code-view" extends="observatory-element "> 631 </polymer-element><polymer-element name="code-view" extends="observatory-element ">
465 <template> 632 <template>
466 <nav-bar> 633 <nav-bar>
467 <top-nav-menu></top-nav-menu> 634 <top-nav-menu></top-nav-menu>
468 <isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu> 635 <isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu>
469 <nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu> 636 <nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu>
470 <nav-refresh callback="{{ refresh }}"></nav-refresh> 637 <nav-refresh callback="{{ refresh }}"></nav-refresh>
471 </nav-bar> 638 </nav-bar>
472 <style> 639 <style>
473 .content { 640 .content {
474 padding-left: 10%; 641 padding-left: 10%;
475 font: 400 14px 'Montserrat', sans-serif; 642 font: 400 14px 'Montserrat', sans-serif;
476 } 643 }
477 h1 { 644 h1 {
478 font: 400 18px 'Montserrat', sans-serif; 645 font: 400 18px 'Montserrat', sans-serif;
479 } 646 }
480 .member, .memberHeader { 647 .memberList {
648 display: table;
649 }
650 .memberItem {
651 display: table-row;
652 }
653 .memberName, .memberValue {
654 display: table-cell;
481 vertical-align: top; 655 vertical-align: top;
482 padding: 3px 0 3px 1em; 656 padding: 3px 0 3px 1em;
483 font: 400 14px 'Montserrat', sans-serif; 657 font: 400 14px 'Montserrat', sans-serif;
484 } 658 }
485 .monospace { 659 .monospace {
486 font-family: consolas, courier, monospace; 660 font-family: consolas, courier, monospace;
487 font-size: 1em; 661 font-size: 1em;
488 line-height: 1.2em; 662 line-height: 1.2em;
489 white-space: nowrap; 663 white-space: nowrap;
490 } 664 }
491 </style> 665 </style>
492 <div class="content"> 666 <div class="content">
493 <h1>Code for {{ code.name }}</h1> 667 <h1>Code for {{ code.name }}</h1>
494 <table> 668 <div class="memberList">
495 <tbody><tr> 669 <div class="memberItem">
496 <td class="memberHeader">kind</td> 670 <div class="memberName">kind</div>
497 <td class="member">{{code.kind}}</td> 671 <div class="memberValue">{{code.kind}}</div>
498 </tr> 672 </div>
499 <tr> 673 <div class="memberItem">
500 <td class="memberHeader">function</td> 674 <div class="memberName">function</div>
501 <td class="member"> 675 <div class="memberValue">
502 <function-ref ref="{{code.function}}"> 676 <function-ref ref="{{code.function}}">
503 </function-ref> 677 </function-ref>
504 </td> 678 </div>
505 </tr> 679 </div>
506 <tr> 680 <div class="memberItem">
507 <td class="memberHeader">Inclusive</td> 681 <div class="memberName">Inclusive</div>
508 <td class="member">{{ code.formattedInclusiveTicks }}</td> 682 <div class="memberValue">{{ code.formattedInclusiveTicks }}</div>
509 </tr> 683 </div>
510 <tr> 684 <div class="memberItem">
511 <td class="memberHeader">Exclusive</td> 685 <div class="memberName">Exclusive</div>
512 <td class="member">{{ code.formattedExclusiveTicks }}</td> 686 <div class="memberValue">{{ code.formattedExclusiveTicks }}</div>
513 </tr> 687 </div>
514 <tr> 688 <div class="memberItem">
515 <td class="memberHeader">Constant object pool</td> 689 <div class="memberName">Constant object pool</div>
516 <td class="member"> 690 <div class="memberValue">
517 <instance-ref ref="{{ code.objectPool }}"></instance-ref> 691 <instance-ref ref="{{ code.objectPool }}"></instance-ref>
518 </td> 692 </div>
519 </tr> 693 </div>
520 </tbody></table> 694 </div>
521 </div> 695 </div>
522 <hr> 696 <hr>
523 <div class="content"> 697 <div class="content">
524 <template if="{{ code.hasDisassembly }}"> 698 <template if="{{ code.hasDisassembly }}">
525 <div class="row"> 699 <div class="row">
526 <div class="col-md-2 memberHeader">Inclusive</div> 700 <div class="col-md-2 memberHeader">Inclusive</div>
527 <div class="col-md-2 memberHeader">Exclusive</div> 701 <div class="col-md-2 memberHeader">Exclusive</div>
528 <div class="col-md-2 memberHeader">Address</div> 702 <div class="col-md-2 memberHeader">Address</div>
529 <div class="col-md-6 memberHeader">Disassembly</div> 703 <div class="col-md-6 memberHeader">Disassembly</div>
530 </div> 704 </div>
(...skipping 15 matching lines...) Expand all
546 <div class="well row"> 720 <div class="well row">
547 <a on-click="toggleDisplay" class="btn muted unselectable"> 721 <a on-click="toggleDisplay" class="btn muted unselectable">
548 Raw message... <i class="{{ iconClass }}"></i> 722 Raw message... <i class="{{ iconClass }}"></i>
549 </a> 723 </a>
550 <div style="display: {{ displayValue }}" class="well"> 724 <div style="display: {{ displayValue }}" class="well">
551 <content></content> 725 <content></content>
552 </div> 726 </div>
553 </div> 727 </div>
554 </template> 728 </template>
555 729
556 </polymer-element><polymer-element name="eval-box" extends="observatory-element" > 730 </polymer-element><polymer-element name="error-view" extends="observatory-elemen t">
557 <template> 731 <template>
558 <style> 732 <div class="row">
559 .textbox { 733 <div class="col-md-8 col-md-offset-2">
560 width: 80ex; 734 <div class="panel panel-danger">
561 font: 400 16px 'Montserrat', sans-serif; 735 <div class="panel-heading">{{ error.kind }}</div>
562 } 736 <div class="panel-body">
563 .bigtextbox { 737 <p>{{ error.message }}</p>
564 font: 400 16px 'Montserrat', sans-serif; 738 </div>
565 }
566 .button {
567 font: 400 16px 'Montserrat', sans-serif;
568 }
569 .radios {
570 display: inline;
571 }
572 .radios label{
573 padding-left: 15px;
574 }
575 .historyExpr, .historyValue {
576 vertical-align: text-top;
577 font: 400 14px 'Montserrat', sans-serif;
578 }
579 .historyExpr a {
580 display: block;
581 color: black;
582 text-decoration: none;
583 padding: 6px 6px;
584 cursor: pointer;
585 white-space: pre-line;
586 }
587 .historyExpr a:hover {
588 background-color: #e1f5fe
589 }
590 .historyValue {
591 display: block;
592 padding: 6px 6px;
593 }
594 </style>
595 <form>
596 <template if="{{ lineMode == '1-line' }}">
597 <input class="textbox" type="text" value="{{ text }}">
598 </template>
599 <template if="{{ lineMode == 'N-line' }}">
600 <textarea class="bigtextbox" rows="5" cols="80" value="{{ text }}"></tex tarea>
601 </template>
602
603 <input class="button" type="submit" value="Evaluate" on-click="{{ eval }}" >
604 <div class="radios" on-change="{{ updateLineMode }}">
605 <label for="1-line">1-line
606 <input type="radio" name="lineMode" value="1-line" checked="">
607 </label>
608 <label for="N-line">N-line
609 <input type="radio" name="lineMode" value="N-line">
610 </label>
611 </div> 739 </div>
612 </form> 740 </div>
613 741 </div>
614 <br>
615 <template if="{{ results.isNotEmpty }}">
616 <table>
617 <tbody><tr template="" repeat="{{ result in results }}">
618 <td class="historyExpr">
619 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr'] }}">{{ result['expr'] }}</a>
620 </td>
621 <td class="historyValue">
622 <template if="{{ result['value'] == null }}">
623 <div style="color:#aaa;cursor:wait;">&lt;pending&gt;</div>
624 </template>
625 <template if="{{ result['value'] != null }}">
626 <instance-ref isolate="{{ isolate }}" ref="{{ result['value'] }}">
627 </instance-ref>
628 </template>
629 </td>
630 </tr>
631 </tbody></table>
632 </template>
633 </template> 742 </template>
634 </polymer-element> 743
635 744 </polymer-element><polymer-element name="field-view" extends="observatory-elemen t">
636
637 <polymer-element name="field-view" extends="observatory-element">
638 <template> 745 <template>
639 <nav-bar> 746 <nav-bar>
640 <top-nav-menu></top-nav-menu> 747 <top-nav-menu></top-nav-menu>
641 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu> 748 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu>
642 <template if="{{ field['owner'].serviceType == 'Class' }}"> 749 <template if="{{ field['owner'].serviceType == 'Class' }}">
643 <!-- TODO(turnidge): Add library nav menu here. --> 750 <!-- TODO(turnidge): Add library nav menu here. -->
644 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu> 751 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu>
645 </template> 752 </template>
646 <template if="{{ field['owner'].serviceType == 'Library' }}"> 753 <template if="{{ field['owner'].serviceType == 'Library' }}">
647 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu> 754 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu>
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 </nav-bar> 867 </nav-bar>
761 <div class="row"> 868 <div class="row">
762 <p style="text-align:center">{{ status }}</p> 869 <p style="text-align:center">{{ status }}</p>
763 </div> 870 </div>
764 <div class="row"> 871 <div class="row">
765 <canvas id="fragmentation" width="1px" height="1px"></canvas> 872 <canvas id="fragmentation" width="1px" height="1px"></canvas>
766 </div> 873 </div>
767 </template> 874 </template>
768 875
769 </polymer-element> 876 </polymer-element>
770 <polymer-element name="script-ref" extends="service-ref">
771 <template>
772 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
773 </template>
774
775 </polymer-element>
776 <polymer-element name="isolate-summary" extends="observatory-element"> 877 <polymer-element name="isolate-summary" extends="observatory-element">
777 <template> 878 <template>
778 <div class="row"> 879 <div class="row">
779 <div class="col-md-1"> 880 <div class="col-md-1">
780 <img src="img/isolate_icon.png" class="img-polaroid"> 881 <img src="img/isolate_icon.png" class="img-polaroid">
781 </div> 882 </div>
782 883
783 <div class="col-md-1">{{ isolate.vmName }}</div> 884 <div class="col-md-1">{{ isolate.vmName }}</div>
784 885
785 <!-- TODO(turnidge): Use function-ref when it can take isolate param --> 886 <!-- TODO(turnidge): Use function-ref when it can take isolate param -->
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 </nav-bar> 995 </nav-bar>
895 996
896 <style> 997 <style>
897 .content { 998 .content {
898 padding-left: 10%; 999 padding-left: 10%;
899 font: 400 14px 'Montserrat', sans-serif; 1000 font: 400 14px 'Montserrat', sans-serif;
900 } 1001 }
901 h1 { 1002 h1 {
902 font: 400 18px 'Montserrat', sans-serif; 1003 font: 400 18px 'Montserrat', sans-serif;
903 } 1004 }
904 .member { 1005 .memberList {
1006 display: table;
1007 }
1008 .memberItem {
1009 display: table-row;
1010 }
1011 .memberName, .memberValue {
1012 display: table-cell;
905 vertical-align: top; 1013 vertical-align: top;
906 padding: 3px 0 3px 1em; 1014 padding: 3px 0 3px 1em;
907 font: 400 14px 'Montserrat', sans-serif; 1015 font: 400 14px 'Montserrat', sans-serif;
908 }
909 .memberBold {
910 vertical-align: top;
911 padding: 3px 0 3px 1em;
912 font: 400 14px 'Montserrat', sans-serif;
913 } 1016 }
914 </style> 1017 </style>
915 1018
916 <template if="{{ instance['error'] != null }}"> 1019 <template if="{{ instance['error'] != null }}">
917 <error-view error_obj="{{ instance['error'] }}"></error-view> 1020 <error-view error_obj="{{ instance['error'] }}"></error-view>
918 </template> 1021 </template>
919 1022
920 <template if="{{ instance['error'] == null }}"> 1023 <template if="{{ instance['error'] == null }}">
921 <div class="content"> 1024 <div class="content">
922 <!-- TODO(turnidge): Handle null instances. --> 1025 <!-- TODO(turnidge): Handle null instances. -->
923 <h1>instance of {{ instance['class']['user_name'] }}</h1> 1026 <h1>instance of {{ instance['class']['user_name'] }}</h1>
924 <table> 1027 <div class="memberList">
925 <tbody><tr> 1028 <div class="memberItem">
926 <td class="memberBold">class</td> 1029 <div class="memberName">class</div>
927 <td class="member"> 1030 <div class="memberValue">
928 <class-ref ref="{{ instance['class'] }}"> 1031 <class-ref ref="{{ instance['class'] }}">
929 </class-ref> 1032 </class-ref>
930 </td> 1033 </div>
931 </tr> 1034 </div>
932 <tr template="" if="{{ instance['preview'] != null }}"> 1035 <template if="{{ instance['preview'] != null }}">
933 <td class="memberBold">preview</td> 1036 <div class="memberItem">
934 <td class="member">{{ instance['preview'] }}</td> 1037 <div class="memberName">preview</div>
935 </tr> 1038 <div class="memberValue">{{ instance['preview'] }}</div>
936 <tr> 1039 </div>
937 <td class="memberBold">size</td> 1040 </template>
938 <td class="member">{{ instance['size'] | formatSize }}</td> 1041 <div class="memberItem">
939 </tr> 1042 <div class="memberName">size</div>
940 </tbody></table> 1043 <div class="memberValue">{{ instance['size'] | formatSize }}</div>
1044 </div>
1045 </div>
941 </div> 1046 </div>
942 1047
943 <hr> 1048 <hr>
944 1049
945 <div class="content"> 1050 <div class="content">
946 <template if="{{ instance['fields'].isNotEmpty }}"> 1051 <template if="{{ instance['fields'].isNotEmpty }}">
947 fields ({{ instance['fields'].length }}) 1052 fields ({{ instance['fields'].length }})
948 <curly-block> 1053 <curly-block>
949 <table> 1054 <div class="memberList">
950 <tbody><tr template="" repeat="{{ field in instance['fields'] }}"> 1055 <template repeat="{{ field in instance['fields'] }}">
951 <td class="member"> 1056 <div class="memberItem">
952 <field-ref ref="{{ field['decl'] }}"></field-ref> 1057 <div class="memberName">
953 </td> 1058 <field-ref ref="{{ field['decl'] }}"></field-ref>
954 <td class="member"> 1059 </div>
955 <instance-ref ref="{{ field['value'] }}"></instance-ref> 1060 <div class="memberValue">
956 </td> 1061 <instance-ref ref="{{ field['value'] }}"></instance-ref>
957 </tr> 1062 </div>
958 </tbody></table> 1063 </div>
1064 </template>
1065 </div>
959 </curly-block> 1066 </curly-block>
960 </template> 1067 </template>
961 1068
962 <template if="{{ instance['nativeFields'].isNotEmpty }}"> 1069 <template if="{{ instance['nativeFields'].isNotEmpty }}">
963 native fields ({{ instance['nativeFields'].length }}) 1070 native fields ({{ instance['nativeFields'].length }})
964 <curly-block> 1071 <curly-block>
965 <table> 1072 <div class="memberList">
966 <tbody><tr template="" repeat="{{ field in instance['nativeFields' ] }}"> 1073 <template repeat="{{ field in instance['nativeFields'] }}">
967 <td class="member">[{{ field['index']}}]</td> 1074 <div class="memberItem">
968 <td class="member">[{{ field['value']}}]</td> 1075 <div class="memberName">[{{ field['index']}}]</div>
969 </tr> 1076 <div class="memberValue">[{{ field['value']}}]</div>
970 </tbody></table> 1077 </div>
971 </curly-block> 1078 </template>
1079 </div>
1080 </curly-block><br>
972 </template> 1081 </template>
973 1082
974 <template if="{{ instance['elements'].isNotEmpty }}"> 1083 <template if="{{ instance['elements'].isNotEmpty }}">
975 elements ({{ instance['elements'].length }}) 1084 elements ({{ instance['elements'].length }})
976 <curly-block> 1085 <curly-block>
977 <table> 1086 <div class="memberList">
978 <tbody><tr template="" repeat="{{ element in instance['elements'] }}"> 1087 <template repeat="{{ element in instance['elements'] }}">
979 <td class="member">[{{ element['index']}}]</td> 1088 <div class="memberItem">
980 <td class="member"> 1089 <div class="memberName">[{{ element['index']}}]</div>
981 <instance-ref ref="{{ element['value'] }}"> 1090 <div class="memberValue">
982 </instance-ref> 1091 <instance-ref ref="{{ element['value'] }}">
983 </td> 1092 </instance-ref>
984 </tr> 1093 </div>
985 </tbody></table> 1094 </div>
986 </curly-block> 1095 </template>
1096 </div>
1097 </curly-block><br>
987 </template> 1098 </template>
988 </div> 1099 </div>
989 1100
990 <hr> 1101 <hr>
991 1102
992 <div class="content"> 1103 <div class="content">
993 <eval-box callback="{{ eval }}"></eval-box> 1104 <eval-box callback="{{ eval }}"></eval-box>
994 </div> 1105 </div>
995 <br><br><br><br> 1106 <br><br><br><br>
996 <br><br><br><br> 1107 <br><br><br><br>
(...skipping 26 matching lines...) Expand all
1023 <td><json-view json="{{value(key)}}"></json-view></td> 1134 <td><json-view json="{{value(key)}}"></json-view></td>
1024 </tr> 1135 </tr>
1025 </tbody> 1136 </tbody>
1026 </table> 1137 </table>
1027 </template> 1138 </template>
1028 </template> 1139 </template>
1029 1140
1030 </polymer-element> 1141 </polymer-element>
1031 <polymer-element name="library-view" extends="observatory-element"> 1142 <polymer-element name="library-view" extends="observatory-element">
1032 <template> 1143 <template>
1144 <style>
1145 .content {
1146 padding-left: 10%;
1147 font: 400 14px 'Montserrat', sans-serif;
1148 }
1149 h1 {
1150 font: 400 18px 'Montserrat', sans-serif;
1151 }
1152 .memberList {
1153 display: table;
1154 }
1155 .memberItem {
1156 display: table-row;
1157 }
1158 .memberName, .memberValue {
1159 display: table-cell;
1160 vertical-align: top;
1161 padding: 3px 0 3px 1em;
1162 font: 400 14px 'Montserrat', sans-serif;
1163 }
1164 </style>
1165
1033 <nav-bar> 1166 <nav-bar>
1034 <top-nav-menu></top-nav-menu> 1167 <top-nav-menu></top-nav-menu>
1035 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu> 1168 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu>
1036 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu> 1169 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu>
1037 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1170 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1038 </nav-bar> 1171 </nav-bar>
1039 1172
1040 <div class="alert alert-info">Scripts</div> 1173 <div class="content">
1041 <table class="table table-hover"> 1174 <h1>
1042 <tbody> 1175 <!-- TODO(turnidge): Handle unnamed libraries -->
1043 <tr template="" repeat="{{ script in library['scripts']}}"> 1176 library {{ library.name }}
1044 <td> 1177 </h1>
1045 {{ script.kind }} 1178 <div class="memberList">
1046 </td> 1179 <div class="memberItem">
1047 <td> 1180 <div class="memberName">url</div>
1048 <script-ref ref="{{ script }}"></script-ref> 1181 <div class="memberValue">{{ library['url'] }}</div>
1049 </td> 1182 </div>
1050 </tr> 1183 <template if="{{ library['imports'].length > 0 }}">
1051 </tbody> 1184 <div class="memberItem">
1052 </table> 1185 <div class="memberName">imports</div>
1053 <div class="alert alert-info">Imported Libraries</div> 1186 <div class="memberValue">
1054 <table class="table table-hover"> 1187 <template repeat="{{ import in library['imports'] }}">
1055 <tbody> 1188 <library-ref ref="{{ import }}"></library-ref>
1056 <tr template="" repeat="{{ lib in library['libraries'] }}"> 1189 </template>
1057 <td> 1190 </div>
1058 <library-ref ref="{{ lib }}"></library-ref> 1191 </div>
1059 </td> 1192 </template>
1060 </tr> 1193 <template if="{{ library.name != library.vmName }}">
1061 </tbody> 1194 <div class="memberItem">
1062 </table> 1195 <div class="memberName">vm name</div>
1063 <div class="alert alert-info">Variables</div> 1196 <div class="memberValue">{{ library.vmName }}</div>
1064 <table class="table table-hover"> 1197 </div>
1065 <tbody> 1198 </template>
1066 <tr template="" repeat="{{ variable in library['variables'] }}"> 1199 </div>
1067 <td><field-ref ref="{{ variable }}"></field-ref></td> 1200 </div>
1068 <td><instance-ref ref="{{ variable['value'] }}"></instance-ref></td>
1069 </tr>
1070 </tbody>
1071 </table>
1072 <div class="alert alert-info">Functions</div>
1073 <table class="table table-hover">
1074 <tbody>
1075 <tr template="" repeat="{{ func in library['functions'] }}">
1076 <td>
1077 <function-ref ref="{{ func }}"></function-ref>
1078 </td>
1079 </tr>
1080 </tbody>
1081 </table>
1082 <div class="alert alert-info">Classes</div>
1083 <table class="table table-hover">
1084 <thead>
1085 <tr>
1086 <th>Name</th>
1087 <th>Internal Name</th>
1088 </tr>
1089 </thead>
1090 <tbody>
1091 <tr template="" repeat="{{ cls in library['classes'] }}">
1092 <td>
1093 <class-ref ref="{{ cls }}"></class-ref>
1094 </td>
1095 <td>
1096 <class-ref ref="{{ cls }}" internal=""></class-ref>
1097 </td>
1098 </tr>
1099 </tbody>
1100 </table>
1101 1201
1202 <hr>
1203
1204 <div class="content">
1205 <template if="{{ library['scripts'].isNotEmpty }}">
1206 scripts ({{ library['scripts'].length }})
1207 <curly-block>
1208 <div class="memberList">
1209 <template repeat="{{ script in library['scripts'] }}">
1210 <div class="memberItem">
1211 <div class="memberValue">
1212 <script-ref ref="{{ script }}"></script-ref>
1213 </div>
1214 </div>
1215 </template>
1216 </div>
1217 </curly-block><br>
1218 </template>
1219
1220 <template if="{{ library['classes'].isNotEmpty }}">
1221 classes ({{ library['classes'].length }})
1222 <curly-block>
1223 <div class="memberList">
1224 <template repeat="{{ cls in library['classes'] }}">
1225 <div class="memberItem">
1226 <div class="memberValue">
1227 <class-ref ref="{{ cls }}"></class-ref>
1228 </div>
1229 </div>
1230 </template>
1231 </div>
1232 </curly-block><br>
1233 </template>
1234
1235 <template if="{{ library['variables'].isNotEmpty }}">
1236 variables ({{ library['variables'].length }})
1237 <curly-block>
1238 <div class="memberList">
1239 <template repeat="{{ field in library['variables'] }}">
1240 <div class="memberItem">
1241 <div class="memberName">
1242 <field-ref ref="{{ field }}"></field-ref>
1243 </div>
1244 <div class="memberValue">
1245 <template if="{{ field['value'] != null }}">
1246 <instance-ref ref="{{ field['value'] }}"></instance-ref>
1247 </template>
1248 </div>
1249 </div>
1250 </template>
1251 </div>
1252 </curly-block><br>
1253 </template>
1254
1255 <template if="{{ library['functions'].isNotEmpty }}">
1256 functions ({{ library['functions'].length }})
1257 <curly-block>
1258 <div class="memberList">
1259 <template repeat="{{ function in library['functions'] }}">
1260 <div class="memberItem">
1261 <div class="memberValue">
1262 <function-ref ref="{{ function }}"></function-ref>
1263 </div>
1264 </div>
1265 </template>
1266 </div>
1267 </curly-block><br>
1268 </template>
1269 </div>
1270
1271 <hr>
1272
1273 <div class="content">
1274 <eval-box callback="{{ eval }}"></eval-box>
1275 </div>
1276 <br><br><br><br>
1277 <br><br><br><br>
1102 </template> 1278 </template>
1103 1279
1104 </polymer-element> 1280 </polymer-element>
1105 <polymer-element name="isolate-profile" extends="observatory-element"> 1281 <polymer-element name="isolate-profile" extends="observatory-element">
1106 <template> 1282 <template>
1107 <nav-bar> 1283 <nav-bar>
1108 <top-nav-menu></top-nav-menu> 1284 <top-nav-menu></top-nav-menu>
1109 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> 1285 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
1110 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu> 1286 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu>
1111 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1287 <nav-refresh callback="{{ refresh }}"></nav-refresh>
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1245 </table> 1421 </table>
1246 </div> 1422 </div>
1247 </div> 1423 </div>
1248 </div> 1424 </div>
1249 </template> 1425 </template>
1250 1426
1251 </polymer-element> 1427 </polymer-element>
1252 <polymer-element name="stack-frame" extends="observatory-element"> 1428 <polymer-element name="stack-frame" extends="observatory-element">
1253 <template> 1429 <template>
1254 <style> 1430 <style>
1255 .member { 1431 .memberList {
1432 display: table;
1433 }
1434 .memberItem {
1435 display: table-row;
1436 }
1437 .memberName, .memberValue {
1438 display: table-cell;
1256 vertical-align: top; 1439 vertical-align: top;
1257 padding: 0 0 0 1em; 1440 padding: 3px 0 3px 1em;
1441 font: 400 14px 'Montserrat', sans-serif;
1258 } 1442 }
1259 </style> 1443 </style>
1260 <div class="row"> 1444 <div class="row">
1261 <div class="col-md-1"></div> 1445 <div class="col-md-1"></div>
1262 <div class="col-md-1"> 1446 <div class="col-md-1">
1263 #{{ frame['depth'] }} 1447 #{{ frame['depth'] }}
1264 </div> 1448 </div>
1265 <div class="col-md-9"> 1449 <div class="col-md-9">
1266 <function-ref ref="{{ frame['function'] }}"></function-ref> 1450 <function-ref ref="{{ frame['function'] }}"></function-ref>
1267 ( <script-ref ref="{{ frame['script'] }}" line="{{ frame['line'] }}"> 1451 ( <script-ref ref="{{ frame['script'] }}" line="{{ frame['line'] }}">
1268 </script-ref> ) 1452 </script-ref> )
1453
1269 <curly-block> 1454 <curly-block>
1270 <table> 1455 <div class="memberList">
1271 <tbody><tr template="" repeat="{{ v in frame['vars'] }}"> 1456 <template repeat="{{ v in frame['vars'] }}">
1272 <td class="member">{{ v['name']}}</td> 1457 <div class="memberItem">
1273 <td class="member"> 1458 <div class="memberName">{{ v['name']}}</div>
1274 <instance-ref ref="{{ v['value'] }}"></instance-ref> 1459 <div class="memberValue">
1275 </td> 1460 <instance-ref ref="{{ v['value'] }}"></instance-ref>
1276 </tr> 1461 </div>
1277 </tbody></table> 1462 </div>
1463 </template>
1464 </div>
1278 </curly-block> 1465 </curly-block>
1279 1466
1280 </div> 1467 </div>
1281 <div class="col-md-1"></div> 1468 <div class="col-md-1"></div>
1282 </div> 1469 </div>
1283 1470
1284 1471
1285 </template> 1472 </template>
1286 1473
1287 </polymer-element> 1474 </polymer-element>
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1326 <template> 1513 <template>
1327 <response-viewer app="{{ app }}"></response-viewer> 1514 <response-viewer app="{{ app }}"></response-viewer>
1328 </template> 1515 </template>
1329 1516
1330 </polymer-element> 1517 </polymer-element>
1331 1518
1332 1519
1333 <observatory-application></observatory-application> 1520 <observatory-application></observatory-application>
1334 1521
1335 </body></html> 1522 </body></html>
OLDNEW
« no previous file with comments | « no previous file | runtime/bin/vmservice/client/deployed/web/index.html_bootstrap.dart.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698