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

Unified Diff: runtime/bin/vmservice/client/deployed/web/packages/observatory/src/elements/code_view.html

Issue 251043003: Observatory Display PC descriptors with disassembling (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/bin/vmservice/client/deployed/web/packages/observatory/src/elements/code_view.html
diff --git a/runtime/bin/vmservice/client/deployed/web/packages/observatory/src/elements/code_view.html b/runtime/bin/vmservice/client/deployed/web/packages/observatory/src/elements/code_view.html
index ef5819ea7eecb00f0c9222994ed539257f668109..0a91d717cecfdc822a759656ae6a5d59a53c7be5 100644
--- a/runtime/bin/vmservice/client/deployed/web/packages/observatory/src/elements/code_view.html
+++ b/runtime/bin/vmservice/client/deployed/web/packages/observatory/src/elements/code_view.html
@@ -2,9 +2,56 @@
<link rel="import" href="instance_ref.html">
<link rel="import" href="observatory_element.html">
<link rel="import" href="nav_bar.html">
+<link rel="import" href="script_ref.html">
<polymer-element name="code-view" extends="observatory-element">
<template>
- <link rel="stylesheet" href="css/shared.css">
+ <link rel="stylesheet" href="../../../../packages/observatory/src/elements/css/shared.css">
+ <style>
+ div.flex-row:hover {
+ background-color: #FFF3E3;
+ }
+
+ .highlight {
+ background-color: #FFF3E3;
+ }
+
+ .tooltip {
+ display: block;
+ position: absolute;
+ visibility: hidden;
+ opacity: 0;
+ transition: visibility 0s linear 0.5s;
+ transition: opacity .4s ease-in-out;
+ }
+
+ .flex-row:hover .tooltip {
+ display: block;
+ position: absolute;
+ top: 100%;
+ visibility: visible;
+ z-index: 999;
+ width: auto;
+ min-width: 400px;
+ color: #ffffff;
+ background-color: #FFF3E3;
+ border-bottom-right-radius: 8px;
+ border-bottom-left-radius: 8px;
+ transition: visibility 0s linear 0.5s;
+ transition: opacity .4s ease-in-out;
+ opacity: 1;
+ }
+
+ .descriptor-address {
+ color: #0489c3;
+ }
+
+ .snippet {
+ text-align: center;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ </style>
<nav-bar>
<top-nav-menu></top-nav-menu>
<isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu>
@@ -52,11 +99,54 @@
</div>
</template>
<template repeat="{{ instruction in code.instructions }}">
- <div class="flex-row">
- <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedInclusive(code) }}</div>
- <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedExclusive(code) }}</div>
- <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedAddress() }}</div>
- <div class="flex-item-fixed-6-12 monospace">{{ instruction.human }}</div>
+ <div class="flex-row" on-mouseover="{{ mouseOver }}" on-mouseout="{{ mouseOut }}" data-jump-target="{{ instruction.jumpTarget.address }}" id="addr-{{ instruction.address }}" style="position: relative">
+ <template if="{{ instruction.isComment }}">
+ <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedInclusive(code) }}</div>
+ <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedExclusive(code) }}</div>
+ <div class="flex-item-fixed-8-12 monospace">{{ instruction.human }}</div>
+ </template>
+ <template if="{{ !instruction.isComment }}">
+ <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedInclusive(code) }}</div>
+ <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedExclusive(code) }}</div>
+ <template if="{{ instruction.hasDescriptors }}">
+ <div class="flex-item-fixed-2-12 monospace descriptor-address">
+ <div class="tooltip">
+ <template repeat="{{ descriptor in instruction.descriptors }}">
+ <div class="memberList">
+ <div class="memberItem">
+ <div class="memberName">Kind</div>
+ <div class="memberValue">{{ descriptor.kind }}</div>
+ </div>
+ <div class="memberItem">
+ <div class="memberName">Deoptimization ID</div>
+ <div class="memberValue">{{ descriptor.formattedDeoptId() }}</div>
+ </div>
+ <template if="{{ descriptor.script != null }}">
+ <div class="memberItem">
+ <div class="memberName">Script</div>
+ <div class="memberValue"><script-ref ref="{{ descriptor.script }}" pos="{{ descriptor.tokenPos }}"></script-ref></div>
+ </div>
+ </template>
+ </div>
+ <template if="{{ descriptor.script != null }}">
+ <div class="snippet monospace">
+ <span>{{ descriptor.formattedLine }}</span>
+ </div>
+ </template>
+ </template>
+ </div>
+ {{ instruction.formattedAddress() }}
+ </div>
+ </template>
+ <template if="{{ !instruction.hasDescriptors }}">
+ <div class="flex-item-fixed-2-12 monospace">
+ {{ instruction.formattedAddress() }}
+ </div>
+ </template>
+ <div class="flex-item-fixed-6-12 monospace">
+ {{ instruction.human }}
+ </div>
+ </template>
</div>
</template>
</div>

Powered by Google App Engine
This is Rietveld 408576698