<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[200573] trunk/Source/WebInspectorUI</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/200573">200573</a></dd>
<dt>Author</dt> <dd>mattbaker@apple.com</dd>
<dt>Date</dt> <dd>2016-05-09 07:52:19 -0700 (Mon, 09 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Show in progress message in Timeline views that do not show data until the recording finishes
https://bugs.webkit.org/show_bug.cgi?id=156761
&lt;rdar://problem/25970771&gt;

Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
New UI strings.

* UserInterface/Main.html:
New view class.

* UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData):
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.get showsLiveRecordingData):
* UserInterface/Views/ScriptDetailsTimelineView.js:
(WebInspector.ScriptDetailsTimelineView.prototype.get showsLiveRecordingData):
* UserInterface/Views/ScriptProfileTimelineView.js:
(WebInspector.ScriptProfileTimelineView.prototype.get showsLiveRecordingData):
Don't show live recording data.

* UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.prototype.get showsLiveRecordingData):
Forward property to current child TimelineView.

* UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording &gt; .content-browser .recording-progress):
(.content-view.timeline-recording &gt; .content-browser .recording-progress &gt; .status):
(.content-view.timeline-recording &gt; .content-browser .recording-progress &gt; .status &gt; .indeterminate-progress-spinner):
New progress view styles.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
Refresh progress view visibility.

(WebInspector.TimelineRecordingContentView.prototype._updateProgressView):
Show the progress view if we're currently capturing, and showing a view
that doesn't support showing live data.

* UserInterface/Views/TimelineRecordingProgressView.js:
(WebInspector.TimelineRecordingProgressView):
(WebInspector.TimelineRecordingProgressView.prototype.get visible):
(WebInspector.TimelineRecordingProgressView.prototype.set visible):
Show a status message, indeterminate progress spinner, and Stop Recording
button while timeline data is being recorded.

* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.get showsLiveRecordingData):
Implemented by TimelineViews that don't support showing data while recording.

* UserInterface/Views/Variables.css:
(:root):
Add --panel-background-color-light for the progress view.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUILocalizationsenlprojlocalizedStringsjs">trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceMainhtml">trunk/Source/WebInspectorUI/UserInterface/Main.html</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsHeapAllocationsTimelineViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsRenderingFrameTimelineViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsScriptClusterTimelineViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/ScriptClusterTimelineView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsScriptDetailsTimelineViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsScriptProfileTimelineViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/ScriptProfileTimelineView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsTimelineRecordingContentViewcss">trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.css</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsTimelineRecordingContentViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsTimelineViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/TimelineView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVariablescss">trunk/Source/WebInspectorUI/UserInterface/Views/Variables.css</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsTimelineRecordingProgressViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingProgressView.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/ChangeLog        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -1,3 +1,63 @@
</span><ins>+2016-05-09  Matt Baker  &lt;mattbaker@apple.com&gt;
+
+        Web Inspector: Show in progress message in Timeline views that do not show data until the recording finishes
+        https://bugs.webkit.org/show_bug.cgi?id=156761
+        &lt;rdar://problem/25970771&gt;
+
+        Reviewed by Timothy Hatcher.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        New UI strings.
+
+        * UserInterface/Main.html:
+        New view class.
+
+        * UserInterface/Views/HeapAllocationsTimelineView.js:
+        (WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData):
+        * UserInterface/Views/RenderingFrameTimelineView.js:
+        (WebInspector.RenderingFrameTimelineView.prototype.get showsLiveRecordingData):
+        * UserInterface/Views/ScriptDetailsTimelineView.js:
+        (WebInspector.ScriptDetailsTimelineView.prototype.get showsLiveRecordingData):
+        * UserInterface/Views/ScriptProfileTimelineView.js:
+        (WebInspector.ScriptProfileTimelineView.prototype.get showsLiveRecordingData):
+        Don't show live recording data.
+
+        * UserInterface/Views/ScriptClusterTimelineView.js:
+        (WebInspector.ScriptClusterTimelineView.prototype.get showsLiveRecordingData):
+        Forward property to current child TimelineView.
+
+        * UserInterface/Views/TimelineRecordingContentView.css:
+        (.content-view.timeline-recording &gt; .content-browser .recording-progress):
+        (.content-view.timeline-recording &gt; .content-browser .recording-progress &gt; .status):
+        (.content-view.timeline-recording &gt; .content-browser .recording-progress &gt; .status &gt; .indeterminate-progress-spinner):
+        New progress view styles.
+
+        * UserInterface/Views/TimelineRecordingContentView.js:
+        (WebInspector.TimelineRecordingContentView):
+        (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
+        (WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
+        (WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
+        Refresh progress view visibility.
+
+        (WebInspector.TimelineRecordingContentView.prototype._updateProgressView):
+        Show the progress view if we're currently capturing, and showing a view
+        that doesn't support showing live data.
+
+        * UserInterface/Views/TimelineRecordingProgressView.js:
+        (WebInspector.TimelineRecordingProgressView):
+        (WebInspector.TimelineRecordingProgressView.prototype.get visible):
+        (WebInspector.TimelineRecordingProgressView.prototype.set visible):
+        Show a status message, indeterminate progress spinner, and Stop Recording
+        button while timeline data is being recorded.
+
+        * UserInterface/Views/TimelineView.js:
+        (WebInspector.TimelineView.prototype.get showsLiveRecordingData):
+        Implemented by TimelineViews that don't support showing data while recording.
+
+        * UserInterface/Views/Variables.css:
+        (:root):
+        Add --panel-background-color-light for the progress view.
+
</ins><span class="cx"> 2016-05-08  Matt Baker  &lt;mattbaker@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Add Breakpoints and Scripts folders to Debugger sidebar
</span></span></pre></div>
<a id="trunkSourceWebInspectorUILocalizationsenlprojlocalizedStringsjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -558,6 +558,7 @@
</span><span class="cx"> localizedStrings[&quot;Readonly&quot;] = &quot;Readonly&quot;;
</span><span class="cx"> localizedStrings[&quot;Reasons for compositing:&quot;] = &quot;Reasons for compositing:&quot;;
</span><span class="cx"> localizedStrings[&quot;Recording&quot;] = &quot;Recording&quot;;
</span><ins>+localizedStrings[&quot;Recording Timeline Data&quot;] = &quot;Recording Timeline Data&quot;;
</ins><span class="cx"> localizedStrings[&quot;Reference Issue&quot;] = &quot;Reference Issue&quot;;
</span><span class="cx"> localizedStrings[&quot;Reflection&quot;] = &quot;Reflection&quot;;
</span><span class="cx"> localizedStrings[&quot;Refresh&quot;] = &quot;Refresh&quot;;
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceMainhtml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Main.html (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Main.html        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Main.html        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -625,6 +625,7 @@
</span><span class="cx">     &lt;script src=&quot;Views/TimelineRecordBar.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;Views/TimelineRecordFrame.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;Views/TimelineRecordingContentView.js&quot;&gt;&lt;/script&gt;
</span><ins>+    &lt;script src=&quot;Views/TimelineRecordingProgressView.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx">     &lt;script src=&quot;Views/TimelineRuler.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;Views/ToggleButtonNavigationItem.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;Views/ToggleControlToolbarItem.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsHeapAllocationsTimelineViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -93,6 +93,8 @@
</span><span class="cx"> 
</span><span class="cx">     // Public
</span><span class="cx"> 
</span><ins>+    get showsLiveRecordingData() { return false; }
+
</ins><span class="cx">     showHeapSnapshotList()
</span><span class="cx">     {
</span><span class="cx">         if (this._showingSnapshotList)
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsRenderingFrameTimelineViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -108,6 +108,8 @@
</span><span class="cx"> 
</span><span class="cx">     // Public
</span><span class="cx"> 
</span><ins>+    get showsLiveRecordingData() { return false; }
+
</ins><span class="cx">     shown()
</span><span class="cx">     {
</span><span class="cx">         super.shown();
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsScriptClusterTimelineViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScriptClusterTimelineView.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/ScriptClusterTimelineView.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScriptClusterTimelineView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -61,6 +61,7 @@
</span><span class="cx">     // TimelineView
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Determine a better way to bridge TimelineView methods to the sub-timeline views.
</span><ins>+    get showsLiveRecordingData() { return this._contentViewContainer.currentContentView.showsLiveRecordingData; }
</ins><span class="cx">     get zeroTime() { return this._contentViewContainer.currentContentView.zeroTime; }
</span><span class="cx">     set zeroTime(x) { this._contentViewContainer.currentContentView.zeroTime = x; }
</span><span class="cx">     get startTime() { return this._contentViewContainer.currentContentView.startTime; }
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsScriptDetailsTimelineViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -89,6 +89,8 @@
</span><span class="cx"> 
</span><span class="cx">     // Public
</span><span class="cx"> 
</span><ins>+    get showsLiveRecordingData() { return false; }
+
</ins><span class="cx">     shown()
</span><span class="cx">     {
</span><span class="cx">         super.shown();
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsScriptProfileTimelineViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScriptProfileTimelineView.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/ScriptProfileTimelineView.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScriptProfileTimelineView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -65,6 +65,10 @@
</span><span class="cx">         // FIXME: Support filtering the ProfileView.
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    // Public
+
+    get showsLiveRecordingData() { return false; }
+
</ins><span class="cx">     // Protected
</span><span class="cx"> 
</span><span class="cx">     closed()
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsTimelineRecordingContentViewcss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.css (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.css        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.css        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -61,3 +61,28 @@
</span><span class="cx"> .content-view.timeline-recording &gt; .content-browser &gt; .navigation-bar &gt; .item.scope-bar.default-item-selected &gt; .multiple .arrows {
</span><span class="cx">     color: black;
</span><span class="cx"> }
</span><ins>+
+.content-view.timeline-recording &gt; .content-browser .recording-progress {
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 30px;
+    bottom: 0;
+    text-align: center;
+    background-color: var(--panel-background-color-light);
+}
+
+.content-view.timeline-recording &gt; .content-browser .recording-progress &gt; .status {
+    margin-top: 40px;
+    margin-bottom: 10px;
+    text-align: center;
+    font-size: 12px;
+    color: hsl(0, 0%, 12%);
+}
+
+.content-view.timeline-recording &gt; .content-browser .recording-progress &gt; .status &gt; .indeterminate-progress-spinner {
+    display: inline-block;
+    margin-top: -1px;
+    margin-left: 8px;
+    vertical-align: middle;
+}
</ins></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsTimelineRecordingContentViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -63,6 +63,9 @@
</span><span class="cx">         this._overviewTimelineView = new WebInspector.OverviewTimelineView(recording);
</span><span class="cx">         this._overviewTimelineView.secondsPerPixel = this._timelineOverview.secondsPerPixel;
</span><span class="cx"> 
</span><ins>+        this._progressView = new WebInspector.TimelineRecordingProgressView;
+        this._timelineContentBrowser.addSubview(this._progressView);
+
</ins><span class="cx">         this._timelineViewMap = new Map;
</span><span class="cx">         this._pathComponentMap = new Map;
</span><span class="cx"> 
</span><span class="lines">@@ -271,6 +274,7 @@
</span><span class="cx"> 
</span><span class="cx">         this._timelineOverview.viewMode = newViewMode;
</span><span class="cx">         this._updateTimelineOverviewHeight();
</span><ins>+        this._updateProgressView();
</ins><span class="cx"> 
</span><span class="cx">         if (timelineView) {
</span><span class="cx">             this._updateTimelineViewSelection(timelineView);
</span><span class="lines">@@ -431,6 +435,8 @@
</span><span class="cx"> 
</span><span class="cx">     _capturingStarted(event)
</span><span class="cx">     {
</span><ins>+        this._updateProgressView();
+
</ins><span class="cx">         if (!this._updating)
</span><span class="cx">             this._startUpdatingCurrentTime(event.data.startTime);
</span><span class="cx">         this._clearTimelineNavigationItem.enabled = !this._recording.readonly;
</span><span class="lines">@@ -438,6 +444,8 @@
</span><span class="cx"> 
</span><span class="cx">     _capturingStopped(event)
</span><span class="cx">     {
</span><ins>+        this._updateProgressView();
+
</ins><span class="cx">         if (this._updating)
</span><span class="cx">             this._stopUpdatingCurrentTime();
</span><span class="cx">     }
</span><span class="lines">@@ -714,4 +722,10 @@
</span><span class="cx">         let filtered = event.data.filtered;
</span><span class="cx">         this._timelineOverview.recordWasFiltered(this.currentTimelineView.representedObject, record, filtered);
</span><span class="cx">     }
</span><ins>+
+    _updateProgressView()
+    {
+        let isCapturing = WebInspector.timelineManager.isCapturing();
+        this._progressView.visible = isCapturing &amp;&amp; this.currentTimelineView &amp;&amp; !this.currentTimelineView.showsLiveRecordingData;
+    }
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsTimelineRecordingProgressViewjsfromrev200572trunkSourceWebInspectorUIUserInterfaceViewsTimelineRecordingContentViewcss"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingProgressView.js (from rev 200572, trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.css) (0 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingProgressView.js                                (rev 0)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineRecordingProgressView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+WebInspector.TimelineRecordingProgressView = class TimelineRecordingProgressView extends WebInspector.View
+{
+    constructor()
+    {
+        super();
+
+        this.element.classList.add(&quot;recording-progress&quot;);
+
+        let statusElement = document.createElement(&quot;div&quot;);
+        statusElement.classList.add(&quot;status&quot;);
+        statusElement.textContent = WebInspector.UIString(&quot;Recording Timeline Data&quot;);
+        this.element.append(statusElement);
+
+        let spinner = new WebInspector.IndeterminateProgressSpinner;
+        statusElement.append(spinner.element);
+
+        this._stopRecordingButtonElement = document.createElement(&quot;button&quot;);
+        this._stopRecordingButtonElement.textContent = WebInspector.UIString(&quot;Stop Recording&quot;);
+        this._stopRecordingButtonElement.addEventListener(&quot;click&quot;, () =&gt; WebInspector.timelineManager.stopCapturing());
+        this.element.append(this._stopRecordingButtonElement);
+    }
+
+    // Public
+
+    get visible() { return this._visible; }
+
+    set visible(x)
+    {
+        if (this._visible === x)
+            return;
+
+        // FIXME: remove once &lt;https://webkit.org/b/150741&gt; is fixed.
+        this._visible = x;
+        this.element.classList.toggle(&quot;hidden&quot;, !this._visible);
+    }
+};
</ins></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsTimelineViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineView.js (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineView.js        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineView.js        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -43,6 +43,12 @@
</span><span class="cx"> 
</span><span class="cx">     // Public
</span><span class="cx"> 
</span><ins>+    get showsLiveRecordingData()
+    {
+        // Implemented by sub-classes if needed.
+        return true;
+    }
+
</ins><span class="cx">     get navigationItems()
</span><span class="cx">     {
</span><span class="cx">         return this._scopeBar ? [this._scopeBar] : [];
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVariablescss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Variables.css (200572 => 200573)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/Variables.css        2016-05-09 10:17:29 UTC (rev 200572)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Variables.css        2016-05-09 14:52:19 UTC (rev 200573)
</span><span class="lines">@@ -45,6 +45,7 @@
</span><span class="cx"> 
</span><span class="cx">     --border-color: hsl(0, 0%, 70%);
</span><span class="cx">     --panel-background-color: hsl(0, 0%, 94%);
</span><ins>+    --panel-background-color-light: hsl(0, 0%, 96%);
</ins><span class="cx"> 
</span><span class="cx">     --console-secondary-text-color: hsla(0, 0%, 0%, 0.33);
</span><span class="cx">     --console-prompt-min-height: 30px;
</span></span></pre>
</div>
</div>

</body>
</html>