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

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

Issue 584293002: Begin implementing a debugger page in Observatory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js Created 6 years, 2 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/observatory/deployed/web/packages/observatory/src/elements/debugger.html
diff --git a/runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/debugger.html b/runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/debugger.html
new file mode 100644
index 0000000000000000000000000000000000000000..0eeaaa90d7958f26e8d867ee7c76ff42cf207888
--- /dev/null
+++ b/runtime/bin/vmservice/observatory/deployed/web/packages/observatory/src/elements/debugger.html
@@ -0,0 +1,226 @@
+<link rel="import" href="../../../../packages/polymer/polymer.html">
+<link rel="import" href="function_ref.html">
+<link rel="import" href="nav_bar.html">
+<link rel="import" href="observatory_element.html">
+<link rel="import" href="script_inset.html">
+<link rel="import" href="script_ref.html">
+
+<!-- TODO(turnidge): Use core-icon once core_elements work properly in
+ devtools -->
+<polymer-element name="icon-expand-less" noscript>
+ <template>
+ <svg width="24" height="24">
+ <polygon points="12,8 6,14 7.4,15.4 12,10.8 16.6,15.4 18,14 "/>
+ </svg>
+ </template>
+</polymer-element>
+
+<polymer-element name="icon-expand-more" noscript>
+ <template>
+ <svg width="24" height="24">
+ <polygon points="16.6,8.6 12,13.2 7.4,8.6 6,10 12,16 18,10 "/>
+ </svg>
+ </template>
+</polymer-element>
+
+<polymer-element name="debugger-page" extends="observatory-element">
+ <template>
+ <link rel="stylesheet" href="css/shared.css">
+ <style>
+ .container {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ }
+ nav-bar {
+ flex: 0 0 auto;
+ }
+ .stack {
+ flex: 0 0 auto;
+ overflow-y: auto;
+ }
+ core-splitter {
+ flex: 0 0 auto;
+ }
+ .console {
+ flex: 1 1 auto;
+ overflow-y: auto;
+ }
+ .commandline {
+ flex: 0 0 auto;
+ }
+ </style>
+
+ <div class="container">
+ <nav-bar>
+ <top-nav-menu last="{{ true }}"></top-nav-menu>
+ <isolate-nav-menu isolate="{{ isolate }}" last="{{ true }}">
+ </isolate-nav-menu>
+ <nav-control></nav-control>
+ </nav-bar>
+
+ <div id="stack" class="stack">
+ <debugger-stack isolate="{{ isolate }}"></debugger-stack>
+ </div>
+ <!--
+ <core-splitter direction="up" allowOverflow=true></core-splitter>
+ <div class="console">
+ <debugger-console isolate="{{ isolate }}"></debugger-console>
+ </div>
+ <div class="commandline">
+ <debugger-input isolate="{{ isolate }}"></debugger-input>
+ </div>
+ -->
+ </div>
+ </template>
+</polymer-element>
+
+<polymer-element name="debugger-stack" extends="observatory-element">
+ <template>
+ <link rel="stylesheet" href="css/shared.css">
+ <template if="{{ stack == null }}">
+ Loading stack frames
+ </template>
+ <template if="{{ stack != null }}">
+ <ul class="list-group">
+ <template repeat="{{ frame in stack['members'] }}">
+ <li class="list-group-item">
+ <debugger-frame frame="{{ frame }}"
+ expand="{{ frame['depth'] == activeFrame }}">
+ </debugger-frame>
+ </li>
+ </template>
+ </ul>
+ </template>
+ </template>
+</polymer-element>
+
+
+<polymer-element name="debugger-frame" extends="observatory-element">
+ <template>
+ <link rel="stylesheet" href="css/shared.css">
+ <style>
+ .frameOuter {
+ position: relative;
+ padding: 5px;
+ border: 1px solid white;
+ }
+ .frameOuter:hover {
+ border: 1px solid #e0e0e0;
+ }
+ .shadow {
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.16),
+ 0 2px 5px 0 rgba(0, 0, 0, 0.26);
+ }
+ .frameSummaryText {
+ display: inline-block;
+ padding: 5px;
+ }
+ .frameId {
+ display: inline-block;
+ width: 60px;
+ }
+ .frameOuter .frameExpander {
+ position: absolute;
+ right: 5px;
+ top: 5px;
+ display: none;
+ }
+ .frameOuter:hover .frameExpander{
+ display: inline-block;
+ }
+ .frameContractor {
+ position: absolute;
+ right: 5px;
+ bottom: 5px;
+ display: inline-block;
+ }
+ </style>
+ <div id="frameOuter" class="frameOuter">
+ <a on-click="{{ toggleExpand }}">
+ <div class="frameSummary">
+ <div class="frameSummaryText">
+ <div class="frameId"><b>frame {{ frame['depth'] }}</b></div>
+ <function-ref ref="{{ frame['function'] }}"></function-ref>
+ ( <script-ref ref="{{ frame['script'] }}"
+ pos="{{ frame['tokenPos'] }}">
+ </script-ref> )
+ </div>
+ <template if="{{ !expanded }}">
+ <div class="frameExpander">
+ <icon-expand-more></icon-expand-more>
+ </div>
+ </template>
+ </div>
+ </a>
+
+ <template if="{{expanded}}">
+ <div class="frameDetails">
+ <div class="flex-row">
+ <div class="flex-item-60-percent">
+ <script-inset height="{{ scriptHeight }}"
+ script="{{ frame['function'].script }}"
+ startPos="{{ frame['function'].tokenPos }}"
+ endPos="{{ frame['function'].endTokenPos }}"
+ currentPos="{{ frame['tokenPos'] }}">
+ </script-inset>
+ </div>
+ <div class="flex-item-40-percent">
+ <div style="padding:10px;" class="memberList">
+ <template repeat="{{ v in frame['vars'] }}">
+ <div class="memberItem">
+ <div class="memberName">{{ v['name']}}</div>
+ <div class="memberValue">
+ <any-service-ref ref="{{ v['value'] }}">
+ </any-service-ref>
+ </div>
+ </div>
+ </template>
+ </div>
+ </div>
+ </div>
+ <!-- TODO(turnidge): Add eval box here? -->
+ <div class="frameContractor">
+ <template if="{{expanded}}">
+ <a on-click="{{ toggleExpand }}">
+ <icon-expand-less></icon-expand-less>
+ </a>
+ </template>
+ </div>
+ </div>
+ </template>
+ </div>
+ </template>
+</polymer-element>
+
+<polymer-element name="debugger-console" extends="observatory-element">
+ <template>
+ <link rel="stylesheet" href="css/shared.css">
+ <style>
+ .textBox {
+ position: absolute;
+ bottom: 0px;
+ width: 100%;
+ }
+ </style>
+ <div>
+ Debugging console is not yet implemented.<br>
+ </div>
+ </template>
+</polymer-element>
+
+<polymer-element name="debugger-input" extends="observatory-element">
+ <template>
+ <link rel="stylesheet" href="css/shared.css">
+ <style>
+ .textBox {
+ font: 400 16px 'Montserrat', sans-serif;
+ width: 100%;
+ }
+ </style>
+ <input id="textBox" class="textBox" type="text" value="{{ text }}">
+ </template>
+</polymer-element>
+
+<script type="application/dart" src="debugger.dart"></script>

Powered by Google App Engine
This is Rietveld 408576698