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

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

Powered by Google App Engine
This is Rietveld 408576698