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

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

Powered by Google App Engine
This is Rietveld 408576698