Index: tools/sheriffing/waterfallinfo.js |
diff --git a/tools/sheriffing/waterfallinfo.js b/tools/sheriffing/waterfallinfo.js |
deleted file mode 100644 |
index 8b7969a29040ecc7ef61ee73daaa73400615dc74..0000000000000000000000000000000000000000 |
--- a/tools/sheriffing/waterfallinfo.js |
+++ /dev/null |
@@ -1,142 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-/** Information about a particular waterfall. */ |
-function WaterfallInfo(waterfallData) { |
- var waterfallName = waterfallData[0]; |
- var waterfallUrl = waterfallData[1]; |
- var waterfallShowsAllBots = waterfallData[2]; |
- |
- // Create a table cell that acts as a header for its bot section. |
- var linkElement = document.createElement('a'); |
- linkElement.href = waterfallUrl; |
- linkElement.innerHTML = waterfallName; |
- var thElement = document.createElement('th'); |
- thElement.colSpan = 15; |
- thElement.className = 'section-header'; |
- thElement.appendChild(linkElement); |
- |
- this.botInfo = {}; |
- this.inFlight = 0; |
- this.name = waterfallName; |
- this.showsAllBots = waterfallShowsAllBots; |
- this.thElement = thElement; |
- this.timeLastRequested = 0; |
- this.rootJsonUrl = waterfallUrl + 'json/'; |
- this.url = waterfallUrl; |
-} |
- |
-/** Global callbacks. */ |
-var gWaterfallInfoCallbacks = {counter: 0}; |
- |
-/** Send an asynchronous request to get the main waterfall's JSON. */ |
-WaterfallInfo.prototype.requestJson = function() { |
- if (this.inFlight) { |
- var elapsed = new Date().getTime() - this.timeLastRequested; |
- if (elapsed < MAX_MILLISECONDS_TO_WAIT) return; |
- |
- // A response was not received in a reasonable timeframe. Try again. |
- this.inFlight--; |
- gNumRequestsInFlight--; |
- gNumRequestsRetried++; |
- } |
- |
- this.inFlight++; |
- this.timeLastRequested = new Date().getTime(); |
- gNumRequestsInFlight++; |
- |
- // Create callback function. |
- var name = "fn" + gWaterfallInfoCallbacks.counter++; |
- var waterfallInfo = this; |
- gWaterfallInfoCallbacks[name] = function(json) { |
- delete gWaterfallInfoCallbacks[name]; |
- waterfallInfo.parseJSON(json); |
- } |
- |
- // Use JSONP to get data. |
- var head = document.head; |
- var script = document.createElement('script'); |
- script.type = 'text/javascript'; |
- script.setAttribute('src', this.url + |
- 'json/builders/?callback=gWaterfallInfoCallbacks.' + name); |
- head.appendChild(script); |
- head.removeChild(script); |
-}; |
- |
-/** Parse out the data received about the waterfall. */ |
-WaterfallInfo.prototype.parseJSON = function(buildersJson) { |
- this.inFlight--; |
- gNumRequestsInFlight--; |
- |
- // Go through each builder on the waterfall and get the latest status. |
- var builderNames = Object.keys(buildersJson); |
- for (var i = 0; i < builderNames.length; ++i) { |
- var builderName = builderNames[i]; |
- |
- if (!this.showsAllBots && !this.shouldShowBot(builderName)) continue; |
- |
- // Prepare the bot info. |
- var builderJson = buildersJson[builderName]; |
- if (!this.botInfo[builderName]) { |
- this.botInfo[builderName] = new BotInfo(builderName, |
- builderJson.category); |
- } |
- this.botInfo[builderName].update(this.rootJsonUrl, builderJson); |
- gWaterfallDataIsDirty = true; |
- } |
-}; |
- |
-/** Override this function to filter out particular bots. */ |
-WaterfallInfo.prototype.shouldShowBot = function(builderName) { |
- return true; |
-}; |
- |
-/** Updates the HTML. */ |
-WaterfallInfo.prototype.updateWaterfallStatusHTML = function() { |
- var table = document.getElementById('build-info'); |
- |
- // Point at the waterfall. |
- var headerCell = this.thElement; |
- headerCell.className = |
- 'section-header' + (this.inFlight > 0 ? ' in-flight' : ''); |
- var headerRow = table.insertRow(-1); |
- headerRow.appendChild(headerCell); |
- |
- // Print out useful bits about the bots. |
- var botNames = sortBotNamesByCategory(this.botInfo); |
- for (var i = 0; i < botNames.length; ++i) { |
- var botName = botNames[i]; |
- var botInfo = this.botInfo[botName]; |
- var waterfallBaseUrl = this.url + 'builders/'; |
- |
- var botRowElement = botInfo.createHtml(waterfallBaseUrl); |
- |
- // Determine whether we should apply keyword filter. |
- var filter = document.getElementById('text-filter').value.trim(); |
- if (filter.length > 0) { |
- var keywords = filter.split(' '); |
- var buildNumbers = Object.keys(botInfo.builds); |
- var matchesFilter = false; |
- |
- for (var x = 0; x < buildNumbers.length && !matchesFilter; ++x) { |
- var buildStatus = botInfo.builds[buildNumbers[x]].statusText; |
- for (var y = 0; y < keywords.length && !matchesFilter; ++y) { |
- if (buildStatus.indexOf(keywords[y]) >= 0) |
- matchesFilter = true; |
- } |
- } |
- |
- if (!matchesFilter) |
- continue; |
- } |
- |
- // If the user doesn't want to see completely green bots, hide it. |
- var shouldHideStable = |
- document.getElementById('checkbox-hide-stable').checked; |
- if (shouldHideStable && botInfo.isSteadyGreen) |
- continue; |
- |
- table.appendChild(botRowElement); |
- } |
-}; |