<!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>[187871] trunk/Tools</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/187871">187871</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-08-04 11:48:32 -0700 (Tue, 04 Aug 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.
https://bugs.webkit.org/show_bug.cgi?id=147280

Patch by Jason Marcell &lt;jmarcell@apple.com&gt; on 2015-08-04
Reviewed by Daniel Bates.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration): Removed opensourceRevision, internalRevision. Added revision.
Refactored _parseData to handle repositories more generically.
(parseRevisionProperty): Moved a comment up to parseRevisionProperty where it seems more relevant.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:
(BuildbotQueue.prototype.compareIterations): Using &quot;revision&quot; property instead of
&quot;opensourceRevision&quot; and &quot;internalRevision&quot;.
(BuildbotQueue.prototype.compareIterationsByRevisions): Ditto.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._appendPendingRevisionCount): Ditto.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Ditto.
(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration): Changing &quot;internal&quot; boolean
parameter to more generic &quot;repository&quot; string parameter. Added &quot;trac&quot; parameter in order to
specify the trac instance to use. Using &quot;revision&quot; property instead of &quot;opensourceRevision&quot;
and &quot;internalRevision&quot;.
(BuildbotQueueView.prototype.revisionContentForIteration): Passing the repository name and trac
instance to _revisionContentWithPopoverForIteration(). Using &quot;revision&quot; property instead of
&quot;opensourceRevision&quot; and &quot;internalRevision&quot;.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: Adding
constants for internal and opensource repositories.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsAnalyzer.js:
(Analyzer.prototype._findIndexOfLargestIterationAtOrBeforeStart): Using &quot;revision&quot; property
instead of &quot;opensourceRevision&quot; and &quot;internalRevision&quot;.
(Analyzer.prototype._countPercentageOfGreen): Ditto.
(Analyzer.prototype.webkitTrac.recordedCommits.forEach): Ditto.
(Analyzer.prototype._countTimes): Ditto.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot.prototype.layoutTestResultsDirectoryURLForIteration): Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsBuildbotIterationjs">trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js</a></li>
<li><a href="#trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsBuildbotQueuejs">trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js</a></li>
<li><a href="#trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsBuildbotQueueViewjs">trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js</a></li>
<li><a href="#trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsDashboardjs">trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js</a></li>
<li><a href="#trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsMetricsAnalyzerjs">trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsAnalyzer.js</a></li>
<li><a href="#trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsWebKitBuildbotjs">trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsBuildbotIterationjs"></a>
<div class="modfile"><h4>Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js (187870 => 187871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js        2015-08-04 18:43:35 UTC (rev 187870)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js        2015-08-04 18:48:32 UTC (rev 187871)
</span><span class="lines">@@ -43,8 +43,7 @@
</span><span class="cx">     this.isLoading = false;
</span><span class="cx">     this._productive = false;
</span><span class="cx"> 
</span><del>-    this.openSourceRevision = null;
-    this.internalRevision = null;
</del><ins>+    this.revision = {};
</ins><span class="cx"> 
</span><span class="cx">     this.layoutTestResults = null; // Layout test results can be needed even if all tests passed, e.g. for the leaks bot.
</span><span class="cx"> 
</span><span class="lines">@@ -102,6 +101,12 @@
</span><span class="cx">     if (!property)
</span><span class="cx">         return null;
</span><span class="cx">     var value = property[1];
</span><ins>+
+    // The property got_revision may have the following forms:
+    //
+    // [&quot;got_revision&quot;,{&quot;Internal&quot;:&quot;1357&quot;,&quot;WebKitOpenSource&quot;:&quot;2468&quot;},&quot;Source&quot;]
+    // OR
+    // [&quot;got_revision&quot;,&quot;2468&quot;,&quot;Source&quot;]
</ins><span class="cx">     if (isMultiCodebaseGotRevisionProperty(property))
</span><span class="cx">         value = (key in value) ? value[key] : value[fallbackKey];
</span><span class="cx">     return parseInt(value);
</span><span class="lines">@@ -188,24 +193,25 @@
</span><span class="cx">         console.assert(!this.id || this.id === data.number);
</span><span class="cx">         this.id = data.number;
</span><span class="cx"> 
</span><del>-        // The property got_revision may have the following forms:
-        //
-        // [&quot;got_revision&quot;,{&quot;Internal&quot;:&quot;1357&quot;,&quot;WebKitOpenSource&quot;:&quot;2468&quot;},&quot;Source&quot;]
-        // OR
-        // [&quot;got_revision&quot;,&quot;2468&quot;,&quot;Source&quot;]
-        //
-        // When extracting the OpenSource revision from property got_revision we don't need to check whether the
-        // value of got_revision is a dictionary (represents multiple codebases) or a string literal because we
-        // assume that got_revision contains the OpenSource revision. However, it may not have the Internal
-        // revision. Therefore, we only look at got_revision to extract the Internal revision when it's
-        // a dictionary.
</del><ins>+        var revisionProperty = data.properties.findFirst(function(property) {
+            return property[0] === &quot;got_revision&quot;;
+        });
+        for (repository in this.queue.branch) {
+            var key;
+            var fallbackKey;
+            if (repository === Dashboard.Repository.OpenSource.name) {
+                key = &quot;WebKit&quot;;
+                fallbackKey = &quot;opensource&quot;;
+            } else if (repository === Dashboard.Repository.Internal.name) {
+                key = &quot;Internal&quot;;
+                fallbackKey = &quot;internal&quot;;
+            } else {
+                key = repository;
+                fallbackKey = null;
+            }
+            this.revision[repository] = parseRevisionProperty(revisionProperty, key, fallbackKey);
+        }
</ins><span class="cx"> 
</span><del>-        var openSourceRevisionProperty = data.properties.findFirst(function(property) { return property[0] === &quot;got_revision&quot;; });
-        this.openSourceRevision = parseRevisionProperty(openSourceRevisionProperty, &quot;WebKit&quot;, &quot;opensource&quot;);
-
-        var internalRevisionProperty = data.properties.findFirst(function(property) { return isMultiCodebaseGotRevisionProperty(property); });
-        this.internalRevision = parseRevisionProperty(internalRevisionProperty, &quot;Internal&quot;, &quot;internal&quot;);
-
</del><span class="cx">         function sourceStampChanges(sourceStamp) {
</span><span class="cx">             var result = [];
</span><span class="cx">             var changes = sourceStamp.changes;
</span></span></pre></div>
<a id="trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsBuildbotQueuejs"></a>
<div class="modfile"><h4>Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js (187870 => 187871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js        2015-08-04 18:43:35 UTC (rev 187870)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js        2015-08-04 18:48:32 UTC (rev 187871)
</span><span class="lines">@@ -268,11 +268,11 @@
</span><span class="cx"> 
</span><span class="cx">     compareIterations: function(a, b)
</span><span class="cx">     {
</span><del>-        var result = b.openSourceRevision - a.openSourceRevision;
</del><ins>+        var result = b.revision[Dashboard.Repository.OpenSource.name] - a.revision[Dashboard.Repository.OpenSource.name];
</ins><span class="cx">         if (result)
</span><span class="cx">             return result;
</span><span class="cx"> 
</span><del>-        result = b.internalRevision - a.internalRevision;
</del><ins>+        result = b.revision[Dashboard.Repository.Internal.name] - a.revision[Dashboard.Repository.Internal.name];
</ins><span class="cx">         if (result)
</span><span class="cx">             return result;
</span><span class="cx"> 
</span><span class="lines">@@ -286,11 +286,11 @@
</span><span class="cx"> 
</span><span class="cx">     compareIterationsByRevisions: function(a, b)
</span><span class="cx">     {
</span><del>-        var result = b.openSourceRevision - a.openSourceRevision;
</del><ins>+        var result = b.revision[Dashboard.Repository.OpenSource.name] - a.revision[Dashboard.Repository.OpenSource.name];
</ins><span class="cx">         if (result)
</span><span class="cx">             return result;
</span><span class="cx"> 
</span><del>-        result = b.internalRevision - a.internalRevision;
</del><ins>+        result = b.revision[Dashboard.Repository.Internal.name] - a.revision[Dashboard.Repository.Internal.name];
</ins><span class="cx">         if (result)
</span><span class="cx">             return result;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsBuildbotQueueViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js (187870 => 187871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js        2015-08-04 18:43:35 UTC (rev 187870)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js        2015-08-04 18:48:32 UTC (rev 187871)
</span><span class="lines">@@ -77,23 +77,23 @@
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         var latestRecordedOpenSourceRevisionNumber = webkitTrac.latestRecordedRevisionNumber;
</span><del>-        if (!latestRecordedOpenSourceRevisionNumber || webkitTrac.oldestRecordedRevisionNumber &gt; latestProductiveIteration.openSourceRevision) {
</del><ins>+        if (!latestRecordedOpenSourceRevisionNumber || webkitTrac.oldestRecordedRevisionNumber &gt; latestProductiveIteration.revision[Dashboard.Repository.OpenSource.name]) {
</ins><span class="cx">             webkitTrac.loadMoreHistoricalData();
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // FIXME: To be 100% correct, we should also filter out changes that are ignored by
</span><span class="cx">         // the queue, see _should_file_trigger_build in wkbuild.py.
</span><del>-        var totalRevisionsBehind = webkitTrac.commitsOnBranch(queue.branch.openSource, function(commit) { return commit.revisionNumber &gt; latestProductiveIteration.openSourceRevision; }).length;
</del><ins>+        var totalRevisionsBehind = webkitTrac.commitsOnBranch(queue.branch.openSource, function(commit) { return commit.revisionNumber &gt; latestProductiveIteration.revision[Dashboard.Repository.OpenSource.name]; }).length;
</ins><span class="cx"> 
</span><del>-        if (latestProductiveIteration.internalRevision) {
</del><ins>+        if (latestProductiveIteration.revision[Dashboard.Repository.Internal.name]) {
</ins><span class="cx">             var latestRecordedInternalRevisionNumber = internalTrac.latestRecordedRevisionNumber;
</span><del>-            if (!latestRecordedInternalRevisionNumber || internalTrac.oldestRecordedRevisionNumber &gt; latestProductiveIteration.internalRevision) {
</del><ins>+            if (!latestRecordedInternalRevisionNumber || internalTrac.oldestRecordedRevisionNumber &gt; latestProductiveIteration.revision[Dashboard.Repository.Internal.name]) {
</ins><span class="cx">                 internalTrac.loadMoreHistoricalData();
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            totalRevisionsBehind += internalTrac.commitsOnBranch(queue.branch.internal, function(commit) { return commit.revisionNumber &gt; latestProductiveIteration.internalRevision; }).length;
</del><ins>+            totalRevisionsBehind += internalTrac.commitsOnBranch(queue.branch.internal, function(commit) { return commit.revisionNumber &gt; latestProductiveIteration.revision[Dashboard.Repository.Internal.name]; }).length;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (!totalRevisionsBehind)
</span><span class="lines">@@ -153,13 +153,13 @@
</span><span class="cx">         var content = document.createElement(&quot;div&quot;);
</span><span class="cx">         content.className = &quot;commit-history-popover&quot;;
</span><span class="cx"> 
</span><del>-        var linesForOpenSource = this._popoverLinesForCommitRange(webkitTrac, queue.branch.openSource, latestProductiveIteration.openSourceRevision + 1, webkitTrac.latestRecordedRevisionNumber);
</del><ins>+        var linesForOpenSource = this._popoverLinesForCommitRange(webkitTrac, queue.branch.openSource, latestProductiveIteration.revision[Dashboard.Repository.OpenSource.name] + 1, webkitTrac.latestRecordedRevisionNumber);
</ins><span class="cx">         for (var i = 0; i != linesForOpenSource.length; ++i)
</span><span class="cx">             content.appendChild(linesForOpenSource[i]);
</span><span class="cx"> 
</span><span class="cx">         var linesForInternal = [];
</span><del>-        if (latestProductiveIteration.internalRevision &amp;&amp; internalTrac.latestRecordedRevisionNumber)
-            var linesForInternal = this._popoverLinesForCommitRange(internalTrac, queue.branch.internal, latestProductiveIteration.internalRevision + 1, internalTrac.latestRecordedRevisionNumber);
</del><ins>+        if (latestProductiveIteration.revision[Dashboard.Repository.Internal.name] &amp;&amp; internalTrac.latestRecordedRevisionNumber)
+            var linesForInternal = this._popoverLinesForCommitRange(internalTrac, queue.branch.internal, latestProductiveIteration.revision[Dashboard.Repository.Internal.name] + 1, internalTrac.latestRecordedRevisionNumber);
</ins><span class="cx"> 
</span><span class="cx">         if (linesForOpenSource.length &amp;&amp; linesForInternal.length)
</span><span class="cx">             this._addDividerToPopover(content);
</span><span class="lines">@@ -204,18 +204,18 @@
</span><span class="cx">         return true;
</span><span class="cx">     },
</span><span class="cx"> 
</span><del>-    _revisionContentWithPopoverForIteration: function(iteration, previousIteration, internal)
</del><ins>+    _revisionContentWithPopoverForIteration: function(iteration, previousIteration, repository, trac)
</ins><span class="cx">     {
</span><span class="cx">         var content = document.createElement(&quot;span&quot;);
</span><del>-        content.textContent = &quot;r&quot; + (internal ? iteration.internalRevision : iteration.openSourceRevision);
</del><ins>+        content.textContent = &quot;r&quot; + iteration.revision[repository];
</ins><span class="cx">         content.classList.add(&quot;revision-number&quot;);
</span><span class="cx"> 
</span><span class="cx">         if (previousIteration) {
</span><span class="cx">             var context = {
</span><del>-                trac: internal ? internalTrac : webkitTrac,
-                branch: internal ? iteration.queue.branch.internal : iteration.queue.branch.openSource,
-                firstRevision: (internal ? previousIteration.internalRevision : previousIteration.openSourceRevision) + 1,
-                lastRevision: internal ? iteration.internalRevision : iteration.openSourceRevision
</del><ins>+                trac: trac,
+                branch: iteration.queue.branch[repository],
+                firstRevision: previousIteration.revision[repository] + 1,
+                lastRevision: iteration.revision[repository]
</ins><span class="cx">             };
</span><span class="cx">             if (context.firstRevision &lt;= context.lastRevision)
</span><span class="cx">                 new PopoverTracker(content, this._presentPopoverForRevisionRange.bind(this), context);
</span><span class="lines">@@ -260,14 +260,14 @@
</span><span class="cx"> 
</span><span class="cx">     revisionContentForIteration: function(iteration, previousDisplayedIteration)
</span><span class="cx">     {
</span><del>-        console.assert(iteration.openSourceRevision);
</del><ins>+        console.assert(iteration.revision[Dashboard.Repository.OpenSource.name]);
</ins><span class="cx"> 
</span><del>-        var openSourceContent = this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration);
</del><ins>+        var openSourceContent = this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, Dashboard.Repository.OpenSource.name, webkitTrac);
</ins><span class="cx"> 
</span><del>-        if (!iteration.internalRevision)
</del><ins>+        if (!iteration.revision[Dashboard.Repository.Internal.name])
</ins><span class="cx">             return openSourceContent;
</span><span class="cx"> 
</span><del>-        var internalContent = this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, true);
</del><ins>+        var internalContent = this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, Dashboard.Repository.Internal.name, internalTrac);
</ins><span class="cx"> 
</span><span class="cx">         var fragment = document.createDocumentFragment();
</span><span class="cx">         fragment.appendChild(openSourceContent);
</span></span></pre></div>
<a id="trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsDashboardjs"></a>
<div class="modfile"><h4>Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js (187870 => 187871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js        2015-08-04 18:43:35 UTC (rev 187870)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js        2015-08-04 18:48:32 UTC (rev 187871)
</span><span class="lines">@@ -35,5 +35,9 @@
</span><span class="cx">         LinuxGTK: { name : &quot;linux-gtk&quot;, readableName: &quot;Linux GTK&quot;, order: 90 },
</span><span class="cx">         LinuxEFL: { name: &quot;linux-efl&quot;, readableName: &quot;Linux EFL&quot;, order : 100 }
</span><span class="cx">     },
</span><del>-    Branch: {}
</del><ins>+    Branch: {},
+    Repository: {
+        OpenSource: { name: &quot;openSource&quot;, order: 0 },
+        Internal: { name: &quot;internal&quot;, order: 1 },
+    }
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsMetricsAnalyzerjs"></a>
<div class="modfile"><h4>Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsAnalyzer.js (187870 => 187871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsAnalyzer.js        2015-08-04 18:43:35 UTC (rev 187870)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsAnalyzer.js        2015-08-04 18:48:32 UTC (rev 187871)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx">         if (i &lt; iterations.length)
</span><span class="cx">             result = i++;
</span><span class="cx">         while (i &lt; iterations.length) {
</span><del>-            if (iterations[i].openSourceRevision &gt; iterations[result].openSourceRevision)
</del><ins>+            if (iterations[i].revision[Dashboard.Repository.OpenSource.name] &gt; iterations[result].revision[Dashboard.Repository.OpenSource.name])
</ins><span class="cx">                 result = i;
</span><span class="cx">             ++i;
</span><span class="cx">         }
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx">                 this._updateStretchOfRedCounters(topIterationByQueue, currentTime, stretchOfRedCounters);
</span><span class="cx">                 continue;
</span><span class="cx">             }
</span><del>-            if (iterations[i].openSourceRevision &lt;= topIterationByQueue[iterations[i].queue.id].openSourceRevision)
</del><ins>+            if (iterations[i].revision[Dashboard.Repository.OpenSource.name] &lt;= topIterationByQueue[iterations[i].queue.id].revision[Dashboard.Repository.OpenSource.name])
</ins><span class="cx">                 continue;
</span><span class="cx"> 
</span><span class="cx">             var dashboardWasAllGreen = this._dashboardIsAllGreen(topIterationByQueue);
</span><span class="lines">@@ -275,7 +275,7 @@
</span><span class="cx">                     return;
</span><span class="cx">                 for (var i = 0; i &lt; relevantIterationsByQueue[queue.id].length; ++i) {
</span><span class="cx">                     var iteration = relevantIterationsByQueue[queue.id][i];
</span><del>-                    if (iteration.openSourceRevision &gt;= revision.revisionNumber) {
</del><ins>+                    if (iteration.revision[Dashboard.Repository.OpenSource.name] &gt;= revision.revisionNumber) {
</ins><span class="cx">                         endTime = Math.max(endTime, iteration.endTime);
</span><span class="cx">                         ownTime = Math.max(ownTime, iteration.endTime - iteration.startTime);
</span><span class="cx">                         break;
</span></span></pre></div>
<a id="trunkToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsWebKitBuildbotjs"></a>
<div class="modfile"><h4>Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js (187870 => 187871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js        2015-08-04 18:43:35 UTC (rev 187870)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js        2015-08-04 18:48:32 UTC (rev 187871)
</span><span class="lines">@@ -82,6 +82,6 @@
</span><span class="cx"> 
</span><span class="cx">     layoutTestResultsDirectoryURLForIteration: function(iteration)
</span><span class="cx">     {
</span><del>-        return this.baseURL + &quot;results/&quot; + encodeURIComponent(iteration.queue.id) + &quot;/&quot; + encodeURIComponent(&quot;r&quot; + iteration.openSourceRevision + &quot; (&quot; + iteration.id + &quot;)&quot;);
</del><ins>+        return this.baseURL + &quot;results/&quot; + encodeURIComponent(iteration.queue.id) + &quot;/&quot; + encodeURIComponent(&quot;r&quot; + iteration.revision[Dashboard.Repository.OpenSource.name] + &quot; (&quot; + iteration.id + &quot;)&quot;);
</ins><span class="cx">     }
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (187870 => 187871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-08-04 18:43:35 UTC (rev 187870)
+++ trunk/Tools/ChangeLog        2015-08-04 18:48:32 UTC (rev 187871)
</span><span class="lines">@@ -1,3 +1,39 @@
</span><ins>+2015-08-04  Jason Marcell  &lt;jmarcell@apple.com&gt;
+
+        Refactor to convert openSourceRevision and internalRevision properties on BuildbotIteration into a more generic collection of revisions.
+        https://bugs.webkit.org/show_bug.cgi?id=147280
+
+        Reviewed by Daniel Bates.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
+        (BuildbotIteration): Removed opensourceRevision, internalRevision. Added revision.
+        Refactored _parseData to handle repositories more generically.
+        (parseRevisionProperty): Moved a comment up to parseRevisionProperty where it seems more relevant.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:
+        (BuildbotQueue.prototype.compareIterations): Using &quot;revision&quot; property instead of
+        &quot;opensourceRevision&quot; and &quot;internalRevision&quot;.
+        (BuildbotQueue.prototype.compareIterationsByRevisions): Ditto.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
+        (BuildbotQueueView.prototype._appendPendingRevisionCount): Ditto.
+        (BuildbotQueueView.prototype._presentPopoverForPendingCommits): Ditto.
+        (BuildbotQueueView.prototype._revisionContentWithPopoverForIteration): Changing &quot;internal&quot; boolean
+        parameter to more generic &quot;repository&quot; string parameter. Added &quot;trac&quot; parameter in order to
+        specify the trac instance to use. Using &quot;revision&quot; property instead of &quot;opensourceRevision&quot;
+        and &quot;internalRevision&quot;.
+        (BuildbotQueueView.prototype.revisionContentForIteration): Passing the repository name and trac
+        instance to _revisionContentWithPopoverForIteration(). Using &quot;revision&quot; property instead of
+        &quot;opensourceRevision&quot; and &quot;internalRevision&quot;.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: Adding
+        constants for internal and opensource repositories.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsAnalyzer.js:
+        (Analyzer.prototype._findIndexOfLargestIterationAtOrBeforeStart): Using &quot;revision&quot; property
+        instead of &quot;opensourceRevision&quot; and &quot;internalRevision&quot;.
+        (Analyzer.prototype._countPercentageOfGreen): Ditto.
+        (Analyzer.prototype.webkitTrac.recordedCommits.forEach): Ditto.
+        (Analyzer.prototype._countTimes): Ditto.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
+        (WebKitBuildbot.prototype.layoutTestResultsDirectoryURLForIteration): Ditto.
+
</ins><span class="cx"> 2015-08-04  Mark Lam  &lt;mark.lam@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Removed a local debugging line I accidentally left in from a previous commit.
</span></span></pre>
</div>
</div>

</body>
</html>