<!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>[201057] 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/201057">201057</a></dd>
<dt>Author</dt> <dd>mattbaker@apple.com</dd>
<dt>Date</dt> <dd>2016-05-17 17:13:24 -0700 (Tue, 17 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Remove TimelineSidebarPanel.js as it's no longer referenced anywhere
https://bugs.webkit.org/show_bug.cgi?id=157819

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineSidebarPanel.js: Removed.
Removed unused file.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsTimelineSidebarPaneljs">trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (201056 => 201057)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2016-05-17 23:24:19 UTC (rev 201056)
+++ trunk/Source/WebInspectorUI/ChangeLog        2016-05-18 00:13:24 UTC (rev 201057)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-05-17  Matt Baker  &lt;mattbaker@apple.com&gt;
+
+        Web Inspector: Remove TimelineSidebarPanel.js as it's no longer referenced anywhere
+        https://bugs.webkit.org/show_bug.cgi?id=157819
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Views/TimelineSidebarPanel.js: Removed.
+        Removed unused file.
+
</ins><span class="cx"> 2016-05-17  Brian Burg  &lt;bburg@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: inspector tests should redirect and log console.trace() calls in test output
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsTimelineSidebarPaneljs"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js (201056 => 201057)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js        2016-05-17 23:24:19 UTC (rev 201056)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js        2016-05-18 00:13:24 UTC (rev 201057)
</span><span class="lines">@@ -1,1064 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013, 2015 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.TimelineSidebarPanel = class TimelineSidebarPanel extends WebInspector.NavigationSidebarPanel
-{
-    constructor(contentBrowser)
-    {
-        super(&quot;timeline&quot;, WebInspector.UIString(&quot;Timelines&quot;));
-
-        this.contentBrowser = contentBrowser;
-
-        this._timelineEventsTitleBarContainer = document.createElement(&quot;div&quot;);
-        this._timelineEventsTitleBarContainer.classList.add(WebInspector.TimelineSidebarPanel.TitleBarStyleClass);
-        this._timelineEventsTitleBarContainer.classList.add(WebInspector.TimelineSidebarPanel.TimelineEventsTitleBarStyleClass);
-
-        this._timelineEventsTitleBarElement = document.createElement(&quot;div&quot;);
-        this._timelineEventsTitleBarElement.classList.add(WebInspector.TimelineSidebarPanel.TitleBarTextStyleClass);
-        this._timelineEventsTitleBarContainer.appendChild(this._timelineEventsTitleBarElement);
-
-        this._timelineEventsTitleBarScopeContainer = document.createElement(&quot;div&quot;);
-        this._timelineEventsTitleBarScopeContainer.classList.add(WebInspector.TimelineSidebarPanel.TitleBarScopeBarStyleClass);
-        this._timelineEventsTitleBarContainer.appendChild(this._timelineEventsTitleBarScopeContainer);
-
-        this.element.insertBefore(this._timelineEventsTitleBarContainer, this.element.firstChild);
-
-        this.contentTreeOutlineLabel = &quot;&quot;;
-
-        this._timelinesContentContainerElement = document.createElement(&quot;div&quot;);
-        this._timelinesContentContainerElement.classList.add(WebInspector.TimelineSidebarPanel.TimelinesContentContainerStyleClass);
-        this.element.insertBefore(this._timelinesContentContainerElement, this.element.firstChild);
-
-        this._displayedRecording = null;
-        this._displayedContentView = null;
-        this._viewMode = null;
-        this._previousSelectedTimelineType = null;
-
-        // Maintain an invisible tree outline containing tree elements for all recordings.
-        // The visible recording's tree element is selected when the content view changes.
-        this._recordingTreeElementMap = new Map;
-        this._recordingsTreeOutline = this.createContentTreeOutline(true, true);
-        this._recordingsTreeOutline.disclosureButtons = false;
-        this._recordingsTreeOutline.hidden = true;
-        this._recordingsTreeOutline.addEventListener(WebInspector.TreeOutline.Event.SelectionDidChange, this._recordingsTreeSelectionDidChange, this);
-        this._timelinesContentContainerElement.appendChild(this._recordingsTreeOutline.element);
-
-        // Maintain a tree outline with tree elements for each timeline of the selected recording.
-        this._timelinesTreeOutline = this.createContentTreeOutline(true, true);
-        this._timelinesTreeOutline.disclosureButtons = false;
-        this._timelinesTreeOutline.large = true;
-        this._timelinesTreeOutline.addEventListener(WebInspector.TreeOutline.Event.SelectionDidChange, this._timelinesTreeSelectionDidChange, this);
-        this._timelinesContentContainerElement.appendChild(this._timelinesTreeOutline.element);
-
-        this._timelineTreeElementMap = new Map;
-
-        this._basicTitleBar = document.createElement(&quot;div&quot;);
-        this._basicTitleBar.textContent = WebInspector.UIString(&quot;Timelines&quot;);
-        this._basicTitleBar.classList.add(WebInspector.TimelineSidebarPanel.TitleBarStyleClass);
-        this._basicTitleBar.classList.add(WebInspector.TimelineSidebarPanel.TimelinesTitleBarStyleClass);
-        this.element.insertBefore(this._basicTitleBar, this.element.firstChild);
-
-        if (WebInspector.FPSInstrument.supported()) {
-            let timelinesNavigationItem = new WebInspector.RadioButtonNavigationItem(WebInspector.TimelineOverview.ViewMode.Timelines, WebInspector.UIString(&quot;Timelines&quot;))
-            let renderingFramesNavigationItem = new WebInspector.RadioButtonNavigationItem(WebInspector.TimelineOverview.ViewMode.RenderingFrames, WebInspector.UIString(&quot;Rendering Frames&quot;))
-            this._viewModeNavigationBar = new WebInspector.NavigationBar(null, [timelinesNavigationItem, renderingFramesNavigationItem], &quot;tablist&quot;);
-            this._viewModeNavigationBar.addEventListener(WebInspector.NavigationBar.Event.NavigationItemSelected, this._viewModeSelected, this);
-
-            this._renderingFramesTitleBar = document.createElement(&quot;div&quot;);
-            this._renderingFramesTitleBar.className = &quot;navigation-bar-container&quot;;
-            this._renderingFramesTitleBar.appendChild(this._viewModeNavigationBar.element);
-            this._renderingFramesTitleBar.hidden = true;
-            this.element.insertBefore(this._renderingFramesTitleBar, this.element.firstChild);
-
-            this._chartColors = new Map;
-            this._chartColors.set(WebInspector.RenderingFrameTimelineRecord.TaskType.Script, &quot;rgb(153, 113, 185)&quot;);
-            this._chartColors.set(WebInspector.RenderingFrameTimelineRecord.TaskType.Layout, &quot;rgb(212, 108, 108)&quot;);
-            this._chartColors.set(WebInspector.RenderingFrameTimelineRecord.TaskType.Paint, &quot;rgb(152, 188, 77)&quot;);
-            this._chartColors.set(WebInspector.RenderingFrameTimelineRecord.TaskType.Other, &quot;rgb(221, 221, 221)&quot;);
-
-            this._frameSelectionChartRow = new WebInspector.ChartDetailsSectionRow(this, 74, 0.5);
-            this._frameSelectionChartRow.addEventListener(WebInspector.ChartDetailsSectionRow.Event.LegendItemChecked, this._frameSelectionLegendItemChecked, this);
-
-            for (let key in WebInspector.RenderingFrameTimelineRecord.TaskType) {
-                let taskType = WebInspector.RenderingFrameTimelineRecord.TaskType[key];
-                let label = WebInspector.RenderingFrameTimelineRecord.displayNameForTaskType(taskType);
-                let color = this._chartColors.get(taskType);
-                let checkbox = taskType !== WebInspector.RenderingFrameTimelineRecord.TaskType.Other;
-                this._frameSelectionChartRow.addItem(taskType, label, 0, color, checkbox, true);
-            }
-
-            this._renderingFrameTaskFilter = new Set;
-
-            var chartGroup = new WebInspector.DetailsSectionGroup([this._frameSelectionChartRow]);
-            this._frameSelectionChartSection = new WebInspector.DetailsSection(&quot;frames-selection-chart&quot;, WebInspector.UIString(&quot;Selected Frames&quot;), [chartGroup], null, true);
-            this._timelinesContentContainerElement.appendChild(this._frameSelectionChartSection.element);
-        }
-
-        this._toggleRecordingShortcut = new WebInspector.KeyboardShortcut(null, WebInspector.KeyboardShortcut.Key.Space, this._toggleRecordingOnSpacebar.bind(this));
-        this._toggleRecordingShortcut.implicitlyPreventsDefault = false;
-        this._toggleRecordingShortcut.disabled = true;
-
-        this._toggleNewRecordingShortcut = new WebInspector.KeyboardShortcut(WebInspector.KeyboardShortcut.Modifier.Shift, WebInspector.KeyboardShortcut.Key.Space, this._toggleNewRecordingOnSpacebar.bind(this));
-        this._toggleNewRecordingShortcut.implicitlyPreventsDefault = false;
-        this._toggleNewRecordingShortcut.disabled = true;
-
-        this._recordingNavigationBar = new WebInspector.NavigationBar;
-        this.element.insertBefore(this._recordingNavigationBar.element, this.element.firstChild);
-
-        let toolTip = WebInspector.UIString(&quot;Start recording (%s)\nCreate new recording (%s)&quot;).format(this._toggleRecordingShortcut.displayName, this._toggleNewRecordingShortcut.displayName);
-        let altToolTip = WebInspector.UIString(&quot;Stop recording (%s)&quot;).format(this._toggleRecordingShortcut.displayName);
-
-        this._recordButton = new WebInspector.ToggleButtonNavigationItem(&quot;record-start-stop&quot;, toolTip, altToolTip, &quot;Images/Record.svg&quot;, &quot;Images/Stop.svg&quot;, 13, 13);
-        this._recordButton.addEventListener(WebInspector.ButtonNavigationItem.Event.Clicked, this._recordButtonClicked, this);
-        this._recordButton.element.addEventListener(&quot;mouseover&quot;, this._recordButtonMousedOver.bind(this));
-        this._recordButton.element.addEventListener(&quot;mouseout&quot;, this._recordButtonMousedOut.bind(this));
-        this._recordingNavigationBar.addNavigationItem(this._recordButton);
-
-        this._recordingStatusItem = new WebInspector.FlexibleSpaceNavigationItem;
-        this._recordingNavigationBar.addNavigationItem(this._recordingStatusItem);
-
-        WebInspector.showReplayInterfaceSetting.addEventListener(WebInspector.Setting.Event.Changed, this._updateReplayInterfaceVisibility, this);
-
-        // We always create a replay navigation bar; its visibility is controlled by WebInspector.showReplayInterfaceSetting.
-        this._replayNavigationBar = new WebInspector.NavigationBar;
-        this.element.appendChild(this._replayNavigationBar.element);
-
-        toolTip = WebInspector.UIString(&quot;Begin Capturing&quot;);
-        altToolTip = WebInspector.UIString(&quot;End Capturing&quot;);
-        this._replayCaptureButtonItem = new WebInspector.ActivateButtonNavigationItem(&quot;replay-capture&quot;, toolTip, altToolTip, &quot;Images/Circle.svg&quot;, 16, 16);
-        this._replayCaptureButtonItem.addEventListener(WebInspector.ButtonNavigationItem.Event.Clicked, this._replayCaptureButtonClicked, this);
-        this._replayCaptureButtonItem.enabled = true;
-        this._replayNavigationBar.addNavigationItem(this._replayCaptureButtonItem);
-
-        toolTip = WebInspector.UIString(&quot;Start Playback&quot;);
-        altToolTip = WebInspector.UIString(&quot;Pause Playback&quot;);
-        this._replayPauseResumeButtonItem = new WebInspector.ToggleButtonNavigationItem(&quot;replay-pause-resume&quot;, toolTip, altToolTip, &quot;Images/Resume.svg&quot;, &quot;Images/Pause.svg&quot;, 15, 15);
-        this._replayPauseResumeButtonItem.addEventListener(WebInspector.ButtonNavigationItem.Event.Clicked, this._replayPauseResumeButtonClicked, this);
-        this._replayPauseResumeButtonItem.enabled = false;
-        this._replayNavigationBar.addNavigationItem(this._replayPauseResumeButtonItem);
-
-        WebInspector.replayManager.addEventListener(WebInspector.ReplayManager.Event.CaptureStarted, this._captureStarted, this);
-        WebInspector.replayManager.addEventListener(WebInspector.ReplayManager.Event.CaptureStopped, this._captureStopped, this);
-
-        this._recordingNavigationBar.element.oncontextmenu = this._contextMenuNavigationBarOrStatusBar.bind(this);
-        this._replayNavigationBar.element.oncontextmenu = this._contextMenuNavigationBarOrStatusBar.bind(this);
-        this._updateReplayInterfaceVisibility();
-
-        WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.Event.RecordingCreated, this._recordingCreated, this);
-        WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.Event.RecordingLoaded, this._recordingLoaded, this);
-
-        this.contentBrowser.addEventListener(WebInspector.ContentBrowser.Event.CurrentContentViewDidChange, this._contentBrowserCurrentContentViewDidChange, this);
-        WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.Event.CapturingStarted, this._capturingStartedOrStopped, this);
-        WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.Event.CapturingStopped, this._capturingStartedOrStopped, this);
-
-        for (var recording of WebInspector.timelineManager.recordings)
-            this._addRecording(recording);
-
-        this._recordingCountChanged();
-
-        if (WebInspector.timelineManager.activeRecording)
-            this._recordingLoaded();
-    }
-
-    // Public
-
-    get minimumWidth()
-    {
-        if (WebInspector.FPSInstrument.supported())
-            return Math.max(this._replayNavigationBar.minimumWidth, this._viewModeNavigationBar.minimumWidth);
-        return this._replayNavigationBar.minimumWidth;
-    }
-
-    shown()
-    {
-        super.shown();
-
-        if (this._displayedContentView)
-            this.contentBrowser.showContentView(this._displayedContentView);
-
-        this._toggleRecordingShortcut.disabled = false;
-        this._toggleNewRecordingShortcut.disabled = false;
-
-        this._updateTimelineOverviewHeight();
-    }
-
-    hidden()
-    {
-        super.hidden();
-
-        this._toggleRecordingShortcut.disabled = true;
-        this._toggleNewRecordingShortcut.disabled = true;
-    }
-
-    closed()
-    {
-        super.closed();
-
-        WebInspector.showReplayInterfaceSetting.removeEventListener(null, null, this);
-        WebInspector.replayManager.removeEventListener(null, null, this);
-        WebInspector.timelineManager.removeEventListener(null, null, this);
-
-        WebInspector.timelineManager.reset();
-    }
-
-    showDefaultContentView()
-    {
-        if (this._displayedContentView)
-            this.showTimelineOverview();
-    }
-
-    treeElementForRepresentedObject(representedObject)
-    {
-        if (representedObject instanceof WebInspector.TimelineRecording)
-            return this._recordingTreeElementMap.get(representedObject);
-
-        // This fails if the timeline does not belong to the selected recording.
-        if (representedObject instanceof WebInspector.Timeline) {
-            var foundTreeElement = this._timelineTreeElementMap.get(representedObject);
-            if (foundTreeElement)
-                return foundTreeElement;
-        }
-
-        // The main resource is used as the representedObject instead of Frame in our tree.
-        if (representedObject instanceof WebInspector.Frame)
-            representedObject = representedObject.mainResource;
-
-        var foundTreeElement = this.contentTreeOutline.getCachedTreeElement(representedObject);
-        if (foundTreeElement)
-            return foundTreeElement;
-
-        // Look for TreeElements loosely based on represented objects that can contain the represented
-        // object we are really looking for. This allows a SourceCodeTimelineTreeElement or a
-        // TimelineRecordTreeElement to stay selected when the Resource it represents is showing.
-
-        function looselyCompareRepresentedObjects(candidateTreeElement)
-        {
-            if (!candidateTreeElement)
-                return false;
-
-            var candidateRepresentedObject = candidateTreeElement.representedObject;
-            if (candidateRepresentedObject instanceof WebInspector.SourceCodeTimeline) {
-                if (candidateRepresentedObject.sourceCode === representedObject)
-                    return true;
-                return false;
-            } else if (candidateRepresentedObject instanceof WebInspector.Timeline &amp;&amp; representedObject instanceof WebInspector.Timeline) {
-                // Reopen to the same timeline, even if a different parent recording is currently shown.
-                if (candidateRepresentedObject.type === representedObject.type)
-                    return true;
-                return false;
-            }
-
-            if (candidateRepresentedObject instanceof WebInspector.TimelineRecord) {
-                if (!candidateRepresentedObject.sourceCodeLocation)
-                    return false;
-                if (candidateRepresentedObject.sourceCodeLocation.sourceCode === representedObject)
-                    return true;
-                return false;
-            }
-
-            if (candidateRepresentedObject instanceof WebInspector.ProfileNode)
-                return false;
-
-            console.error(&quot;Unknown TreeElement&quot;, candidateTreeElement);
-            return false;
-        }
-
-        // Check the selected tree element first so we don't need to do a longer search and it is
-        // likely to be the best candidate for the current view.
-        if (looselyCompareRepresentedObjects(this.contentTreeOutline.selectedTreeElement))
-            return this.contentTreeOutline.selectedTreeElement;
-
-        var currentTreeElement = this._contentTreeOutline.children[0];
-        while (currentTreeElement &amp;&amp; !currentTreeElement.root) {
-            if (looselyCompareRepresentedObjects(currentTreeElement))
-                return currentTreeElement;
-            currentTreeElement = currentTreeElement.traverseNextTreeElement(false, null, false);
-        }
-
-        return null;
-    }
-
-    get contentTreeOutlineLabel()
-    {
-        return this._timelineEventsTitleBarElement.textContent;
-    }
-
-    set contentTreeOutlineLabel(label)
-    {
-        label = label || WebInspector.UIString(&quot;Timeline Events&quot;);
-
-        this._timelineEventsTitleBarElement.textContent = label;
-        this.filterBar.placeholder = WebInspector.UIString(&quot;Filter %s&quot;).format(label);
-    }
-
-    get contentTreeOutlineScopeBar()
-    {
-        return this._timelineEventsTitleBarScopeContainer.children;
-    }
-
-    set contentTreeOutlineScopeBar(scopeBar)
-    {
-        this._timelineEventsTitleBarScopeContainer.removeChildren();
-
-        if (!scopeBar || !scopeBar.element)
-            return;
-
-        this._timelineEventsTitleBarScopeContainer.appendChild(scopeBar.element);
-    }
-
-    showTimelineOverview()
-    {
-        if (this._timelinesTreeOutline.selectedTreeElement)
-            this._timelinesTreeOutline.selectedTreeElement.deselect();
-
-        this._displayedContentView.showOverviewTimelineView();
-        this.contentBrowser.showContentView(this._displayedContentView);
-    }
-
-    showTimelineViewForTimeline(timeline)
-    {
-        console.assert(timeline instanceof WebInspector.Timeline, timeline);
-        console.assert(this._displayedRecording.timelines.has(timeline.type), &quot;Cannot show timeline because it does not belong to the shown recording.&quot;, timeline.type);
-
-        if (this._timelineTreeElementMap.has(timeline)) {
-            // Defer showing the relevant timeline to the onselect handler of the timelines tree element.
-            var wasSelectedByUser = true;
-            var shouldSuppressOnSelect = false;
-            this._timelineTreeElementMap.get(timeline).select(true, wasSelectedByUser, shouldSuppressOnSelect, true);
-        } else {
-            this._displayedContentView.showTimelineViewForTimeline(timeline);
-            this.contentBrowser.showContentView(this._displayedContentView);
-        }
-    }
-
-    updateFrameSelection(startFrameIndex, endFrameIndex)
-    {
-        console.assert(startFrameIndex &lt;= endFrameIndex, startFrameIndex, endFrameIndex);
-        if (this._startFrameIndex === startFrameIndex &amp;&amp; this._endFrameIndex === endFrameIndex)
-            return;
-
-        this._startFrameIndex = startFrameIndex;
-        this._endFrameIndex = endFrameIndex;
-
-        this._refreshFrameSelectionChart();
-    }
-
-    formatChartValue(value)
-    {
-        return this._frameSelectionChartRow.total === 0 ? &quot;&quot; : Number.secondsToString(value);
-    }
-
-    // Protected
-
-    representedObjectWasFiltered(representedObject, filtered)
-    {
-        super.representedObjectWasFiltered(representedObject, filtered);
-
-        if (representedObject instanceof WebInspector.TimelineRecord)
-            this._displayedContentView.recordWasFiltered(representedObject, filtered);
-    }
-
-    updateFilter()
-    {
-        super.updateFilter();
-
-        this._displayedContentView.filterDidChange();
-    }
-
-    shouldFilterPopulate()
-    {
-        return false;
-    }
-
-    hasCustomFilters()
-    {
-        return true;
-    }
-
-    matchTreeElementAgainstCustomFilters(treeElement)
-    {
-        if (!this._displayedContentView)
-            return true;
-
-        if (this._viewMode === WebInspector.TimelineOverview.ViewMode.RenderingFrames &amp;&amp; this._renderingFrameTaskFilter.size) {
-            while (treeElement &amp;&amp; !(treeElement.record instanceof WebInspector.TimelineRecord))
-                treeElement = treeElement.parent;
-
-            console.assert(treeElement, &quot;Cannot apply task filter: no TimelineRecord found.&quot;);
-            if (!treeElement)
-                return false;
-
-            let records;
-            if (treeElement.record instanceof WebInspector.RenderingFrameTimelineRecord)
-                records = treeElement.record.children;
-            else
-                records = [treeElement.record];
-
-            const filtered = records.every(function(record) {
-                var taskType = WebInspector.RenderingFrameTimelineRecord.taskTypeForTimelineRecord(record);
-                return this._renderingFrameTaskFilter.has(taskType);
-            }, this);
-
-            if (filtered)
-                return false;
-        }
-
-        return this._displayedContentView.matchTreeElementAgainstCustomFilters(treeElement);
-    }
-
-    treeElementAddedOrChanged(treeElement)
-    {
-        if (treeElement.status)
-            return;
-
-        if (!treeElement.treeOutline || typeof treeElement.treeOutline.__canShowContentViewForTreeElement !== &quot;function&quot;)
-            return;
-
-        if (!treeElement.treeOutline.__canShowContentViewForTreeElement(treeElement))
-            return;
-
-        var fragment = document.createDocumentFragment();
-
-        var closeButton = new WebInspector.TreeElementStatusButton(useSVGSymbol(&quot;Images/Close.svg&quot;, null, WebInspector.UIString(&quot;Close resource view&quot;)));
-        closeButton.element.classList.add(&quot;close&quot;);
-        closeButton.addEventListener(WebInspector.TreeElementStatusButton.Event.Clicked, this._treeElementCloseButtonClicked, this);
-        fragment.appendChild(closeButton.element);
-
-        var goToButton = new WebInspector.TreeElementStatusButton(WebInspector.createGoToArrowButton());
-        goToButton.__treeElement = treeElement;
-        goToButton.addEventListener(WebInspector.TreeElementStatusButton.Event.Clicked, this._treeElementGoToArrowWasClicked, this);
-        fragment.appendChild(goToButton.element);
-
-        treeElement.status = fragment;
-    }
-
-    canShowDifferentContentView()
-    {
-        if (this._clickedTreeElementGoToArrow)
-            return true;
-
-        if (this.contentBrowser.currentContentView instanceof WebInspector.TimelineRecordingContentView)
-            return false;
-
-        return !this.restoringState || !this._restoredShowingTimelineRecordingContentView;
-    }
-
-    saveStateToCookie(cookie)
-    {
-        console.assert(cookie);
-
-        cookie[WebInspector.TimelineSidebarPanel.ShowingTimelineRecordingContentViewCookieKey] = this.contentBrowser.currentContentView instanceof WebInspector.TimelineRecordingContentView;
-
-        if (this._viewMode === WebInspector.TimelineOverview.ViewMode.RenderingFrames)
-            cookie[WebInspector.TimelineSidebarPanel.SelectedTimelineViewIdentifierCookieKey] = WebInspector.TimelineRecord.Type.RenderingFrame;
-        else {
-            var currentTimelineView = this._displayedContentView ? this._displayedContentView.currentTimelineView : null;
-            if (currentTimelineView &amp;&amp; currentTimelineView.representedObject instanceof WebInspector.Timeline)
-                cookie[WebInspector.TimelineSidebarPanel.SelectedTimelineViewIdentifierCookieKey] = currentTimelineView.representedObject.type;
-            else
-                cookie[WebInspector.TimelineSidebarPanel.SelectedTimelineViewIdentifierCookieKey] = WebInspector.TimelineSidebarPanel.OverviewTimelineIdentifierCookieValue;    
-        }
-
-        super.saveStateToCookie(cookie);
-    }
-
-    restoreStateFromCookie(cookie, relaxedMatchDelay)
-    {
-        console.assert(cookie);
-
-        // The _displayedContentView is not ready on initial load, so delay the restore.
-        // This matches the delayed work in the WebInspector.TimelineSidebarPanel constructor.
-        if (!this._displayedContentView) {
-            setTimeout(this.restoreStateFromCookie.bind(this, cookie, relaxedMatchDelay), 0);
-            return;
-        }
-
-        this._restoredShowingTimelineRecordingContentView = cookie[WebInspector.TimelineSidebarPanel.ShowingTimelineRecordingContentViewCookieKey];
-
-        var selectedTimelineViewIdentifier = cookie[WebInspector.TimelineSidebarPanel.SelectedTimelineViewIdentifierCookieKey];
-        if (selectedTimelineViewIdentifier === WebInspector.TimelineRecord.Type.RenderingFrame &amp;&amp; !WebInspector.FPSInstrument.supported())
-            selectedTimelineViewIdentifier = null;
-
-        if (selectedTimelineViewIdentifier &amp;&amp; this._displayedRecording.timelines.has(selectedTimelineViewIdentifier))
-            this.showTimelineViewForTimeline(this._displayedRecording.timelines.get(selectedTimelineViewIdentifier));
-        else
-            this.showTimelineOverview();
-
-        // Don't call NavigationSidebarPanel.restoreStateFromCookie, because it tries to match based
-        // on type only as a last resort. This would cause the first recording to be reselected on reload.
-    }
-
-    // Private
-
-    _toggleRecordingOnSpacebar(event)
-    {
-        if (WebInspector.isEventTargetAnEditableField(event))
-            return;
-
-        this._toggleRecording();
-
-        event.preventDefault();
-    }
-
-    _toggleNewRecordingOnSpacebar(event)
-    {
-        if (WebInspector.isEventTargetAnEditableField(event))
-            return;
-
-        this._toggleRecording(true);
-
-        event.preventDefault();
-    }
-
-    _toggleRecording(shouldCreateRecording)
-    {
-        if (WebInspector.timelineManager.isCapturing()) {
-            WebInspector.timelineManager.stopCapturing();
-        } else {
-            WebInspector.timelineManager.startCapturing(shouldCreateRecording);
-            // Show the timeline to which events will be appended.
-            this._recordingLoaded();
-        }
-    }
-
-    _treeElementGoToArrowWasClicked(event)
-    {
-        this._clickedTreeElementGoToArrow = true;
-
-        var treeElement = event.target.__treeElement;
-        console.assert(treeElement instanceof WebInspector.TreeElement);
-
-        treeElement.select(true, true);
-
-        this._clickedTreeElementGoToArrow = false;
-    }
-
-    _treeElementCloseButtonClicked(event)
-    {
-        var currentTimelineView = this._displayedContentView ? this._displayedContentView.currentTimelineView : null;
-        if (currentTimelineView &amp;&amp; currentTimelineView.representedObject instanceof WebInspector.Timeline)
-            this.showTimelineViewForTimeline(currentTimelineView.representedObject);
-        else
-            this.showTimelineOverview();
-    }
-
-    _recordingsTreeSelectionDidChange(event)
-    {
-        let treeElement = event.data.selectedElement;
-        if (!treeElement)
-            return;
-
-        console.assert(treeElement.representedObject instanceof WebInspector.TimelineRecording);
-
-        this._recordingSelected(treeElement.representedObject);
-    }
-
-    _renderingFrameTimelineTimesUpdated(event)
-    {
-        if (this._viewMode === WebInspector.TimelineOverview.ViewMode.RenderingFrames)
-            this._refreshFrameSelectionChart();
-    }
-
-    _timelinesTreeSelectionDidChange(event)
-    {
-        let treeElement = event.data.selectedElement;
-        if (!treeElement)
-            return;
-
-        console.assert(this._timelineTreeElementMap.get(treeElement.representedObject) === treeElement, treeElement);
-
-        // If not selected by user, then this selection merely synced the tree element with the content view's contents.
-        let selectedByUser = event.data.selectedByUser;
-        if (!selectedByUser) {
-            console.assert(this._displayedContentView.currentTimelineView.representedObject === treeElement.representedObject);
-            return;
-        }
-
-        let timeline = treeElement.representedObject;
-        console.assert(timeline instanceof WebInspector.Timeline, timeline);
-        console.assert(this._displayedRecording.timelines.get(timeline.type) === timeline, timeline);
-
-        this._previousSelectedTimelineType = timeline.type;
-
-        this._displayedContentView.showTimelineViewForTimeline(timeline);
-        this.contentBrowser.showContentView(this._displayedContentView);
-    }
-
-    _contentBrowserCurrentContentViewDidChange(event)
-    {
-        let didShowTimelineRecordingContentView = this.contentBrowser.currentContentView instanceof WebInspector.TimelineRecordingContentView;
-        this.element.classList.toggle(WebInspector.TimelineSidebarPanel.TimelineRecordingContentViewShowingStyleClass, didShowTimelineRecordingContentView);
-
-        if (!didShowTimelineRecordingContentView)
-            return;
-
-        this._updateViewModeIfNeeded();
-        this._timelineCountChanged();
-
-        this.updateFilter();
-
-        let timelineView = this.contentBrowser.currentContentView.currentTimelineView;
-        if (timelineView.representedObject.type === WebInspector.TimelineRecord.Type.RenderingFrame)
-            this._refreshFrameSelectionChart();
-    }
-
-    _capturingStartedOrStopped(event)
-    {
-        let isCapturing = WebInspector.timelineManager.isCapturing();
-        this._updateRecordButton(isCapturing);
-    }
-
-    _recordingCreated(event)
-    {
-        this._addRecording(event.data.recording)
-        this._recordingCountChanged();
-    }
-
-    _addRecording(recording)
-    {
-        console.assert(recording instanceof WebInspector.TimelineRecording, recording);
-
-        var recordingTreeElement = new WebInspector.GeneralTreeElement(WebInspector.TimelineSidebarPanel.StopwatchIconStyleClass, recording.displayName, null, recording);
-        this._recordingTreeElementMap.set(recording, recordingTreeElement);
-        this._recordingsTreeOutline.appendChild(recordingTreeElement);
-    }
-
-    _recordingCountChanged()
-    {
-        var previousTreeElement = null;
-        for (var treeElement of this._recordingTreeElementMap.values()) {
-            if (previousTreeElement) {
-                previousTreeElement.nextSibling = treeElement;
-                treeElement.previousSibling = previousTreeElement;
-            }
-
-            previousTreeElement = treeElement;
-        }
-    }
-
-    _recordingSelected(recording)
-    {
-        console.assert(recording instanceof WebInspector.TimelineRecording, recording);
-
-        var oldRecording = this._displayedRecording || null;
-
-        if (oldRecording) {
-            oldRecording.removeEventListener(WebInspector.TimelineRecording.Event.InstrumentAdded, this._instrumentAdded, this);
-            oldRecording.removeEventListener(WebInspector.TimelineRecording.Event.InstrumentRemoved, this._instrumentRemoved, this);
-
-            // Destroy tree elements in one operation to avoid unnecessary fixups.
-            this._timelinesTreeOutline.removeChildren();
-            this._timelineTreeElementMap.clear();
-        }
-
-        this._clearInstruments();
-
-        this._displayedRecording = recording;
-        this._displayedRecording.addEventListener(WebInspector.TimelineRecording.Event.InstrumentAdded, this._instrumentAdded, this);
-        this._displayedRecording.addEventListener(WebInspector.TimelineRecording.Event.InstrumentRemoved, this._instrumentRemoved, this);
-
-        for (let instrument of recording.instruments)
-            this._instrumentAdded(instrument);
-
-        // Save the current state incase we need to restore it to a new recording.
-        var cookie = {};
-        this.saveStateToCookie(cookie);
-
-        if (this._displayedContentView)
-            this._displayedContentView.removeEventListener(WebInspector.ContentView.Event.NavigationItemsDidChange, this._updateViewModeIfNeeded, this);
-
-        // Try to get the recording content view if it exists already, if it does we don't want to restore the cookie.
-        var onlyExisting = true;
-        this._displayedContentView = this.contentBrowser.contentViewForRepresentedObject(this._displayedRecording, onlyExisting, {timelineSidebarPanel: this});
-        if (this._displayedContentView) {
-            this._displayedContentView.addEventListener(WebInspector.ContentView.Event.NavigationItemsDidChange, this._updateViewModeIfNeeded, this);
-
-            // Show the timeline that was being shown to update the sidebar tree state.
-            var currentTimelineView = this._displayedContentView.currentTimelineView;
-            if (currentTimelineView &amp;&amp; currentTimelineView.representedObject instanceof WebInspector.Timeline)
-                this.showTimelineViewForTimeline(currentTimelineView.representedObject);
-            else
-                this.showTimelineOverview();
-
-            this.updateFilter();
-            return;
-        }
-
-        onlyExisting = false;
-        this._displayedContentView = this.contentBrowser.contentViewForRepresentedObject(this._displayedRecording, onlyExisting, {timelineSidebarPanel: this});
-        if (this._displayedContentView)
-            this._displayedContentView.addEventListener(WebInspector.ContentView.Event.NavigationItemsDidChange, this._updateViewModeIfNeeded, this);
-
-        // Restore the cookie to carry over the previous recording view state to the new recording.
-        this.restoreStateFromCookie(cookie);
-
-        this.updateFilter();
-    }
-
-    _recordingLoaded(event)
-    {
-        this._recordingSelected(WebInspector.timelineManager.activeRecording);
-    }
-
-    _clearInstruments()
-    {
-        this._timelineTreeElementMap.clear();
-
-        if (WebInspector.FPSInstrument.supported())
-            this._removedFPSInstrument();
-    }
-
-    _instrumentAdded(instrumentOrEvent)
-    {
-        let instrument = instrumentOrEvent instanceof WebInspector.Instrument ? instrumentOrEvent : instrumentOrEvent.data.instrument;
-        console.assert(instrument instanceof WebInspector.Instrument, instrument);
-
-        let timeline = this._displayedRecording.timelineForInstrument(instrument);
-        console.assert(!this._timelineTreeElementMap.has(timeline), timeline);
-
-        if (timeline.type === WebInspector.TimelineRecord.Type.RenderingFrame) {
-            this._addedFPSInstrument();
-            timeline.addEventListener(WebInspector.Timeline.Event.TimesUpdated, this._renderingFrameTimelineTimesUpdated, this);
-            return;
-        }
-
-        let displayName = WebInspector.TimelineTabContentView.displayNameForTimeline(timeline);
-        let iconClassName = WebInspector.TimelineTabContentView.iconClassNameForTimeline(timeline);
-        let genericClassName = WebInspector.TimelineTabContentView.genericClassNameForTimeline(timeline);
-        let timelineTreeElement = new WebInspector.GeneralTreeElement([iconClassName, genericClassName, WebInspector.TimelineSidebarPanel.LargeIconStyleClass], displayName, null, timeline);
-        let tooltip = WebInspector.UIString(&quot;Close %s timeline view&quot;).format(displayName);
-        let button = new WebInspector.TreeElementStatusButton(useSVGSymbol(&quot;Images/CloseLarge.svg&quot;, &quot;close-button&quot;, tooltip));
-        button.addEventListener(WebInspector.TreeElementStatusButton.Event.Clicked, this.showTimelineOverview, this);
-        timelineTreeElement.status = button.element;
-
-        this._timelinesTreeOutline.appendChild(timelineTreeElement);
-        this._timelineTreeElementMap.set(timeline, timelineTreeElement);
-
-        this._timelineCountChanged();
-    }
-
-    _instrumentRemoved(event)
-    {
-        let instrument = event.data.instrument;
-        console.assert(instrument instanceof WebInspector.Instrument, instrument);
-
-        let timeline = this._displayedRecording.timelineForInstrument(instrument);
-
-        if (timeline.type === WebInspector.TimelineRecord.Type.RenderingFrame) {
-            this._removedFPSInstrument();
-            timeline.removeEventListener(WebInspector.Timeline.Event.TimesUpdated, this._renderingFrameTimelineTimesUpdated, this);
-            return;
-        }
-
-        console.assert(this._timelineTreeElementMap.has(timeline), timeline);
-
-        let timelineTreeElement = this._timelineTreeElementMap.take(timeline);
-        let shouldSuppressOnDeselect = false;
-        let shouldSuppressSelectSibling = true;
-        this._timelinesTreeOutline.removeChild(timelineTreeElement, shouldSuppressOnDeselect, shouldSuppressSelectSibling);
-        this._timelineTreeElementMap.delete(timeline);
-
-        this._timelineCountChanged();
-    }
-
-    _addedFPSInstrument()
-    {
-        this._basicTitleBar.hidden = true;
-        this._renderingFramesTitleBar.hidden = false;
-    }
-
-    _removedFPSInstrument()
-    {
-        this._basicTitleBar.hidden = false;
-        this._renderingFramesTitleBar.hidden = true;
-    }
-
-    _timelineCountChanged()
-    {
-        var previousTreeElement = null;
-        for (var treeElement of this._timelineTreeElementMap.values()) {
-            if (previousTreeElement) {
-                previousTreeElement.nextSibling = treeElement;
-                treeElement.previousSibling = previousTreeElement;
-            }
-
-            previousTreeElement = treeElement;
-        }
-
-        this._updateTimelineOverviewHeight();
-    }
-
-    _updateTimelineOverviewHeight()
-    {
-        const eventTitleBarOffset = 58;
-        const contentElementOffset = 81;
-
-        if (!this._displayedContentView)
-            return;
-
-        let overviewHeight = this._displayedContentView.timelineOverviewHeight;
-        this._timelineEventsTitleBarContainer.style.top = (overviewHeight + eventTitleBarOffset) + &quot;px&quot;;
-        this.contentView.element.style.top = (overviewHeight + contentElementOffset) + &quot;px&quot;;
-    }
-
-    _recordButtonClicked(event)
-    {
-        let isCapturing = !WebInspector.timelineManager.isCapturing();
-
-        this._updateRecordButton(isCapturing);
-        this._toggleRecording(event.shiftKey);
-    }
-
-    _recordButtonMousedOver(event)
-    {
-        if (WebInspector.timelineManager.isCapturing())
-            this._recordingStatusItem.element.textContent = WebInspector.UIString(&quot;Stop Recording&quot;);
-        else
-            this._recordingStatusItem.element.textContent = WebInspector.UIString(&quot;Start Recording&quot;);
-    }
-
-    _recordButtonMousedOut(event)
-    {
-        if (WebInspector.timelineManager.isCapturing())
-            this._recordingStatusItem.element.textContent = WebInspector.UIString(&quot;Recording&quot;);
-        else
-            this._recordingStatusItem.element.textContent = &quot;&quot;;
-    }
-
-    _updateRecordButton(isCapturing)
-    {
-        this._recordingStatusItem.element.textContent = isCapturing ? WebInspector.UIString(&quot;Recording&quot;) : &quot;&quot;;
-        this._recordButton.toggled = isCapturing;
-    }
-
-    _viewModeSelected(event)
-    {
-        console.assert(event.target.selectedNavigationItem);
-        if (!event.target.selectedNavigationItem)
-            return;
-
-        let selectedNavigationItem = event.target.selectedNavigationItem;
-        let newViewMode = selectedNavigationItem.identifier;
-        if (this._viewMode === newViewMode)
-            return;
-
-        let timelineType = this._previousSelectedTimelineType;
-        if (newViewMode === WebInspector.TimelineOverview.ViewMode.RenderingFrames) {
-            this._previousSelectedTimelineType = this._timelinesTreeOutline.selectedTreeElement ? this._timelinesTreeOutline.selectedTreeElement.representedObject.type : null;
-            timelineType = WebInspector.TimelineRecord.Type.RenderingFrame;
-        }
-
-        if (timelineType) {
-            console.assert(this._displayedRecording.timelines.has(timelineType), timelineType);
-            this.showTimelineViewForTimeline(this._displayedRecording.timelines.get(timelineType));
-            return;
-        }
-
-        this.showTimelineOverview();
-    }
-
-    _viewModeForTimeline(timeline)
-    {
-        if (timeline &amp;&amp; timeline.type === WebInspector.TimelineRecord.Type.RenderingFrame)
-            return WebInspector.TimelineOverview.ViewMode.RenderingFrames;
-
-        return WebInspector.TimelineOverview.ViewMode.Timelines;
-    }
-
-    _frameSelectionLegendItemChecked(event)
-    {
-        if (event.data.checked)
-            this._renderingFrameTaskFilter.delete(event.data.id);
-        else
-            this._renderingFrameTaskFilter.add(event.data.id);
-
-        this.updateFilter();
-    }
-
-    _refreshFrameSelectionChart()
-    {
-        console.assert(WebInspector.FPSInstrument.supported());
-        if (!WebInspector.FPSInstrument.supported())
-            return;
-
-        if (!this.visible)
-            return;
-
-        function getSelectedRecords()
-        {
-            console.assert(this._displayedRecording);
-            console.assert(this._displayedRecording.timelines.has(WebInspector.TimelineRecord.Type.RenderingFrame), &quot;Cannot find rendering frames timeline in displayed recording&quot;);
-
-            var timeline = this._displayedRecording.timelines.get(WebInspector.TimelineRecord.Type.RenderingFrame);
-            var selectedRecords = [];
-            for (var record of timeline.records) {
-                console.assert(record instanceof WebInspector.RenderingFrameTimelineRecord);
-                // If this frame is completely before the bounds of the graph, skip this record.
-                if (record.frameIndex &lt; this._startFrameIndex)
-                    continue;
-
-                // If this record is completely after the end time, break out now.
-                // Records are sorted, so all records after this will be beyond the end time too.
-                if (record.frameIndex &gt; this._endFrameIndex)
-                    break;
-
-                selectedRecords.push(record);
-            }
-
-            return selectedRecords;
-        }
-
-        let records = getSelectedRecords.call(this);
-        for (let key in WebInspector.RenderingFrameTimelineRecord.TaskType) {
-            let taskType = WebInspector.RenderingFrameTimelineRecord.TaskType[key];
-            let value = records.reduce(function(previousValue, currentValue) { return previousValue + currentValue.durationForTask(taskType); }, 0);
-            this._frameSelectionChartRow.setItemValue(taskType, value);
-        }
-
-        if (!records.length) {
-            this._frameSelectionChartRow.title = WebInspector.UIString(&quot;Frames: None Selected&quot;);
-            return;
-        }
-
-        var firstRecord = records[0];
-        var lastRecord = records.lastValue;
-
-        if (records.length &gt; 1) {
-            this._frameSelectionChartRow.title = WebInspector.UIString(&quot;Frames: %d \u2013 %d (%s \u2013 %s)&quot;).format(firstRecord.frameNumber, lastRecord.frameNumber,
-                Number.secondsToString(firstRecord.startTime), Number.secondsToString(lastRecord.endTime));
-        } else {
-            this._frameSelectionChartRow.title = WebInspector.UIString(&quot;Frame: %d (%s \u2013 %s)&quot;).format(firstRecord.frameNumber,
-                Number.secondsToString(firstRecord.startTime), Number.secondsToString(lastRecord.endTime));
-        }
-    }
-
-    // These methods are only used when ReplayAgent is available.
-
-    _updateReplayInterfaceVisibility()
-    {
-        var shouldShowReplayInterface = !!(window.ReplayAgent &amp;&amp; WebInspector.showReplayInterfaceSetting.value);
-
-        this._recordingNavigationBar.element.classList.toggle(WebInspector.TimelineSidebarPanel.HiddenStyleClassName, shouldShowReplayInterface);
-        this._replayNavigationBar.element.classList.toggle(WebInspector.TimelineSidebarPanel.HiddenStyleClassName, !shouldShowReplayInterface);
-    }
-
-    _contextMenuNavigationBarOrStatusBar()
-    {
-        if (!window.ReplayAgent)
-            return;
-
-        let toggleReplayInterface = () =&gt; {
-            WebInspector.showReplayInterfaceSetting.value = !WebInspector.showReplayInterfaceSetting.value;
-        };
-
-        let contextMenu = WebInspector.ContextMenu.createFromEvent(event);
-        if (WebInspector.showReplayInterfaceSetting.value)
-            contextMenu.appendItem(WebInspector.UIString(&quot;Hide Replay Controls&quot;), toggleReplayInterface);
-        else
-            contextMenu.appendItem(WebInspector.UIString(&quot;Show Replay Controls&quot;), toggleReplayInterface);
-    }
-
-    _replayCaptureButtonClicked()
-    {
-        if (!this._replayCaptureButtonItem.activated) {
-            WebInspector.replayManager.startCapturing();
-            WebInspector.timelineManager.startCapturing();
-
-            // De-bounce further presses until the backend has begun capturing.
-            this._replayCaptureButtonItem.activated = true;
-            this._replayCaptureButtonItem.enabled = false;
-        } else {
-            WebInspector.replayManager.stopCapturing();
-            WebInspector.timelineManager.stopCapturing();
-
-            this._replayCaptureButtonItem.enabled = false;
-        }
-    }
-
-    _replayPauseResumeButtonClicked()
-    {
-        if (this._replayPauseResumeButtonItem.toggled)
-            WebInspector.replayManager.pausePlayback();
-        else
-            WebInspector.replayManager.replayToCompletion();
-    }
-
-    _captureStarted()
-    {
-        this._replayCaptureButtonItem.enabled = true;
-    }
-
-    _captureStopped()
-    {
-        this._replayCaptureButtonItem.activated = false;
-        this._replayPauseResumeButtonItem.enabled = true;
-    }
-
-    _playbackStarted()
-    {
-        this._replayPauseResumeButtonItem.toggled = true;
-    }
-
-    _playbackPaused()
-    {
-        this._replayPauseResumeButtonItem.toggled = false;
-    }
-
-    _updateViewModeIfNeeded()
-    {
-        let timelineView = this.contentBrowser.currentContentView.currentTimelineView;
-        let newViewMode = WebInspector.TimelineOverview.ViewMode.Timelines;
-        if (timelineView.representedObject instanceof WebInspector.Timeline &amp;&amp; timelineView.representedObject.type === WebInspector.TimelineRecord.Type.RenderingFrame)
-            newViewMode = WebInspector.TimelineOverview.ViewMode.RenderingFrames;
-
-        if (newViewMode === this._viewMode)
-            return;
-
-        this._viewMode = newViewMode;
-
-        let isShowingTimelines = this._viewMode === WebInspector.TimelineOverview.ViewMode.Timelines;
-        this._timelinesTreeOutline.hidden = !isShowingTimelines;
-
-        if (WebInspector.FPSInstrument.supported()) {
-            this._frameSelectionChartSection.collapsed = isShowingTimelines;
-            this._viewModeNavigationBar.selectedNavigationItem = this._viewMode;
-        }
-    }
-};
-
-WebInspector.TimelineSidebarPanel.HiddenStyleClassName = &quot;hidden&quot;;
-WebInspector.TimelineSidebarPanel.TitleBarStyleClass = &quot;title-bar&quot;;
-WebInspector.TimelineSidebarPanel.TitleBarTextStyleClass = &quot;title-bar-text&quot;;
-WebInspector.TimelineSidebarPanel.TitleBarScopeBarStyleClass = &quot;title-bar-scope-bar&quot;;
-WebInspector.TimelineSidebarPanel.TimelinesTitleBarStyleClass = &quot;timelines&quot;;
-WebInspector.TimelineSidebarPanel.TimelineEventsTitleBarStyleClass = &quot;timeline-events&quot;;
-WebInspector.TimelineSidebarPanel.TimelinesContentContainerStyleClass = &quot;timelines-content&quot;;
-WebInspector.TimelineSidebarPanel.LargeIconStyleClass = &quot;large&quot;;
-WebInspector.TimelineSidebarPanel.StopwatchIconStyleClass = &quot;stopwatch-icon&quot;;
-WebInspector.TimelineSidebarPanel.TimelineRecordingContentViewShowingStyleClass = &quot;timeline-recording-content-view-showing&quot;;
-
-WebInspector.TimelineSidebarPanel.ShowingTimelineRecordingContentViewCookieKey = &quot;timeline-sidebar-panel-showing-timeline-recording-content-view&quot;;
-WebInspector.TimelineSidebarPanel.SelectedTimelineViewIdentifierCookieKey = &quot;timeline-sidebar-panel-selected-timeline-view-identifier&quot;;
-WebInspector.TimelineSidebarPanel.OverviewTimelineIdentifierCookieValue = &quot;overview&quot;;
</del></span></pre>
</div>
</div>

</body>
</html>