[ct] Cleanup after lit conversion, remove Polymer, Vulcanize, Bower, webtools.mk.
Change-Id: I81c5e238cbcf7c70cabe57f9f2dede9e13601e15
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/306653
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Weston Tracey <westont@google.com>
diff --git a/ct/.bowerrc b/ct/.bowerrc
deleted file mode 100644
index 3841514..0000000
--- a/ct/.bowerrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "directory": "third_party/bower_components"
-}
diff --git a/ct/Makefile b/ct/Makefile
index 6267a8f..e0853a5 100644
--- a/ct/Makefile
+++ b/ct/Makefile
@@ -1,25 +1,13 @@
-# The list of files we want to go into core.js, which is concat'd and
-# minified. These files should be either present in the project, brought
-# into third_party/bower_compoents via bower, or in node_modules.
-CORE_SOURCE_FILES = node_modules/native-promise-only/npo.js \
- third_party/bower_components/webcomponentsjs/webcomponents.min.js \
- ../res/js/common.js \
- res/js/ctfe.js
-
-BOWER_DIR=third_party/bower_components
-
-VULCANIZE1=true
-
# Require clean_webtools to ensure changes to res/common/imp/*.html are reflected.
.PHONY: ctfe
-ctfe: res/css/ctfe.css clean_webtools core_js elements_html
+ctfe:
cd ../infra-sk && npm ci
npm ci
npx webpack --mode=production
go install -v ./go/ctfe
.PHONY: ctfe_debug
-ctfe_debug: res/css/ctfe.css debug
+ctfe_debug:
npx webpack --mode=development
go install -v ./go/ctfe
@@ -57,12 +45,6 @@
push_staging: release
pushk ctfe-staging
-# Build debug versions of core.js and elements.html.
-.PHONY: debug
-debug: clean_webtools debug_core_js debug_elements_html
-
-include ../webtools/webtools.mk
-
# Master scripts.
.PHONY: build_chromium
build_chromium:
diff --git a/ct/bower.json b/ct/bower.json
deleted file mode 100644
index d53cdc2..0000000
--- a/ct/bower.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "ctfe",
- "version": "0.1.0",
- "authors": [],
- "description": "Cluster Telemetry Frontend",
- "license": "BSD",
- "private": true,
- "ignore": [
- "**/.*",
- "node_modules",
- "bower_components",
- "third_party/bower_components",
- "test",
- "tests"
- ],
- "dependencies": {
- "polymer": "Polymer/polymer#^1.10.1",
- "iron-elements": "PolymerElements/iron-elements#~1.0.0",
- "paper-elements": "PolymerElements/paper-elements#~1.0.0"
- }
-}
diff --git a/ct/build_ctfe_release b/ct/build_ctfe_release
index 2a9b935..80d8123 100755
--- a/ct/build_ctfe_release
+++ b/ct/build_ctfe_release
@@ -19,16 +19,7 @@
# Copy over all frontend artifacts.
${INSTALL_DIR} --mode=755 ${ROOT}/usr/local/share/${APPNAME}/dist
${INSTALL} --mode=644 ./dist/* ${ROOT}/usr/local/share/${APPNAME}/dist
-${INSTALL_DIR} --mode=755 ${ROOT}/usr/local/share/${APPNAME}/templates
-${INSTALL} --mode=644 ./templates/* ${ROOT}/usr/local/share/${APPNAME}/templates
-${INSTALL_DIR} --mode=755 ${ROOT}/usr/local/share/${APPNAME}/res/css
-${INSTALL} --mode=644 -T ./res/css/ctfe.css ${ROOT}/usr/local/share/${APPNAME}/res/css/ctfe.css
-${INSTALL_DIR} --mode=755 ${ROOT}/usr/local/share/${APPNAME}/res/img
-${INSTALL} --mode=644 -T ./res/img/favicon.ico ${ROOT}/usr/local/share/${APPNAME}/res/img/favicon.ico
-${INSTALL_DIR} --mode=755 ${ROOT}/usr/local/share/${APPNAME}/res/js
-${INSTALL} --mode=644 -T ./res/js/core.js ${ROOT}/usr/local/share/${APPNAME}/res/js/core.js
-${INSTALL_DIR} --mode=755 ${ROOT}/usr/local/share/${APPNAME}/res/vul
-${INSTALL} --mode=644 -T ./res/vul/elements.html ${ROOT}/usr/local/share/${APPNAME}/res/vul/elements.html
+${INSTALL} --mode=644 -T ./res/img/favicon.ico ${ROOT}/usr/local/share/${APPNAME}/dist/img/favicon.ico
# Copy over the isolate files and python scripts.
${INSTALL_DIR} --mode=755 ${ROOT}/usr/local/share/${APPNAME}/isolates
diff --git a/ct/elements.html b/ct/elements.html
deleted file mode 100644
index 62e8650..0000000
--- a/ct/elements.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <!--
- The full set of web components needed for CT's frontend.
-
- This file will be vulcanized into res/imp/elements.html which is
- imported via the templates/header.html file.
- -->
- <link rel="import" href="/res/imp/bower_components/polymer/polymer.html">
-
- <link rel="import" href="/res/imp/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html" />
- <link rel="import" href="/res/imp/bower_components/iron-collapse/iron-collapse.html" />
- <link rel="import" href="/res/imp/bower_components/iron-icon/iron-icon.html" />
- <link rel="import" href="/res/imp/bower_components/iron-icons/image-icons.html" />
- <link rel="import" href="/res/imp/bower_components/iron-icons/iron-icons.html" />
- <link rel="import" href="/res/imp/bower_components/iron-icons/social-icons.html" />
- <link rel="import" href="/res/imp/bower_components/iron-selector/iron-selector.html" />
-
- <link rel="import" href="/res/imp/bower_components/paper-button/paper-button.html" />
- <link rel="import" href="/res/imp/bower_components/paper-checkbox/paper-checkbox.html" />
- <link rel="import" href="/res/imp/bower_components/paper-dialog/paper-dialog.html" />
- <link rel="import" href="/res/imp/bower_components/paper-dialog-scrollable/paper-dialog-scrollable.html" />
- <link rel="import" href="/res/imp/bower_components/paper-drawer-panel/paper-drawer-panel.html">
- <link rel="import" href="/res/imp/bower_components/paper-header-panel/paper-header-panel.html">
- <link rel="import" href="/res/imp/bower_components/paper-icon-button/paper-icon-button.html" />
- <link rel="import" href="/res/imp/bower_components/paper-input/paper-input.html" />
- <link rel="import" href="/res/imp/bower_components/paper-item/paper-item.html" />
- <link rel="import" href="/res/imp/bower_components/paper-menu/paper-menu.html" />
- <link rel="import" href="/res/imp/bower_components/paper-spinner/paper-spinner.html" />
- <link rel="import" href="/res/imp/bower_components/paper-tabs/paper-tabs.html" />
- <link rel="import" href="/res/imp/bower_components/paper-toolbar/paper-toolbar.html" />
-
- <link rel="import" href="/res/imp/admin-tasks-sk.html" />
- <link rel="import" href="/res/imp/admin-task-runs-sk.html" />
- <link rel="import" href="/res/imp/capture-skps-sk.html" />
- <link rel="import" href="/res/imp/capture-skp-runs-sk.html" />
- <link rel="import" href="/res/imp/chromium-builds-sk.html" />
- <link rel="import" href="/res/imp/chromium-build-runs-sk.html" />
- <link rel="import" href="/res/imp/chromium-build-selector-sk.html" />
- <link rel="import" href="/res/imp/chromium-analysis-sk.html" />
- <link rel="import" href="/res/imp/chromium-analysis-runs-sk.html" />
- <link rel="import" href="/res/imp/chromium-perf-sk.html" />
- <link rel="import" href="/res/imp/chromium-perf-runs-sk.html" />
- <link rel="import" href="/res/imp/ct-runs-summary-sk.html" />
- <link rel="import" href="/res/imp/drawer-sk.html" />
- <link rel="import" href="/res/imp/expanding-textarea-sk.html" />
- <link rel="import" href="/res/imp/metrics-analysis-sk.html" />
- <link rel="import" href="/res/imp/metrics-analysis-runs-sk.html" />
- <link rel="import" href="/res/imp/page-set-selector-sk.html" />
- <link rel="import" href="/res/imp/patch-sk.html" />
- <link rel="import" href="/res/imp/pending-tasks-sk.html" />
- <link rel="import" href="/res/imp/repeat-after-days-sk.html" />
- <link rel="import" href="/res/imp/skp-repository-selector-sk.html" />
-
- <link rel="import" href="/res/common/imp/autocomplete-input-sk.html">
- <link rel="import" href="/res/common/imp/confirm-dialog-sk.html" />
- <link rel="import" href="/res/common/imp/error-toast-sk.html" />
- <link rel="import" href="/res/common/imp/login.html" />
- <link rel="import" href="/res/common/imp/paging.html" />
-</head>
diff --git a/ct/package-lock.json b/ct/package-lock.json
index f4e70df..68c649d 100644
--- a/ct/package-lock.json
+++ b/ct/package-lock.json
@@ -52,12 +52,6 @@
"integrity": "sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==",
"dev": true
},
- "@types/clone": {
- "version": "0.1.30",
- "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz",
- "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=",
- "dev": true
- },
"@types/copy-webpack-plugin": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/@types/copy-webpack-plugin/-/copy-webpack-plugin-5.0.1.tgz",
@@ -114,23 +108,6 @@
"integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==",
"dev": true
},
- "@types/parse5": {
- "version": "0.0.31",
- "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-0.0.31.tgz",
- "integrity": "sha1-6Cekk6RDsVbhtYKi5MO9wAQPLuc=",
- "dev": true,
- "requires": {
- "@types/node": "6.0.*"
- },
- "dependencies": {
- "@types/node": {
- "version": "6.0.118",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.118.tgz",
- "integrity": "sha512-N33cKXGSqhOYaPiT4xUGsYlPPDwFtQM/6QxJxuMXA/7BcySW+lkn2yigWP7vfs4daiL/7NJNU6DMCqg5N4B+xQ==",
- "dev": true
- }
- }
- },
"@types/source-list-map": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
@@ -386,21 +363,6 @@
"negotiator": "0.6.2"
}
},
- "acorn": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
- "dev": true
- },
- "acorn-jsx": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
- "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
- "dev": true,
- "requires": {
- "acorn": "^3.0.4"
- }
- },
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
@@ -991,12 +953,6 @@
}
}
},
- "bower": {
- "version": "1.8.8",
- "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.8.tgz",
- "integrity": "sha512-1SrJnXnkP9soITHptSO+ahx3QKp3cVzn8poI6ujqc5SeOkg5iqM1pK9H+DSc2OQ8SnO0jC/NG4Ur/UIwy7574A==",
- "dev": true
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1554,12 +1510,6 @@
}
}
},
- "clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
- "dev": true
- },
"clone-deep": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
@@ -2032,12 +1982,6 @@
"type-detect": "^4.0.0"
}
},
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
- "dev": true
- },
"default-gateway": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
@@ -2232,16 +2176,6 @@
"buffer-indexof": "^1.0.0"
}
},
- "doctrine": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz",
- "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=",
- "dev": true,
- "requires": {
- "esutils": "^1.1.6",
- "isarray": "0.0.1"
- }
- },
"dom-serialize": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
@@ -2254,27 +2188,6 @@
"void-elements": "^2.0.0"
}
},
- "dom5": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/dom5/-/dom5-1.3.6.tgz",
- "integrity": "sha1-pwiKn8XzsI3J9u2kx6uuskGUXg0=",
- "dev": true,
- "requires": {
- "@types/clone": "^0.1.29",
- "@types/node": "^4.0.30",
- "@types/parse5": "^0.0.31",
- "clone": "^1.0.2",
- "parse5": "^1.4.1"
- },
- "dependencies": {
- "@types/node": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-4.9.4.tgz",
- "integrity": "sha512-nKoiCZ87x6+fs26bNHjy07AQt6f46nFEitGH0P9JmWbY6tEyum6LLfLf7SIsKFh4DnBWsyUM2gYhaQAt+aA0Sw==",
- "dev": true
- }
- }
- },
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
@@ -2601,12 +2514,6 @@
"is-symbol": "^1.0.2"
}
},
- "es6-promise": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz",
- "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=",
- "dev": true
- },
"es6-promisify": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
@@ -2646,46 +2553,6 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
- "escodegen": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz",
- "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==",
- "dev": true,
- "requires": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
- },
- "dependencies": {
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "optional": true
- }
- }
- },
"eslint-scope": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
@@ -2704,24 +2571,6 @@
}
}
},
- "espree": {
- "version": "3.5.4",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
- "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
- "dev": true,
- "requires": {
- "acorn": "^5.5.0",
- "acorn-jsx": "^3.0.0"
- },
- "dependencies": {
- "acorn": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
- "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
- "dev": true
- }
- }
- },
"esprima": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
@@ -2745,18 +2594,6 @@
}
}
},
- "estraverse": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-3.1.0.tgz",
- "integrity": "sha1-FeKKRGuLgrxwDMyLlseK9NoNbLo=",
- "dev": true
- },
- "esutils": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz",
- "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=",
- "dev": true
- },
"eventemitter3": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
@@ -3127,12 +2964,6 @@
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true
},
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
- "dev": true
- },
"fastparse": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
@@ -5281,33 +5112,6 @@
}
}
},
- "hydrolysis": {
- "version": "1.25.0",
- "resolved": "https://registry.npmjs.org/hydrolysis/-/hydrolysis-1.25.0.tgz",
- "integrity": "sha1-pPsUo3oeA7DbUtiqpXxoInKhTYQ=",
- "dev": true,
- "requires": {
- "acorn": "^3.2.0",
- "babel-polyfill": "^6.2.0",
- "doctrine": "^0.7.0",
- "dom5": "1.1.0",
- "escodegen": "^1.7.0",
- "espree": "^3.1.3",
- "estraverse": "^3.1.0",
- "path-is-absolute": "^1.0.0"
- },
- "dependencies": {
- "dom5": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/dom5/-/dom5-1.1.0.tgz",
- "integrity": "sha1-Ogx3AMCDq0xNJpOKeLDwxtzDd5Q=",
- "dev": true,
- "requires": {
- "parse5": "^1.4.1"
- }
- }
- }
- },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -5480,13 +5284,6 @@
"integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
"dev": true
},
- "infinity-agent": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
- "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=",
- "dev": true,
- "optional": true
- },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -5673,13 +5470,6 @@
"lower-case": "^1.1.0"
}
},
- "is-npm": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
- "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
- "dev": true,
- "optional": true
- },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -5733,13 +5523,6 @@
}
}
},
- "is-redirect": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
- "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
- "dev": true,
- "optional": true
- },
"is-regex": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
@@ -6089,16 +5872,6 @@
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
"dev": true
},
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- }
- },
"lit-html": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.2.1.tgz",
@@ -6261,13 +6034,6 @@
"lower-case": "^1.1.2"
}
},
- "lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
- "dev": true,
- "optional": true
- },
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@@ -6957,16 +6723,6 @@
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
"dev": true
},
- "nested-error-stacks": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
- "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=",
- "dev": true,
- "optional": true,
- "requires": {
- "inherits": "~2.0.1"
- }
- },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -7462,20 +7218,6 @@
"wordwrap": "~0.0.2"
}
},
- "optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
- "requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- }
- },
"original": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
@@ -7491,13 +7233,6 @@
"integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
"dev": true
},
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "dev": true,
- "optional": true
- },
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -7654,12 +7389,6 @@
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
- "parse5": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
- "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
- "dev": true
- },
"parseqs": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
@@ -8003,12 +7732,6 @@
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
"dev": true
},
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "dev": true
- },
"prepend-http": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
@@ -8277,88 +8000,6 @@
"unpipe": "1.0.0"
}
},
- "rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "dev": true,
- "optional": true,
- "requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "dependencies": {
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "dev": true,
- "optional": true
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true,
- "optional": true
- }
- }
- },
- "read-all-stream": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
- "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
- "dev": true,
- "optional": true,
- "requires": {
- "pinkie-promise": "^2.0.0",
- "readable-stream": "^2.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true,
- "optional": true
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "optional": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true,
- "optional": true
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "optional": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -8816,16 +8457,6 @@
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
"dev": true
},
- "repeating": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz",
- "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-finite": "^1.0.0"
- }
- },
"request": {
"version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
@@ -9349,13 +8980,6 @@
"supports-color": "^5.5.0"
}
},
- "slide": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
- "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
- "dev": true,
- "optional": true
- },
"snake-case": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
@@ -10400,13 +10024,6 @@
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
"dev": true
},
- "timed-out": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
- "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=",
- "dev": true,
- "optional": true
- },
"timers-browserify": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
@@ -10590,15 +10207,6 @@
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true
},
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2"
- }
- },
"type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
@@ -10885,13 +10493,6 @@
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"dev": true
},
- "uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
- "dev": true,
- "optional": true
- },
"v8-compile-cache": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz",
@@ -10931,205 +10532,6 @@
"integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
"dev": true
},
- "vulcanize": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/vulcanize/-/vulcanize-1.5.1.tgz",
- "integrity": "sha1-m/OcFSV61iEiC85UErRUIbGnK6g=",
- "dev": true,
- "requires": {
- "dom5": "^1.0.2",
- "es6-promise": "^2.1.0",
- "hydrolysis": "^1.5.0",
- "nopt": "^3.0.1",
- "update-notifier": "^0.5.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true,
- "optional": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true,
- "optional": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "configstore": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
- "integrity": "sha1-w1eB0FAdJowlxUuLF/YkDopPsCE=",
- "dev": true,
- "optional": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "mkdirp": "^0.5.0",
- "object-assign": "^4.0.1",
- "os-tmpdir": "^1.0.0",
- "osenv": "^0.1.0",
- "uuid": "^2.0.1",
- "write-file-atomic": "^1.1.2",
- "xdg-basedir": "^2.0.0"
- }
- },
- "got": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
- "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=",
- "dev": true,
- "optional": true,
- "requires": {
- "duplexify": "^3.2.0",
- "infinity-agent": "^2.0.0",
- "is-redirect": "^1.0.0",
- "is-stream": "^1.0.0",
- "lowercase-keys": "^1.0.0",
- "nested-error-stacks": "^1.0.0",
- "object-assign": "^3.0.0",
- "prepend-http": "^1.0.0",
- "read-all-stream": "^3.0.0",
- "timed-out": "^2.0.0"
- },
- "dependencies": {
- "object-assign": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
- "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
- "dev": true,
- "optional": true
- }
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "latest-version": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz",
- "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=",
- "dev": true,
- "optional": true,
- "requires": {
- "package-json": "^1.0.0"
- }
- },
- "package-json": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz",
- "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=",
- "dev": true,
- "optional": true,
- "requires": {
- "got": "^3.2.0",
- "registry-url": "^3.0.0"
- }
- },
- "registry-url": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
- "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
- "dev": true,
- "optional": true,
- "requires": {
- "rc": "^1.0.1"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "optional": true
- },
- "semver-diff": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
- "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
- "dev": true,
- "optional": true,
- "requires": {
- "semver": "^5.0.3"
- }
- },
- "string-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
- "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
- "dev": true,
- "optional": true,
- "requires": {
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true,
- "optional": true
- },
- "update-notifier": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz",
- "integrity": "sha1-B7XcIGazYnqztPUwEw9+3doHpMw=",
- "dev": true,
- "optional": true,
- "requires": {
- "chalk": "^1.0.0",
- "configstore": "^1.0.0",
- "is-npm": "^1.0.0",
- "latest-version": "^1.0.0",
- "repeating": "^1.1.2",
- "semver-diff": "^2.0.0",
- "string-length": "^1.0.0"
- }
- },
- "xdg-basedir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
- "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
- "dev": true,
- "optional": true,
- "requires": {
- "os-homedir": "^1.0.0"
- }
- }
- }
- },
"watchpack": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
@@ -12988,12 +12390,6 @@
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
"dev": true
},
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
- },
"wordwrap": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
@@ -13025,18 +12421,6 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
- "write-file-atomic": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
- "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=",
- "dev": true,
- "optional": true,
- "requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "slide": "^1.1.5"
- }
- },
"ws": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
diff --git a/ct/package.json b/ct/package.json
index b272bfa..81a8b35 100644
--- a/ct/package.json
+++ b/ct/package.json
@@ -17,7 +17,6 @@
"@types/node": "^14.0.13",
"@types/webpack": "^4.41.13",
"autoprefixer": "^9.6.1",
- "bower": "^1.8.8",
"chai": "~4.2.0",
"css-loader": "^3.5.3",
"cssmin": "~0.4.2",
@@ -44,7 +43,6 @@
"ts-node": "^8.10.1",
"typescript": "^3.9.2",
"uglify-js": "^2.6.4",
- "vulcanize": "~1.5.1",
"webpack": "^4.41.5",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.10.3"
diff --git a/ct/pages/admin_tasks.html b/ct/pages/admin_tasks.html
index 2d95175..6d9efec 100644
--- a/ct/pages/admin_tasks.html
+++ b/ct/pages/admin_tasks.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Admin Tasks</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/capture_skp_runs.html b/ct/pages/capture_skp_runs.html
index 816af67..8a6b741 100644
--- a/ct/pages/capture_skp_runs.html
+++ b/ct/pages/capture_skp_runs.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Capture SkPictures Runs</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/capture_skps.html b/ct/pages/capture_skps.html
index 6afecea..1d94800 100644
--- a/ct/pages/capture_skps.html
+++ b/ct/pages/capture_skps.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Capture SKPictures</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/chromium_analysis.html b/ct/pages/chromium_analysis.html
index a03d300..73191bb 100644
--- a/ct/pages/chromium_analysis.html
+++ b/ct/pages/chromium_analysis.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Chromium Analysis</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/chromium_analysis_runs.html b/ct/pages/chromium_analysis_runs.html
index 2b93fd9..2a592df 100644
--- a/ct/pages/chromium_analysis_runs.html
+++ b/ct/pages/chromium_analysis_runs.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Chromium Analysis Runs</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/chromium_build_runs.html b/ct/pages/chromium_build_runs.html
index 32cda1c..69b5037 100644
--- a/ct/pages/chromium_build_runs.html
+++ b/ct/pages/chromium_build_runs.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Chromium Build Runs</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/chromium_builds.html b/ct/pages/chromium_builds.html
index da8108a..c94b234 100644
--- a/ct/pages/chromium_builds.html
+++ b/ct/pages/chromium_builds.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Chromium Builds</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/chromium_perf.html b/ct/pages/chromium_perf.html
index 99d870b..885c578 100644
--- a/ct/pages/chromium_perf.html
+++ b/ct/pages/chromium_perf.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Chromium Perf</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/chromium_perf_runs.html b/ct/pages/chromium_perf_runs.html
index 193d5b8..ff0d510 100644
--- a/ct/pages/chromium_perf_runs.html
+++ b/ct/pages/chromium_perf_runs.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Chromium Perf Runs</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/metrics_analysis.html b/ct/pages/metrics_analysis.html
index fb08698..6840e94 100644
--- a/ct/pages/metrics_analysis.html
+++ b/ct/pages/metrics_analysis.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Metrics Analysis</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/metrics_analysis_runs.html b/ct/pages/metrics_analysis_runs.html
index 76327e6..ebd9ff9 100644
--- a/ct/pages/metrics_analysis_runs.html
+++ b/ct/pages/metrics_analysis_runs.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Metrics Analysis Runs</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/queue.html b/ct/pages/queue.html
index 1b35ea0..080c5df 100644
--- a/ct/pages/queue.html
+++ b/ct/pages/queue.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>CT Task Queue</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/recreate_page_sets_runs.html b/ct/pages/recreate_page_sets_runs.html
index 63958d8..a92aeb2 100644
--- a/ct/pages/recreate_page_sets_runs.html
+++ b/ct/pages/recreate_page_sets_runs.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Recreate Page Sets Task Runs</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/recreate_webpage_archives_runs.html b/ct/pages/recreate_webpage_archives_runs.html
index ced5c22..cbe88d3 100644
--- a/ct/pages/recreate_webpage_archives_runs.html
+++ b/ct/pages/recreate_webpage_archives_runs.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Recreate Webpage Archives Task Runs</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/pages/runs_history.html b/ct/pages/runs_history.html
index 9542097..307bab9 100644
--- a/ct/pages/runs_history.html
+++ b/ct/pages/runs_history.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>Runs History</title>
- <link rel="shortcut icon" href="/res/img/favicon.ico">
+ <link rel="shortcut icon" href="/dist/img/favicon.ico">
</head>
<body>
<ct-scaffold-sk app_title="Cluster Telemetry 3.0">
diff --git a/ct/res/css/ctfe.css b/ct/res/css/ctfe.css
deleted file mode 100644
index fc69c8e..0000000
--- a/ct/res/css/ctfe.css
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- * Copyright (c) 2015 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 */
-
-h4 {
- margin: 0.5em 0;
-}
-
-html /deep/ paper-button {
- color: #1f78b4;
-}
-
-html /deep/ paper-button:hover {
- background: #eee;
-}
-
-body {
- font-family: Arial, sans-serif;
- font-size: 15px;
-}
-
-#container {
- padding: 1em;
- background: white;
-}
-
-html /deep/ a {
- color: #1f78b4;
- font-weight: bold;
-}
-
-html /deep/ a:hover {
- text-decoration: none;
-}
-
-button {
- margin: 0.5em;
- border: none;
- padding: 0.2em 0.4em;
-}
-
-input {
- margin: 0.5em;
-}
-
-button:hover {
- color: white;
- background: #1F78B4;
-}
-
-.waiting {
- cursor: wait;
-}
-
-table, td {
- border: none;
-}
-
-.hidden {
- display: none;
-}
-
-.blank * {
- display: none;
-}
-
-.centered {
- flex-grow: 1;
-}
-
-html /deep/ core-toolbar,
-#title {
- background-color: #1f78b4;
- color: #fff;
-}
-
-#title login-sk {
- margin-left: auto;
-}
-
-#title /deep/ a {
- color: white;
-}
-
-p {
- margin: 0.2em;
- padding: 0;
-}
-
-#version {
- font-size: 10px;
- margin-left: 1em;
-}
-
-core-item:hover {
- background: lightgray;
-}
-
-.left_padded {
- padding-left: 2em;
-}
-
-.top_padded {
- padding-top: 2em;
-}
-
-.right_padded {
- padding-right: 2em;
-}
-
-.nolink {
- text-decoration: none;
- color: black;
- font-weight: normal;
-}
-
-.scrollable {
- height: 80vh;
- overflow-y: auto;
-}
-
-.fit {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
-}
diff --git a/ct/res/imp/admin-task-runs-sk.html b/ct/res/imp/admin-task-runs-sk.html
deleted file mode 100644
index 7b0a2ee..0000000
--- a/ct/res/imp/admin-task-runs-sk.html
+++ /dev/null
@@ -1,326 +0,0 @@
-<!--
- The <admin-task-runs-sk> custom element declaration. Displays a table with details about each
- completed and pending admin task, and allows the user to delete pending tasks if applicable.
-
- Attributes:
- url: POST URI to request tasks, e.g. "/_/get_recreate_page_sets_tasks". Must be set.
- deleteUrl: POST URI to delete a task, e.g. "/_/delete_recreate_page_sets_task". Must be set.
- redoUrl: POST URI to redo a task, e.g. "/_/redo_recreate_page_sets_task". Must be set.
- taskType: Type of task, e.g. "RecreatePageSets". Must be set.
- defaultSize: The number of tasks to show per page, default 10.
- constrainByUser: Whether to show only tasks created by the logged-in user initially, default
- false.
- myRunsConstrainText: Button text to constrain by user, default "View only my runs".
- everyonesRunsConstrainText: Button text to disable constraining by user, default "View
- everyone's runs".
- constrainByTestRun: Whether to show only non-test tasks, default true. Test tasks are those that
- use the "Dummy1k" page sets.
- nonTestRunsConstrainText: Button text to constrain to non-test tasks, default "Exclude test
- runs".
- testRunsConstrainText: Button text to disable constraining by test tasks, default "Include test
- runs".
-
- Events:
- None.
-
- Methods:
- reload: queries for updated information on tasks.
- resetPagination: Moves to the first page of tasks.
- constrainRunsByUser: Toggles constrainByUser and reloads the appropriate data.
- constrainTestRuns: Toggles constrainByTestRun and reloads the appropriate data.
--->
-<dom-module id="admin-task-runs-sk">
- <style>
- table.runshistory {
- border-spacing: 0px;
- }
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- table.runshistory > tbody > tr > td {
- padding: 10px;
- border: solid black 1px;
- }
- .delete-button, .redo-button {
- --paper-icon-button-disabled: {
- display: none;
- }
- }
- .oldruns {
- margin-left: 20px;
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <h2><template is="dom-if" if="{{constrainByUser}}">My </template><span>{{taskType}}</span> Task Runs</h2>
- <paging-sk pagination="{{pagination}}" on-pagechange="pageChangedHandler"></paging-sk>
- <br/>
- <paper-button raised on-click="constrainRunsByUser">{{
- constrainButtonText(constrainByUser, myRunsConstrainText, everyonesRunsConstrainText)
- }}</paper-button>
- <paper-button raised on-click="constrainTestRuns">{{
- constrainButtonText(constrainByTestRun, nonTestRunsConstrainText, testRunsConstrainText)
- }}</paper-button>
-
- <br/>
- <br/>
-
- <table class="runshistory" id="runshistory" cellpadding="5" border="1">
- <tr class="headers">
- <td>Id</td>
- <td>User</td>
- <td>Timestamps</td>
- <td>Task Config</td>
- <td>Results</td>
- <td>Task Repeats</td>
- </tr>
-
- <template is="dom-repeat" items="{{adminTasks}}" as="adminTask" index-as="index">
- <tr style="border: 1px solid black;">
- <!-- Id col -->
- <td class="nowrap">
- <span>{{adminTask.Id}}</span>
- <paper-icon-button icon="delete" mini
- class="delete-button"
- disabled="{{!adminTask.canDelete}}"
- alt="Delete"
- data-index$="{{index}}"
- data-type="delete">
- </paper-icon-button>
- <paper-icon-button icon="redo" mini
- class="redo-button"
- disabled="{{!adminTask.canRedo}}"
- alt="Redo"
- data-index$="{{index}}"
- data-type="redo">
- </paper-icon-button>
- </td>
-
- <!-- User col -->
- <td>{{adminTask.Username}}</td>
-
- <!-- Timestamps col -->
- <td>
- <table>
- <tr>
- <td>Added:</td>
- <td class="nowrap">{{ formatTimestamp(adminTask.TsAdded) }}</td>
- </tr>
- <tr>
- <td>Started:</td>
- <td class="nowrap">{{ formatTimestamp(adminTask.TsStarted) }}</td>
- </tr>
- <tr>
- <td>Completed:</td>
- <td class="nowrap">{{ formatTimestamp(adminTask.TsCompleted) }}</td>
- </tr>
- </table>
- </td>
-
- <!-- Task Config col -->
- <td>
- <table>
- <tr>
- <td>PageSet:</td>
- <td>{{adminTask.PageSets}}</td>
- </tr>
- <template is="dom-if" if="{{isRecreateWebpageArchivesTask()}}">
- <tr>
- <td>ChromiumBuild:</td>
- <td class="nowrap">
- <a href="{{chromiumCommitUrl(adminTask.ChromiumRev)}}">{{shortHash(adminTask.ChromiumRev)}}</a>-<a href="{{skiaCommitUrl(adminTask.SkiaRev)}}">{{shortHash(adminTask.SkiaRev)}}</a>
- </td>
- </tr>
- </template>
- </table>
- </td>
-
- <!-- Results col -->
- <td class="nowrap">
- <template is="dom-if" if="{{adminTask.Failure}}">
- <div style="color:red;">Failed</div>
- </template>
- <template is="dom-if" if="{{!adminTask.TaskDone}}">
- <div style="color:green;">Waiting</div>
- </template>
- <template is="dom-if" if="{{isDone(adminTask.Failure, adminTask.TaskDone)}}">
- Done
- </template>
- <br/>
- <template is="dom-if" if="{{adminTask.SwarmingLogs}}">
- <a href="{{adminTask.SwarmingLogs}}" target="_blank">Swarming Logs</a>
- </template>
- </td>
-
- <!-- Repeat Every -->
- <td>{{ formatRepeatAfterDays(adminTask.RepeatAfterDays) }}</td>
-
- </tr>
- </template>
- </table>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "admin-task-runs-sk",
- properties: {
- url: String,
- deleteUrl: String,
- redoUrl: String,
- taskType: String,
- adminTasks: {
- type: Array,
- value: function() { return []; },
- },
- defaultSize: {
- type: Number,
- value: 10,
- },
- constrainByUser: {
- type: Boolean,
- value: false,
- },
- myRunsConstrainText: {
- type: String,
- value: "View only my runs",
- },
- everyonesRunsConstrainText: {
- type: String,
- value: "View everyone's runs",
- },
- constrainByTestRun: {
- type: Boolean,
- value: true,
- },
- nonTestRunsConstrainText: {
- type: String,
- value: "Exclude test runs",
- },
- testRunsConstrainText: {
- type: String,
- value: "Include test runs",
- },
- pagination: {
- type: Object,
- value: function() { return {}; },
- },
- pageChangedHandler: {
- type: Object,
- value: function() { return null; },
- },
- },
-
- ready: function() {
- this.pagination = {"offset": 0, "size": this.defaultSize};
- this.pageChangedHandler = this.reload.bind(this);
- var that = this;
- this.$.runshistory.addEventListener('click', function(e) {
- var button = sk.findParent(e.target, "PAPER-ICON-BUTTON");
- if (button != null) {
- if (button.dataset.type == "delete") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Proceed with deleting task?")
- .then(that.deleteTask.bind(that, index));
- } else if (button.dataset.type == "redo") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Reschedule this task?")
- .then(that.redoTask.bind(that, index));
- }
- }
- });
- this.reload();
- },
-
- reload: function() {
- var queryParams = {
- "offset": this.pagination.offset,
- "size": this.pagination.size,
- }
- if (this.constrainByUser) {
- queryParams["filter_by_logged_in_user"] = true;
- }
- if (this.constrainByTestRun) {
- queryParams["exclude_dummy_page_sets"] = true;
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- sk.post(this.url + queryStr).then(JSON.parse).then(function(json) {
- this.pagination = json.pagination;
- this.adminTasks = json.data;
- for (var i = 0; i < this.adminTasks.length; i++) {
- this.adminTasks[i].canDelete = json.permissions[i].DeleteAllowed;
- this.adminTasks[i].canRedo = json.permissions[i].RedoAllowed;
- this.adminTasks[i].Id = json.ids[i];
- }
- }.bind(this)).catch(sk.errorMessage);
- },
-
- resetPagination: function() {
- this.pagination.offset = 0;
- this.pagination.size = this.defaultSize;
- },
-
- constrainRunsByUser: function() {
- this.constrainByUser = !this.constrainByUser;
- this.resetPagination();
- this.reload();
- },
-
- constrainTestRuns: function() {
- this.constrainByTestRun = !this.constrainByTestRun;
- this.resetPagination();
- this.reload();
- },
-
- constrainButtonText: function(constrained, constrainText, unconstrainText) {
- if (constrained) {
- return unconstrainText;
- } else {
- return constrainText;
- }
- },
-
- deleteTask: function(deleteIndex) {
- var params = {};
- params["id"] = this.adminTasks[deleteIndex].Id;
- sk.post(this.deleteUrl, JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Deleted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- redoTask: function(redoIndex) {
- var params = {};
- params["id"] = this.adminTasks[redoIndex].Id;
- sk.post(this.redoUrl, JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Resubmitted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- formatTimestamp: ctfe.getFormattedTimestamp,
- chromiumCommitUrl: ctfe.chromiumBuild.chromiumCommitUrl,
- skiaCommitUrl: ctfe.chromiumBuild.skiaCommitUrl,
- shortHash: ctfe.chromiumBuild.shortHash,
- formatRepeatAfterDays: ctfe.formatRepeatAfterDays,
-
- isRecreateWebpageArchivesTask: function() {
- return this.taskType == "RecreateWebpageArchives";
- },
-
- isDone: function(failure, taskDone) {
- return !failure && taskDone;
- },
- });
-</script>
diff --git a/ct/res/imp/admin-tasks-sk.html b/ct/res/imp/admin-tasks-sk.html
deleted file mode 100644
index 5c672c1..0000000
--- a/ct/res/imp/admin-tasks-sk.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!--
- The <admin-tasks-sk> custom element declaration. Displays a form that allows the user to queue
- either a recreate page sets task or recreate webpage archives task.
-
- Attributes:
- selectedTab: One of "pagesets" or "archives" to control which tab to display initially, default
- "pagesets".
- pageSets: List of all defined page sets, as accepted by page-set-selector-sk property
- pageSets. Must be set.
- chromiumBuilds: List of all supported Chromium builds, as accepted by chromium-build-selector-sk
- attribute chromiumBuilds. Must be set.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="admin-tasks-sk">
- <style>
- paper-tabs {
- background-color: #D6ECF2;
- }
-
- .triggering-spinner {
- margin: auto;
- vertical-align: middle;
- }
-
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- .hidden {
- display: none;
- }
-
- table.options {
- margin: auto
- }
-
- table.options td {
- padding: 1em 2em;
- }
-
- td.center {
- text-align:center;
- padding-top:2em;
- }
-
- .panel {
- @apply(--shadow-elevation-2dp);
- margin-right: 10px
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <div class="panel">
- <paper-tabs id="tabs" attr-for-selected="id" selected="{{selectedTab}}" noink>
- <paper-tab id="pagesets">Recreate Pagesets</paper-tab>
- <paper-tab id="archives">Recreate Webpage Archives</paper-tab>
- </paper-tabs>
-
- <table class="options">
- <tr>
- <td>PageSets Type</td>
- <td>
- <page-set-selector-sk id="page_sets" page-sets="{{pageSets}}"></page-set-selector-sk>
- </td>
- </tr>
-
- <tr id="chromium_build_row" class="hidden">
- <td>Chromium Build</td>
- <td>
- <chromium-build-selector-sk id="chromium_build"
- chromium-builds="{{chromiumBuilds}}">
- </chromium-build-selector-sk>
- </td>
- </tr>
-
- <tr>
- <td>Repeat this task</td>
- <td>
- <repeat-after-days-sk id="repeat_after_days"></repeat-after-days-sk>
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="center">
- <div class="triggering-spinner">
- <paper-spinner active="[[ triggeringTask ]]" alt="Trigger task"></paper-spinner>
- </div>
- <paper-button raised id="submit_task" disabled="[[ triggeringTask ]]">Queue Task</paper-button>
- </td>
- </tr>
- <tr>
- <td colspan="2" class="center">
- <paper-button raised id="view_history">View runs history</paper-button>
- </td>
- </tr>
- </table>
- </div>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "admin-tasks-sk",
- properties: {
- selectedTab: {
- type: String,
- value: "pagesets",
- observer: "tabChanged",
- },
- pageSets: {
- type: Array,
- observer: "pageSetsChanged",
- },
- chromiumBuilds: {
- type: Array,
- observer: "chromiumBuildsChanged",
- },
- triggeringTask: {
- type: Boolean,
- value: false,
- },
- },
-
- ready: function() {
- this.$.tabs.selected = "pagesets";
- var that = this;
- this.$.submit_task.addEventListener('click', function(e) {
- that.validateTask();
- });
- this.$.view_history.addEventListener('click', function(e) {
- that.gotoRunsHistory();
- });
- },
-
- tabChanged: function() {
- this.$.chromium_build_row.classList
- .toggle("hidden", this.selectedTab != "archives");
- },
-
- pageSetsChanged: function(newValue, oldValue) {
- if (!oldValue || oldValue.length == 0) {
- this.$.page_sets.selectFirst();
- }
- },
-
- chromiumBuildsChanged: function(newValue, oldValue) {
- if (!oldValue || oldValue.length == 0) {
- this.$.chromium_build.selectFirst();
- }
- },
-
- validateTask: function() {
- if (this.selectedTab == "archives") {
- if (!this.$.chromium_build.selected) {
- sk.errorMessage("Please select a Chromium build");
- this.$.chromium_build.focus();
- return;
- }
- }
- if (ctfe.moreThanThreeActiveTasks($$$("drawer-sk").sizeOfUserQueue)) {
- return;
- }
- this.$.confirm_dialog.open("Proceed with queueing task?")
- .then(this.queueTask.bind(this))
- .catch(function() {
- sk.errorMessage("Did not queue");
- })
- },
-
- queueTask: function() {
- if (this.selectedTab == "pagesets") {
- this.queuePagesetsTask();
- } else if (this.selectedTab == "archives") {
- this.queueArchivesTask();
- } else {
- sk.errorMessage(new Error("Unknown selectedTab: " + this.selectedTab));
- }
- },
-
- queuePagesetsTask: function() {
- this.triggeringTask = true;
- var params = {};
- params["page_sets"] = this.$.page_sets.selected;
- params["repeat_after_days"] = this.$.repeat_after_days.selected;
-
- sk.post("/_/add_recreate_page_sets_task", JSON.stringify(params))
- .then(function(resp) {
- this.gotoRunsHistory();
- }.bind(this)).catch(function(e) {
- this.triggeringTask = false;
- sk.errorMessage(e);
- }.bind(this));
- },
-
- queueArchivesTask: function() {
- this.triggeringTask = true;
- var params = {};
- params["page_sets"] = this.$.page_sets.selected;
- params["chromium_build"] = this.$.chromium_build.selected;
- params["repeat_after_days"] = this.$.repeat_after_days.selected;
-
- sk.post("/_/add_recreate_webpage_archives_task", JSON.stringify(params))
- .then(function(resp) {
- this.gotoRunsHistory();
- }.bind(this)).catch(function(e) {
- this.triggeringTask = false;
- sk.errorMessage(e);
- }.bind(this));
- },
-
- gotoRunsHistory: function() {
- if (this.selectedTab == "pagesets") {
- window.location.href = "/recreate_page_sets_runs/";
- } else if (this.selectedTab == "archives") {
- window.location.href = "/recreate_webpage_archives_runs/";
- } else {
- sk.errorMessage(new Error("Unknown selectedTab: " + this.selectedTab));
- }
- },
- });
-</script>
diff --git a/ct/res/imp/capture-skp-runs-sk.html b/ct/res/imp/capture-skp-runs-sk.html
deleted file mode 100644
index 887a451..0000000
--- a/ct/res/imp/capture-skp-runs-sk.html
+++ /dev/null
@@ -1,331 +0,0 @@
-<!--
- The <capture-skp-runs-sk> custom element declaration. Displays a table with details about each
- completed and pending capture SKPs task.
-
- Attributes:
- defaultSize: The number of tasks to show per page, default 10.
- constrainByUser: Whether to show only tasks created by the logged-in user initially, default
- false.
- myRunsConstrainText: Button text to constrain by user, default "View only my runs".
- everyonesRunsConstrainText: Button text to disable constraining by user, default "View
- everyone's runs".
- constrainByTestRun: Whether to show only non-test tasks, default true. Test tasks are those that
- use the "Dummy1k" page sets.
- nonTestRunsConstrainText: Button text to constrain to non-test tasks, default "Exclude test
- runs".
- testRunsConstrainText: Button text to disable constraining by test tasks, default "Include test
- runs".
-
- Events:
- None.
-
- Methods:
- reload: queries for updated information on tasks.
- resetPagination: Moves to the first page of tasks.
- constrainRunsByUser: Toggles constrainByUser and reloads the appropriate data.
- constrainTestRuns: Toggles constrainByTestRun and reloads the appropriate data.
--->
-
-<dom-module id="capture-skp-runs-sk">
- <style>
- table.runshistory {
- border-spacing: 0px;
- }
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- table.runshistory > tbody > tr > td {
- padding: 10px;
- border: solid black 1px;
- }
- .delete-button, .redo-button {
- --paper-icon-button-disabled: {
- display: none;
- }
- }
- .oldruns {
- margin-left: 20px;
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <h2><template is="dom-if" if="{{constrainByUser}}">My </template>Capture SkPicture Runs</h2>
- <paging-sk pagination="{{pagination}}" on-pagechange="pageChangedHandler"></paging-sk>
- <br/>
- <paper-button raised on-click="constrainRunsByUser">{{
- constrainButtonText(constrainByUser, myRunsConstrainText, everyonesRunsConstrainText)
- }}</paper-button>
- <paper-button raised on-click="constrainTestRuns">{{
- constrainButtonText(constrainByTestRun, nonTestRunsConstrainText, testRunsConstrainText)
- }}</paper-button>
-
- <br/>
- <br/>
-
- <table class="runshistory" id="runshistory" cellpadding="5" border="1">
- <tr class="headers">
- <td>Id</td>
- <td>User</td>
- <td>Timestamps</td>
- <td>Task Config</td>
- <td>Description</td>
- <td>Results</td>
- <td>Task Repeats</td>
- </tr>
-
- <template is="dom-repeat" items="{{captureSkpsTasks}}" as="captureSkpsTask" index-as="index">
- <tr style="border: 1px solid black;">
- <!-- Id col -->
- <td class="nowrap">
- <span>{{captureSkpsTask.Id}}</span>
- <paper-icon-button icon="delete" mini
- class="delete-button"
- disabled="{{!captureSkpsTask.canDelete}}"
- alt="Delete"
- data-index$="{{index}}"
- data-type="delete">
- </paper-icon-button>
- <paper-icon-button icon="redo" mini
- class="redo-button"
- disabled="{{!captureSkpsTask.canRedo}}"
- alt="Redo"
- data-index$="{{index}}"
- data-type="redo">
- </paper-icon-button>
- </td>
-
- <!-- User col -->
- <td>{{captureSkpsTask.Username}}</td>
-
- <!-- Timestamps col -->
- <td>
- <table>
- <tr>
- <td>Added:</td>
- <td class="nowrap">{{ formatTimestamp(captureSkpsTask.TsAdded) }}</td>
- </tr>
- <tr>
- <td>Started:</td>
- <td class="nowrap">{{ formatTimestamp(captureSkpsTask.TsStarted) }}</td>
- </tr>
- <tr>
- <td>Completed:</td>
- <td class="nowrap">{{ formatTimestamp(captureSkpsTask.TsCompleted) }}</td>
- </tr>
- </table>
- </td>
-
- <!-- Task Config col -->
- <td>
- <table>
- <tr>
- <td>PageSet:</td>
- <td>{{captureSkpsTask.PageSets}}</td>
- </tr>
- <tr>
- <td>ChromiumBuild:</td>
- <td class="nowrap">
- <a href="{{chromiumCommitUrl(captureSkpsTask.ChromiumRev)}}">{{shortHash(captureSkpsTask.ChromiumRev)}}</a>-<a href="{{skiaCommitUrl(captureSkpsTask.SkiaRev)}}">{{shortHash(captureSkpsTask.SkiaRev)}}</a>
- </td>
- </tr>
- </table>
- </td>
-
- <!-- Description col -->
- <td>{{captureSkpsTask.Description}}</td>
-
- <!-- Results col -->
- <td class="nowrap">
- <template is="dom-if" if="{{captureSkpsTask.Failure}}">
- <div style="color:red;">Failed</div>
- </template>
- <template is="dom-if" if="{{!captureSkpsTask.TaskDone}}">
- <div style="color:green;">Waiting</div>
- </template>
- <template is="dom-if" if="{{isDone(captureSkpsTask.Failure, captureSkpsTask.TaskDone)}}">
- Done
- </template>
- <template is="dom-if" if="{{captureSkpsTask.SwarmingLogs}}">
- <br/>
- <a href="{{captureSkpsTask.SwarmingLogs}}" target="_blank">Swarming Logs</a>
- </template>
- </td>
-
- <!-- Task Repeats -->
- <td>{{ formatRepeatAfterDays(captureSkpsTask.RepeatAfterDays) }}</td>
-
- </tr>
- </template>
- </table>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "capture-skp-runs-sk",
- properties: {
- captureSkpsTasks: {
- type: Array,
- value: function() { return []; },
- },
- defaultSize: {
- type: Number,
- value: 10,
- },
- constrainByUser: {
- type: Boolean,
- value: false,
- },
- myRunsConstrainText: {
- type: String,
- value: "View only my runs",
- },
- everyonesRunsConstrainText: {
- type: String,
- value: "View everyone's runs",
- },
- constrainByTestRun: {
- type: Boolean,
- value: true,
- },
- nonTestRunsConstrainText: {
- type: String,
- value: "Exclude test runs",
- },
- testRunsConstrainText: {
- type: String,
- value: "Include test runs",
- },
- pagination: {
- type: Object,
- value: function() { return {}; },
- },
- pageChangedHandler: {
- type: Object,
- value: function() { return null; },
- },
- },
-
- ready: function() {
- this.pagination = {"offset": 0, "size": this.defaultSize};
- this.pageChangedHandler = this.reload.bind(this);
- var that = this;
- this.$.runshistory.addEventListener('click', function(e) {
- var button = sk.findParent(e.target, "PAPER-ICON-BUTTON");
- if (button != null) {
- if (button.dataset.type == "delete") {
- var index = button.dataset.index;
- var note = that.deleteNote(that.captureSkpsTasks, index);
- that.$.confirm_dialog.open("Proceed with deleting task?" + note)
- .then(that.deleteTask.bind(that, index));
- } else if (button.dataset.type == "redo") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Reschedule this task?")
- .then(that.redoTask.bind(that, index));
- }
- }
- });
- this.reload();
- },
-
- reload: function() {
- var queryParams = {
- "offset": this.pagination.offset,
- "size": this.pagination.size,
- }
- if (this.constrainByUser) {
- queryParams["filter_by_logged_in_user"] = true;
- }
- if (this.constrainByTestRun) {
- queryParams["exclude_dummy_page_sets"] = true;
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- var that = this;
- sk.post('/_/get_capture_skp_tasks' + queryStr).then(JSON.parse).then(function(json) {
- that.captureSkpsTasks = json.data;
- that.pagination = json.pagination;
- for (var i = 0; i < that.captureSkpsTasks.length; i++) {
- that.captureSkpsTasks[i].canDelete = json.permissions[i].DeleteAllowed;
- that.captureSkpsTasks[i].canRedo = json.permissions[i].RedoAllowed;
- that.captureSkpsTasks[i].Id = json.ids[i];
- }
- }).catch(sk.errorMessage);
- },
-
- resetPagination: function() {
- this.pagination.offset = 0;
- this.pagination.size = this.defaultSize;
- },
-
- constrainRunsByUser: function() {
- this.constrainByUser = !this.constrainByUser;
- this.resetPagination();
- this.reload();
- },
-
- constrainTestRuns: function() {
- this.constrainByTestRun = !this.constrainByTestRun;
- this.resetPagination();
- this.reload();
- },
-
- constrainButtonText: function(constrained, constrainText, unconstrainText) {
- if (constrained) {
- return unconstrainText;
- } else {
- return constrainText;
- }
- },
-
- deleteNote: function(captureSkpsTasks, deleteIndex) {
- if (deleteIndex >= 0 &&
- captureSkpsTasks[deleteIndex].TaskDone &&
- !captureSkpsTasks[deleteIndex].Failure) {
- return " Note: This SKP repository will no longer be available.";
- } else {
- return "";
- }
- },
-
- deleteTask: function(deleteIndex) {
- var params = {};
- params["id"] = this.captureSkpsTasks[deleteIndex].Id;
- sk.post("/_/delete_capture_skps_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Deleted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- this.$.delete_dialog.close();
- }.bind(this));
- },
-
- redoTask: function(redoIndex) {
- var params = {};
- params["id"] = this.captureSkpsTasks[redoIndex].Id;
- sk.post("/_/redo_capture_skps_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Resubmitted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- this.$.redo_dialog.close();
- }.bind(this));
- },
-
- chromiumCommitUrl: ctfe.chromiumBuild.chromiumCommitUrl,
- skiaCommitUrl: ctfe.chromiumBuild.skiaCommitUrl,
- shortHash: ctfe.chromiumBuild.shortHash,
- formatTimestamp: ctfe.getFormattedTimestamp,
- formatRepeatAfterDays: ctfe.formatRepeatAfterDays,
-
- isDone: function(failure, taskDone) {
- return !failure && taskDone;
- },
- });
-</script>
diff --git a/ct/res/imp/capture-skps-sk.html b/ct/res/imp/capture-skps-sk.html
deleted file mode 100644
index 85b37ba..0000000
--- a/ct/res/imp/capture-skps-sk.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<!--
- The <capture-skps-sk> custom element declaration. Displays a form that allows the user to
- queue a task to capture SKPs.
-
- Attributes:
- pageSets: List of all defined page sets, as accepted by page-set-selector-sk property
- pageSets. Must be set.
- chromiumBuilds: List of all supported Chromium builds, as accepted by chromium-build-selector-sk
- attribute chromiumBuilds. Must be set.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="capture-skps-sk">
- <style>
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- .triggering-spinner {
- margin: auto;
- vertical-align: middle;
- }
-
- table.options td {
- padding: 1em 2em;
- }
-
- td.center {
- text-align:center;
- padding-top:2em;
- }
-
- .panel {
- @apply(--shadow-elevation-2dp);
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <table class="options panel">
- <tr>
- <td>PageSets Type</td>
- <td>
- <page-set-selector-sk id="page_sets" page-sets="{{pageSets}}"></page-set-selector-sk>
- </td>
- </tr>
-
- <tr>
- <td>Chromium Build</td>
- <td>
- <chromium-build-selector-sk id="chromium_build"
- chromium-builds="{{chromiumBuilds}}">
- </chromium-build-selector-sk>
- </td>
- </tr>
-
- <tr>
- <td>Repeat this task</td>
- <td>
- <repeat-after-days-sk id="repeat_after_days"></repeat-after-days-sk>
- </td>
- </tr>
-
- <tr>
- <td>Description</td>
- <td>
- <paper-input value="" id="desc"
- label="Description is required. Please include SKP version."></paper-input>
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="center">
- <div class="triggering-spinner">
- <paper-spinner active="[[ triggeringTask ]]" alt="Trigger task"></paper-spinner>
- </div>
- <paper-button raised id="submit_task" disabled="[[ triggeringTask ]]">Queue Task</paper-button>
- </td>
- </tr>
- <tr>
- <td colspan="2" class="center">
- <paper-button raised id="view_history">View runs history</paper-button>
- </td>
- </tr>
- </table>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "capture-skps-sk",
- properties: {
- pageSets: {
- type: Array,
- observer: "pageSetsChanged",
- },
- chromiumBuilds: {
- type: Array,
- observer: "chromiumBuildsChanged"
- },
- triggeringTask: {
- type: Boolean,
- value: false,
- },
- },
-
- ready: function() {
- var that = this;
- this.$.submit_task.addEventListener('click', function(e) {
- that.validateTask();
- });
- this.$.view_history.addEventListener('click', function(e) {
- that.gotoRunsHistory();
- });
- },
-
- pageSetsChanged: function(newValue, oldValue) {
- // Capture SKPs does not support 1M anymore.
- for (var i=this.pageSets.length-1; i>=0; i--) {
- if (ctfe.pageSets.getKey(this.pageSets[i]) == "All") {
- this.pageSets.splice(i, 1);
- }
- }
- if (!oldValue || oldValue.length == 0) {
- this.$.page_sets.selectFirst();
- }
- },
-
- chromiumBuildsChanged: function(newValue, oldValue) {
- if (!oldValue || oldValue.length == 0) {
- this.$.chromium_build.selectFirst();
- }
- },
-
- validateTask: function() {
- if (!this.$.page_sets.selected) {
- sk.errorMessage("Please select a page set type");
- this.$.page_sets.focus();
- return;
- }
- if (!this.$.chromium_build.selected) {
- sk.errorMessage("Please select a Chromium build");
- this.$.chromium_build.focus();
- return;
- }
- if (!this.$.desc.value) {
- sk.errorMessage("Please specify a description");
- this.$.desc.focus();
- return;
- }
- if (ctfe.moreThanThreeActiveTasks($$$("drawer-sk").sizeOfUserQueue)) {
- return;
- }
- this.$.confirm_dialog.open("Proceed with queueing task?")
- .then(this.queueTask.bind(this))
- .catch(function() {
- sk.errorMessage("Did not queue");
- })
- },
-
- queueTask: function() {
- this.triggeringTask = true;
- var params = {};
- params["page_sets"] = this.$.page_sets.selected;
- params["chromium_build"] = this.$.chromium_build.selected;
- params["desc"] = this.$.desc.value;
- params["repeat_after_days"] = this.$.repeat_after_days.selected;
-
- sk.post("/_/add_capture_skps_task", JSON.stringify(params))
- .then(function(resp) {
- this.gotoRunsHistory();
- }.bind(this)).catch(function(e) {
- this.triggeringTask = false;
- sk.errorMessage(e);
- }.bind(this));
- },
-
- gotoRunsHistory: function() {
- window.location.href = "/capture_skp_runs/";
- },
- });
-</script>
diff --git a/ct/res/imp/chromium-analysis-runs-sk.html b/ct/res/imp/chromium-analysis-runs-sk.html
deleted file mode 100644
index 184a0ff..0000000
--- a/ct/res/imp/chromium-analysis-runs-sk.html
+++ /dev/null
@@ -1,483 +0,0 @@
-<!--
- The <chromium-analysis-runs-sk> custom element declaration. Displays a table with details about
- each completed and pending Chromium Analysis task.
-
- Attributes:
- defaultSize: The number of tasks to show per page, default 10.
- constrainByUser: Whether to show only tasks created by the logged-in user initially, default
- false.
- myRunsConstrainText: Button text to constrain by user, default "View only my runs".
- everyonesRunsConstrainText: Button text to disable constraining by user, default "View
- everyone's runs".
- constrainByTestRun: Whether to show only non-test tasks, default true. Test tasks are those that
- use the "Dummy1k" page sets.
- nonTestRunsConstrainText: Button text to constrain to non-test tasks, default "Exclude test
- runs".
- testRunsConstrainText: Button text to disable constraining by test tasks, default "Include test
- runs".
-
- Events:
- None.
-
- Methods:
- reload: queries for updated information on tasks.
- resetPagination: Moves to the first page of tasks.
- constrainRunsByUser: Toggles constrainByUser and reloads the appropriate data.
- constrainTestRuns: Toggles constrainByTestRun and reloads the appropriate data.
--->
-
-<dom-module id="chromium-analysis-runs-sk">
- <style>
- paper-dialog {
- min-width: 200px;
- max-width: calc(100% - 10px);
- }
- table.runshistory {
- border-spacing: 0px;
- }
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- table.runshistory > tbody > tr > td {
- padding: 10px;
- border: solid black 1px;
- }
- .delete-button, .redo-button {
- --paper-icon-button-disabled: {
- display: none;
- }
- }
- .oldruns {
- margin-left: 20px;
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <h2><template is="dom-if" if="{{constrainByUser}}">My </template>Chromium Analysis Runs</h2>
- <paging-sk pagination="{{pagination}}" on-pagechange="pageChangedHandler"></paging-sk>
- <br/>
- <paper-button raised on-click="constrainRunsByUser">{{
- constrainButtonText(constrainByUser, myRunsConstrainText, everyonesRunsConstrainText)
- }}</paper-button>
- <paper-button raised on-click="constrainTestRuns">{{
- constrainButtonText(constrainByTestRun, nonTestRunsConstrainText, testRunsConstrainText)
- }}</paper-button>
-
- <br/>
- <br/>
-
- <!-- Section for popups. -->
- <template is="dom-repeat" items="{{chromiumAnalysisTasks}}" as="chromiumAnalysisTask" index-as="index">
-
- <paper-dialog heading="Benchmark Args" id="{{ getBenchmarkArgsId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{chromiumAnalysisTask.BenchmarkArgs}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
-
- <paper-dialog heading="Browser Args" id="{{ getBrowserArgsId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{chromiumAnalysisTask.BrowserArgs}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
-
- <paper-dialog heading="Match Stdout Text" id="{{ getMatchStdoutTxtId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{chromiumAnalysisTask.MatchStdoutTxt}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
-
- <paper-dialog heading="Custom APK Location" id="{{ getApkGsPathId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{chromiumAnalysisTask.ApkGsPath}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
- </template>
-
- <table class="runshistory" id="runshistory" cellpadding="5" border="1">
- <tr class="headers">
- <td>Id</td>
- <td>User</td>
- <td>Timestamps</td>
- <td>Task Config</td>
- <td>Description</td>
- <td>Results</td>
- <td>Arguments</td>
- <td>Patches</td>
- <td>Task Repeats</td>
- </tr>
-
- <template is="dom-repeat" items="{{chromiumAnalysisTasks}}" as="chromiumAnalysisTask" index-as="index">
- <tr style="border: 1px solid black;">
- <!-- Id col -->
- <td class="nowrap">
- <template is="dom-if" if="{{chromiumAnalysisTask.RawOutput}}">
- <a href="{{chromiumAnalysisTask.RawOutput}}" target="_blank">{{chromiumAnalysisTask.Id}}</a>
- </template>
- <template is="dom-if" if="{{!chromiumAnalysisTask.RawOutput}}">
- <span>{{chromiumAnalysisTask.Id}}</span>
- </template>
- <paper-icon-button icon="delete" mini
- class="delete-button"
- disabled="{{!chromiumAnalysisTask.canDelete}}"
- alt="Delete"
- data-index$="{{index}}"
- data-type="delete">
- </paper-icon-button>
- <paper-icon-button icon="redo" mini
- class="redo-button"
- disabled="{{!chromiumAnalysisTask.canRedo}}"
- alt="Redo"
- data-index$="{{index}}"
- data-type="redo">
- </paper-icon-button>
- </td>
-
- <!-- User col -->
- <td>{{chromiumAnalysisTask.Username}}</td>
-
- <!-- Timestamps col -->
- <td>
- <table>
- <tr>
- <td>Added:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumAnalysisTask.TsAdded) }}</td>
- </tr>
- <tr>
- <td>Started:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumAnalysisTask.TsStarted) }}</td>
- </tr>
- <tr>
- <td>Completed:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumAnalysisTask.TsCompleted) }}</td>
- </tr>
- </table>
- </td>
-
- <!-- Task Config col -->
- <td>
- <table>
- <tr>
- <td>Benchmark:</td>
- <td>{{chromiumAnalysisTask.Benchmark}}</td>
- </tr>
- <tr>
- <td>Platform:</td>
- <td>{{chromiumAnalysisTask.Platform}}</td>
- </tr>
- <tr>
- <td>RunOnGCE:</td>
- <td>{{chromiumAnalysisTask.RunOnGCE}}</td>
- </tr>
- <tr>
- <td>PageSet:</td>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumAnalysisTask.CustomWebpagesGSPath) }}">
- <a href="{{ getGSLink(chromiumAnalysisTask.CustomWebpagesGSPath) }}" target="_blank">Custom Webpages</a>
- </template>
- <template is="dom-if" if="{{ isEmptyPatch(chromiumAnalysisTask.CustomWebpagesGSPath) }}">
- {{chromiumAnalysisTask.PageSets}}
- </template>
- </td>
- </tr>
- <tr>
- <td>ParallelRun:</td>
- <td>{{chromiumAnalysisTask.RunInParallel}}</td>
- </tr>
- <template is="dom-if" if="{{chromiumAnalysisTask.ValueColumnName}}">
- <tr>
- <td class="nowrap">Value Column:</td>
- <td class="nowrap">{{chromiumAnalysisTask.ValueColumnName}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.TaskPriority}}">
- <tr>
- <td>TaskPriority:</td>
- <td>{{chromiumAnalysisTask.TaskPriority}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.CCList}}">
- <tr>
- <td>CC List:</td>
- <td>{{chromiumAnalysisTask.CCList}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.GroupName}}">
- <tr>
- <td>GroupName:</td>
- <td><a href="https://ct-perf.skia.org/e/?request_type=1">{{chromiumAnalysisTask.GroupName}}</a></td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.ChromiumHash}}">
- <tr>
- <td>ChromiumHash:</td>
- <td><a href="https://chromium.googlesource.com/chromium/src/+show/{{chromiumAnalysisTask.ChromiumHash}}">{{chromiumAnalysisTask.ChromiumHash}}</a></td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.ApkGsPath}}">
- <tr>
- <td>ApkGsPath:</td>
- <td><a href="javascript:void(0);" data-index$="{{index}}" data-type="apkGsPath">Display Path</a></td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.TelemetryIsolateHash}}">
- <tr>
- <td>TelemetryIsolateHash:</td>
- <td><a href="https://chrome-isolated.appspot.com/browse?digest={{chromiumAnalysisTask.TelemetryIsolateHash}}">{{chromiumAnalysisTask.TelemetryIsolateHash}}</a></td>
- </tr>
- </template>
- </table>
- </td>
-
- <!-- Description col -->
- <td>{{chromiumAnalysisTask.Description}}</td>
-
- <!-- Results col -->
- <td class="nowrap">
- <template is="dom-if" if="{{chromiumAnalysisTask.Failure}}">
- <div style="color:red;">Failed</div>
- </template>
- <template is="dom-if" if="{{!chromiumAnalysisTask.TaskDone}}">
- <div style="color:green;">Waiting</div>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.RawOutput}}">
- <a href="{{chromiumAnalysisTask.RawOutput}}" target="_blank">Output</a>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.SwarmingLogs}}">
- <br/>
- <a href="{{chromiumAnalysisTask.SwarmingLogs}}" target="_blank">Swarming Logs</a>
- </template>
- </td>
-
- <!-- Arguments -->
- <td class="nowrap">
- <template is="dom-if" if="{{chromiumAnalysisTask.BenchmarkArgs}}">
- <a href="javascript:void(0);" data-index$="{{index}}" data-type="benchmarkArgs">Benchmark Args</a>
- <br/>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.BrowserArgs}}">
- <a href="javascript:void(0);" data-index$="{{index}}" data-type="browserArgs">Browser Args</a>
- <br/>
- </template>
- <template is="dom-if" if="{{chromiumAnalysisTask.MatchStdoutTxt}}">
- <a href="javascript:void(0);" data-index$="{{index}}" data-type="matchStdoutTxt">Match Stdout Text</a>
- <br/>
- </template>
- </td>
-
- <!-- Patches -->
- <td>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumAnalysisTask.ChromiumPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumAnalysisTask.ChromiumPatchGSPath) }}" target="_blank">Chromium</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumAnalysisTask.SkiaPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumAnalysisTask.SkiaPatchGSPath) }}" target="_blank">Skia</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumAnalysisTask.V8PatchGSPath) }}">
- <a href="{{ getGSLink(chromiumAnalysisTask.V8PatchGSPath) }}" target="_blank">V8</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumAnalysisTask.CatapultPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumAnalysisTask.CatapultPatchGSPath) }}" target="_blank">Catapult</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumAnalysisTask.BenchmarkPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumAnalysisTask.BenchmarkPatchGSPath) }}" target="_blank">Telemetry</a>
- </template>
- </td>
-
- <!-- Task Repeats -->
- <td>{{ formatRepeatAfterDays(chromiumAnalysisTask.RepeatAfterDays) }}</td>
-
- </tr>
- </template>
- </table>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "chromium-analysis-runs-sk",
- properties: {
- chromiumAnalysisTasks: {
- type: Array,
- value: function() { return []; },
- },
- defaultSize: {
- type: Number,
- value: 10,
- },
- constrainByUser: {
- type: Boolean,
- value: false,
- },
- myRunsConstrainText: {
- type: String,
- value: "View only my runs",
- },
- everyonesRunsConstrainText: {
- type: String,
- value: "View everyone's runs",
- },
- constrainByTestRun: {
- type: Boolean,
- value: true,
- },
- nonTestRunsConstrainText: {
- type: String,
- value: "Exclude test runs",
- },
- testRunsConstrainText: {
- type: String,
- value: "Include test runs",
- },
- pagination: {
- type: Object,
- value: function() { return {}; },
- },
- pageChangedHandler: {
- type: Object,
- value: function() { return null; },
- },
- },
-
- ready: function() {
- this.pagination = {"offset": 0, "size": this.defaultSize};
- this.pageChangedHandler = this.reload.bind(this);
- this.reload();
-
- var that = this;
- this.$.runshistory.addEventListener('click', function(e) {
- var anchor = sk.findParent(e.target, "A");
- if (anchor != null) {
- var id = anchor.dataset.index;
- if (anchor.dataset.type == "benchmarkArgs") {
- that.toggleDialog(that.getBenchmarkArgsId(id));
- } else if (anchor.dataset.type == "browserArgs") {
- that.toggleDialog(that.getBrowserArgsId(id));
- } else if (anchor.dataset.type == "matchStdoutTxt") {
- that.toggleDialog(that.getMatchStdoutTxtId(id));
- } else if (anchor.dataset.type == "apkGsPath") {
- that.toggleDialog(that.getApkGsPathId(id));
- }
- }
- var button = sk.findParent(e.target, "PAPER-ICON-BUTTON");
- if (button != null) {
- if (button.dataset.type == "delete") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Proceed with deleting task?")
- .then(that.deleteTask.bind(that, index));
- } else if (button.dataset.type == "redo") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Reschedule this task?")
- .then(that.redoTask.bind(that, index));
- }
- }
- });
- },
-
- reload: function() {
- var queryParams = {
- "offset": this.pagination.offset,
- "size": this.pagination.size,
- }
- if (this.constrainByUser) {
- queryParams["filter_by_logged_in_user"] = true;
- }
- if (this.constrainByTestRun) {
- queryParams["exclude_dummy_page_sets"] = true;
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- var that = this;
- sk.post('/_/get_chromium_analysis_tasks' + queryStr).then(JSON.parse).then(function(json) {
- that.chromiumAnalysisTasks = json.data;
- that.pagination = json.pagination;
- for (var i = 0; i < that.chromiumAnalysisTasks.length; i++) {
- that.chromiumAnalysisTasks[i].canDelete = json.permissions[i].DeleteAllowed;
- that.chromiumAnalysisTasks[i].canRedo = json.permissions[i].RedoAllowed;
- that.chromiumAnalysisTasks[i].Id = json.ids[i];
- }
- }).catch(sk.errorMessage);
- },
-
- getBenchmarkArgsId: function(index) {
- return "benchmark_args" + index;
- },
-
- getBrowserArgsId: function(index) {
- return "browser_args" + index;
- },
-
- getMatchStdoutTxtId: function(index) {
- return "match_stdout_txt" + index;
- },
-
- getApkGsPathId: function(index) {
- return "apk_gs_path" + index;
- },
-
- resetPagination: function() {
- this.pagination.offset = 0;
- this.pagination.size = this.defaultSize;
- },
-
- constrainRunsByUser: function() {
- this.constrainByUser = !this.constrainByUser;
- this.resetPagination();
- this.reload();
- },
-
- constrainTestRuns: function() {
- this.constrainByTestRun = !this.constrainByTestRun;
- this.resetPagination();
- this.reload();
- },
-
- constrainButtonText: function(constrained, constrainText, unconstrainText) {
- if (constrained) {
- return unconstrainText;
- } else {
- return constrainText;
- }
- },
-
- toggleDialog: function(id) {
- Polymer.dom(this.root).querySelector('#' + id).toggle();
- },
-
- deleteTask: function(deleteIndex) {
- var params = {};
- params["id"] = this.chromiumAnalysisTasks[deleteIndex].Id;
- sk.post("/_/delete_chromium_analysis_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Deleted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- redoTask: function(redoIndex) {
- var params = {};
- params["id"] = this.chromiumAnalysisTasks[redoIndex].Id;
- sk.post("/_/redo_chromium_analysis_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Resubmitted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- formatTimestamp: ctfe.getFormattedTimestamp,
- formatRepeatAfterDays: ctfe.formatRepeatAfterDays,
- getGSLink: ctfe.getGSLink,
- isEmptyPatch: ctfe.isEmptyPatch,
- });
-</script>
diff --git a/ct/res/imp/chromium-analysis-sk.html b/ct/res/imp/chromium-analysis-sk.html
deleted file mode 100644
index a03b52b..0000000
--- a/ct/res/imp/chromium-analysis-sk.html
+++ /dev/null
@@ -1,542 +0,0 @@
-<!--
- The <chromium-analysis-sk> custom element declaration. Displays a form that allows the user to
- queue a task to analyse Chromium.
-
- Attributes:
- benchmarksToDoc: Map of benchmarks to their descriptions. Must be set.
- benchmarks: Which benchmarks to show. Must be set.
- platformsToDesc: Map of platforms to their descriptions. Must be set.
- platforms: List of all supported platforms. Must be set.
- pageSets: List of all supported page sets, as accepted by page-set-selector-sk property
- pageSets. Must be set.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="chromium-analysis-sk">
- <style>
- paper-input {
- width: 20em;
- }
-
- .triggering-spinner {
- margin: auto;
- vertical-align: middle;
- }
-
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- .long-field {
- width: 40em;
- }
-
- .hidden {
- display: none;
- }
-
- .short-field {
- width: 5em;
- }
-
- .smaller-font {
- font-size: 80%;
- }
-
- iron-selector.long-field > div {
- width: 40em;
- }
-
- iron-selector.medium-field > div {
- width: 20em;
- }
-
- iron-selector.short-field > div {
- width: 5em;
- }
-
- table.options td {
- padding: 1em 2em;
- }
-
- td.center {
- text-align:center;
- padding-top:2em;
- }
-
- .panel {
- @apply(--shadow-elevation-2dp);
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <table class="options panel">
- <tr>
- <td>Benchmark Name</td>
- <td>
- <autocomplete-input-sk id="benchmark_name"
- value="{{selectedBenchmarkName}}"
- autocomplete="[[benchmarks]]"
- display-options-on-focus="true"
- accept-custom-value="true"
- label="Hit <enter> at end if entering custom benchmark"
- ></autocomplete-input-sk>
- <template is="dom-if" if="{{getBenchmarkDoc(selectedBenchmarkName)}}">
- <div><a href="{{getBenchmarkDoc(selectedBenchmarkName)}}">Documentation</a></div>
- </template>
- </td>
- </tr>
-
- <tr>
- <td>Target Platform</td>
- <td>
- <iron-selector attr-for-selected="id" id="target_platform" selected="Linux" class="long-field">
- <template is="dom-repeat" items="{{platforms}}">
- <div id="{{item}}">{{getPlatformDesc(item, platformsToDesc)}}</div>
- </template>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>Run on GCE</td>
- <td>
- <iron-selector attr-for-selected="id" id="run_on_gce" selected="run_on_gce_True" class="long-field">
- <div id="run_on_gce_True">True</div>
- <div id="run_on_gce_False">False</div>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>PageSets Type</td>
- <td>
- <page-set-selector-sk id="page_sets" page-sets="{{pageSets}}"></page-set-selector-sk>
- <expanding-textarea-sk id="custom_webpages" display-text="Specify custom list of web pages" placeholder-text="{{getPlaceholderTextForCustomWebpages()}}"></expanding-textarea-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Run in Parallel<br/>
- Read about the trade-offs <a href="https://docs.google.com/document/d/1GhqosQcwsy6F-eBAmFn_ITDF7_Iv_rY9FhCKwAnk9qQ/edit?pli=1#heading=h.xz46aihphb8z">here</a>
- </td>
- <td>
- <iron-selector attr-for-selected="id" id="run_in_parallel" selected="run_in_parallel_True" class="long-field">
- <div id="run_in_parallel_True">True</div>
- <div id="run_in_parallel_False">False</div>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>Look for text in stdout</td>
- <td>
- <paper-input value="" id="match_stdout_txt" class="long-field"></paper-input>
- <span class="smaller-font"><b>Note:</b> All lines that contain this field in stdout will show up under CT_stdout_lines in the output CSV.</span><br/>
- <span class="smaller-font"><b>Note:</b> The count of non-overlapping exact matches of this field in stdout will show up under CT_stdout_count in the output CSV.</span>
- </td>
- </tr>
-
- <tr>
- <td>Benchmark Arguments</td>
- <td>
- <paper-input value="--output-format=csv --skip-typ-expectations-tags-validation --legacy-json-trace-format" id="benchmark_args" class="long-field"></paper-input>
- <span class="smaller-font"><b>Note:</b> Use --num-analysis-retries=[num] to specify how many times run_benchmark should be retried. 2 is the default. 0 calls run_benchmark once.</span><br/>
- <span class="smaller-font"><b>Note:</b> Use --run-benchmark-timeout=[secs] to specify the timeout of the run_benchmark script. 300 is the default.</span><br/>
- <span class="smaller-font"><b>Note:</b> Use --max-pages-per-bot=[num] to specify the number of pages to run per bot. 100 is the default.</span><br/>
- </td>
- </tr>
-
- <tr>
- <td>Browser Arguments</td>
- <td>
- <paper-input value="" id="browser_args" class="long-field"></paper-input>
- </td>
- </tr>
-
-
- <tr>
- <td>Field Value Column Name</td>
- <td>
- <paper-input value="avg" id="value_column_name" class="medium-field"></paper-input>
- <span class="smaller-font">Which column's entries to use as field values.</span>
- </td>
- </tr>
-
- <tr>
- <td>
- Chromium Git patch (optional)<br/>
- Applied to Chromium ToT<br/>
- or to the hash specified below.
- </td>
- <td>
- <patch-sk id="chromium_patch"
- patch-type="chromium"
- cl-description="{{chromiumClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Custom APK location (optional)<br/>
- (See <a href="https://bugs.chromium.org/p/skia/issues/detail?id=9805">skbug/9805</a>)
- </td>
- <td>
- <paper-input value="" id="apk_gs_path" class="long-field" label="Eg: gs://chrome-unsigned/android-B0urB0N/73.0.3655.0/arm_64/ChromeModern.apk"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>
- Telemery Isolate Hash (optional)<br/>
- (See <a href="https://bugs.chromium.org/p/skia/issues/detail?id=9853">skbug/9853</a>)
- </td>
- <td>
- <paper-input value="" id="telemetry_isolate_hash" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>Chromium hash to sync to (optional)<br/></td>
- <td>
- <paper-input value="" id="chromium_hash" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>
- Skia Git patch (optional)<br/>
- Applied to Skia Rev in <a href="https://chromium.googlesource.com/chromium/src/+show/HEAD/DEPS">DEPS</a>
- </td>
- <td>
- <patch-sk id="skia_patch"
- patch-type="skia"
- cl-description="{{skiaClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- V8 Git patch (optional)<br/>
- Applied to V8 Rev in <a href="https://chromium.googlesource.com/chromium/src/+show/HEAD/DEPS">DEPS</a>
- </td>
- <td>
- <patch-sk id="v8_patch"
- patch-type="v8"
- cl-description="{{v8ClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Catapult Git patch (optional)<br/>
- Applied to Catapult Rev in <a href="https://chromium.googlesource.com/chromium/src/+show/HEAD/DEPS">DEPS</a>
- </td>
- <td>
- <patch-sk id="catapult_patch"
- patch-type="catapult"
- cl-description="{{catapultClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>Repeat this task</td>
- <td>
- <repeat-after-days-sk id="repeat_after_days"></repeat-after-days-sk>
- </td>
- </tr>
-
- <tr>
- <td>Task Priority</td>
- <td>
- <iron-selector attr-for-selected="id" id="task_priority" selected="100" class="medium-field">
- <template is="dom-repeat" items="{{taskPriorities}}">
- <div id="{{item}}">{{getTaskPriorityDesc(item,taskPrioritiesToDesc)}}</div>
- </template>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>
- Notifications CC list (optional)<br/>
- Email will be sent by ct@skia.org
- </td>
- <td>
- <paper-input value="" id="cc_list" label="email1,email2,email3" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>
- Group name (optional)<br/>
- Will be used to track runs
- </td>
- <td>
- <paper-input value="" id="group_name" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>Description</td>
- <td>
- <paper-input value="" id="desc" label="Description is required" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="center">
- <div class="triggering-spinner">
- <paper-spinner active="[[ triggeringTask ]]" alt="Trigger task"></paper-spinner>
- </div>
- <paper-button raised id="submit_task" disabled="[[ triggeringTask ]]">Queue Task</paper-button>
- </td>
- </tr>
- <tr>
- <td colspan="2" class="center">
- <paper-button raised id="view_history">View runs history</paper-button>
- </td>
- </tr>
- </table>
-
- <br/><br/>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "chromium-analysis-sk",
- properties: {
- benchmarks: {
- type: Array,
- value: [],
- },
- benchmarksToDoc: {
- type: Object,
- value: {},
- },
- platforms: {
- type: Array,
- value: [],
- },
- platformsToDesc: {
- type: Object,
- value: {},
- },
- taskPriorities: {
- type: Array,
- value: [],
- },
- taskPrioritiesToDesc: {
- type: Object,
- value: {},
- },
- pageSets: {
- type: Array,
- observer: 'pageSetsChanged',
- },
- triggeringTask: {
- type: Boolean,
- value: false,
- },
- chromiumClDescription: String,
- skiaClDescription: String,
- v8ClDescription: String,
- catapultClDescription: String,
- selectedBenchmarkName: String,
- },
-
- observers: [
- "clDescriptionChanged(chromiumClDescription, skiaClDescription, v8ClDescription, catapultClDescription)"
- ],
-
- ready: function() {
- var that = this;
- this.$.target_platform.addEventListener('click', function(e) {
- that.platformChanged();
- });
- this.$.run_in_parallel.addEventListener('click', function(e) {
- that.runInParallelChanged();
- });
- this.$.submit_task.addEventListener('click', function(e) {
- that.validateTask();
- });
- this.$.view_history.addEventListener('click', function(e) {
- that.gotoRunsHistory();
- });
- this.$.custom_webpages.addEventListener('click', function(e) {
- // Do not display the pagesets selector if custom webpages is open.
- that.$.page_sets.hidden = that.$.custom_webpages.opened;
- if (!that.$.custom_webpages.opened) {
- // Clear out webpages if it is no longer open.
- that.$.custom_webpages.value = '';
- }
- });
- },
-
- getBenchmarkDoc: function(benchmarkName) {
- if (! benchmarkName || ! this.benchmarksToDoc[benchmarkName]) {
- return "";
- }
- return this.benchmarksToDoc[benchmarkName];
- },
-
- getPlatformDesc: function(platform, platformsToDesc) {
- if (platformsToDesc) {
- return platformsToDesc[platform];
- }
- },
-
- getTaskPriorityDesc: function(taskPriority, taskPrioritiesToDesc) {
- if (taskPrioritiesToDesc) {
- return taskPrioritiesToDesc[taskPriority];
- }
- },
-
- platformChanged: function() {
- if (this.$.target_platform.selected == "Android") {
- // Cannot run on GCE instances if Android is selected.
- this.$.run_on_gce.selected = "run_on_gce_False";
- this.$.run_on_gce_True.hidden = "True";
- this.$.run_on_gce_False.hidden = "";
-
- // Cannot run in parallel if Android is selected.
- this.$.run_in_parallel.selected = "run_in_parallel_False";
- this.$.run_in_parallel_True.hidden = "True";
- } else if (this.$.target_platform.selected == "Windows") {
- // Cannot run on bare-metal machines if Windows is selected. One day
- // this will change.
- this.$.run_on_gce_True.hidden = "";
- this.$.run_on_gce_False.hidden = "True";
- this.$.run_on_gce.selected = "run_on_gce_True";
- } else {
- this.$.run_on_gce_True.hidden = "";
- this.$.run_on_gce_False.hidden = "";
- this.$.run_on_gce.selected = "run_on_gce_True";
-
- this.$.run_in_parallel_True.hidden = "";
- this.$.run_in_parallel.selected = "run_in_parallel_True";
- }
- this.runInParallelChanged();
- },
-
- runInParallelChanged: function() {
- if (this.$.run_in_parallel.selected == "run_in_parallel_True") {
- document.getElementById('100k').hidden = "";
- document.getElementById('Mobile100k').hidden = "";
- } else {
- // Should not run on 100k page sets without parallel because it would
- // take too long.
- document.getElementById('100k').hidden = "True";
- document.getElementById('Mobile100k').hidden = "True";
- this.$.page_sets.selected = "10k";
- }
- },
-
- pageSetsChanged: function(newValue, oldValue) {
- // CT's chromium analysis does not support 1M.
- for (var i=this.pageSets.length-1; i>=0; i--) {
- if (ctfe.pageSets.getKey(this.pageSets[i]) == "All") {
- this.pageSets.splice(i, 1);
- }
- }
- if (!oldValue || oldValue.length == 0) {
- this.$.page_sets.selectFirst();
- }
- },
-
- clDescriptionChanged: function(chromiumClDesc, skiaClDesc, v8ClDesc, catapultClDesc) {
- this.$.desc.value = ctfe.getDescriptionOfCls(chromiumClDesc, skiaClDesc, v8ClDesc, catapultClDesc, '')
- },
-
- validateTask: function() {
- if (! this.selectedBenchmarkName) {
- sk.errorMessage("Please specify a benchmark");
- this.$.benchmark_name.focus();
- return;
- }
- if (!this.$.chromium_patch.validate() ||
- !this.$.skia_patch.validate() ||
- !this.$.v8_patch.validate() ||
- !this.$.catapult_patch.validate()) {
- return;
- }
- if (! this.$.desc.value) {
- sk.errorMessage("Please specify a description");
- this.$.desc.focus();
- return;
- }
- if (ctfe.missingLiveSitesWithCustomWebpages(
- this.$.custom_webpages.value, this.$.benchmark_args.value)) {
- this.$.benchmark_args.focus();
- return;
- }
- if (ctfe.moreThanThreeActiveTasks($$$("drawer-sk").sizeOfUserQueue)) {
- return;
- }
- this.$.confirm_dialog.open("Proceed with queueing task?")
- .then(this.queueTask.bind(this))
- .catch(function() {
- sk.errorMessage("Did not queue");
- })
- },
-
- queueTask: function() {
- this.triggeringTask = true;
- var params = {};
- params["benchmark"] = this.selectedBenchmarkName;
- params["page_sets"] = this.$.page_sets.selected;
- params["custom_webpages"] = this.$.custom_webpages.value;
- params["match_stdout_txt"] = this.$.match_stdout_txt.value;
- params["benchmark_args"] = this.$.benchmark_args.value;
- params["browser_args"] = this.$.browser_args.value;
- params["value_column_name"] = this.$.value_column_name.value;
- params["desc"] = this.$.desc.value;
- params["chromium_patch"] = this.$.chromium_patch.patch;
- params["chromium_hash"] = this.$.chromium_hash.value;
- params["apk_gs_path"] = this.$.apk_gs_path.value;
- params["telemetry_isolate_hash"] = this.$.telemetry_isolate_hash.value;
- params["skia_patch"] = this.$.skia_patch.patch;
- params["v8_patch"] = this.$.v8_patch.patch;
- params["catapult_patch"] = this.$.catapult_patch.patch;
- params["repeat_after_days"] = this.$.repeat_after_days.selected;
- params["task_priority"] = this.$.task_priority.selected;
- if (this.$.cc_list.value) {
- params["cc_list"] = this.$.cc_list.value.split(",")
- }
- if (this.$.group_name.value) {
- params["group_name"] = this.$.group_name.value
- }
- params["run_in_parallel"] = this.$.run_in_parallel.selected == "run_in_parallel_True";
- params["platform"] = this.$.target_platform.selected;
- params["run_on_gce"] = this.$.run_on_gce.selected == "run_on_gce_True";
-
- var that = this;
- sk.post("/_/add_chromium_analysis_task", JSON.stringify(params)).then(function(resp) {
- that.gotoRunsHistory();
- }).catch(function(e) {
- that.triggeringTask = false;
- sk.errorMessage(e);
- });
- },
-
- gotoRunsHistory: function() {
- window.location.href = "/chromium_analysis_runs/";
- },
-
- getPlaceholderTextForCustomWebpages: ctfe.getPlaceholderTextForCustomWebpages,
- });
-</script>
diff --git a/ct/res/imp/chromium-build-runs-sk.html b/ct/res/imp/chromium-build-runs-sk.html
deleted file mode 100644
index 00d923b..0000000
--- a/ct/res/imp/chromium-build-runs-sk.html
+++ /dev/null
@@ -1,245 +0,0 @@
-<!--
- The <chromium-build-runs-sk> custom element declaration. Displays a table with details about each
- completed and pending Chromium build task.
-
- Attributes:
- defaultSize: The number of Chromium build runs to show per page, default 10.
-
- Events:
- None.
-
- Methods:
- reload: queries for updated information on Chromium build runs.
--->
-
-<dom-module id="chromium-build-runs-sk">
- <style>
- table.runshistory {
- border-spacing: 0px;
- }
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- table.runshistory > tbody > tr > td {
- padding: 10px;
- border: solid black 1px;
- }
- .delete-button, .redo-button {
- --paper-icon-button-disabled: {
- display: none;
- }
- }
- .oldruns {
- margin-left: 20px;
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <h2>Chromium Builds</h2>
- <paging-sk pagination="{{pagination}}" on-pagechange="pageChangedHandler"></paging-sk>
- <br/>
-
- <table class="runshistory" id="runshistory" cellpadding="5" border="1">
- <tr class="headers">
- <td>Id</td>
- <td>Chromium Commit Hash</td>
- <td>Submitted On</td>
- <td>Skia Commit Hash</td>
- <td>User</td>
- <td>Timestamps</td>
- <td>Results</td>
- <td>Task Repeats</td>
- </tr>
-
- <template is="dom-repeat" items="{{chromiumBuilds}}" as="chromiumBuild" index-as="index">
- <tr style="border: 1px solid black;">
- <!-- Id col -->
- <td class="nowrap">
- <span>{{chromiumBuild.Id}}</span>
- <paper-icon-button icon="delete" mini
- class="delete-button"
- disabled="{{!chromiumBuild.canDelete}}"
- alt="Delete"
- data-index$="{{index}}"
- data-type="delete">
- </paper-icon-button>
- <paper-icon-button icon="redo" mini
- class="redo-button"
- disabled="{{!chromiumBuild.canRedo}}"
- alt="Redo"
- data-index$="{{index}}"
- data-type="redo">
- </paper-icon-button>
- </td>
-
- <!-- Chromium Commit Hash col -->
- <td><a href="{{chromiumCommitUrl(chromiumBuild.ChromiumRev)}}">{{shortHash(chromiumBuild.ChromiumRev)}}</a></td>
-
- <!-- Submitted On col -->
- <td class="nowrap">{{ formatTimestamp(chromiumBuild.ChromiumRevTs) }}</td>
-
- <!-- Skia Commit Hash col -->
- <td><a href="{{skiaCommitUrl(chromiumBuild.SkiaRev)}}">{{shortHash(chromiumBuild.SkiaRev)}}</a></td>
-
- <!-- User col -->
- <td>{{chromiumBuild.Username}}</td>
-
- <!-- Timestamps col -->
- <td>
- <table>
- <tr>
- <td>Requested:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumBuild.TsAdded) }}</td>
- </tr>
- <tr>
- <td>Started:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumBuild.TsStarted) }}</td>
- </tr>
- <tr>
- <td>Completed:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumBuild.TsCompleted) }}</td>
- </tr>
- </table>
- </td>
-
- <!-- Results col -->
- <td class="nowrap">
- <template is="dom-if" if="{{chromiumBuild.Failure}}">
- <div style="color:red;">Failed</div>
- </template>
- <template is="dom-if" if="{{!chromiumBuild.TaskDone}}">
- <div style="color:green;">Waiting</div>
- </template>
- <template is="dom-if"
- if="{{isDone(chromiumBuild.Failure, chromiumBuild.TaskDone)}}">
- Done
- </template>
- <template is="dom-if" if="{{chromiumBuild.Log}}">
- <a href="{{chromiumBuild.Log}}" target="_blank">log</a>
- </template>
- <template is="dom-if" if="{{chromiumBuild.SwarmingLogs}}">
- <br/>
- <a href="{{chromiumBuild.SwarmingLogs}}" target="_blank">Swarming Logs</a>
- </template>
- </td>
-
- <!-- Task Repeats -->
- <td>{{ formatRepeatAfterDays(chromiumBuild.RepeatAfterDays) }}</td>
-
- </tr>
- </template>
- </table>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "chromium-build-runs-sk",
- properties: {
- chromiumBuilds: {
- type: Array,
- value: function() { return []; },
- },
- defaultSize: {
- type: Number,
- value: 10,
- },
- pagination: {
- type: Object,
- value: function() { return {}; },
- },
- pageChangedHandler: {
- type: Object,
- value: function() { return null; },
- },
- },
-
- ready: function() {
- this.pagination = {"offset": 0, "size": this.defaultSize};
- this.pageChangedHandler = this.reload.bind(this);
- var that = this;
- this.$.runshistory.addEventListener('click', function(e) {
- var button = sk.findParent(e.target, "PAPER-ICON-BUTTON");
- if (button != null) {
- if (button.dataset.type == "delete") {
- var index = button.dataset.index;
- var note = that.deleteNote(that.chromiumBuilds, index);
- that.$.confirm_dialog.open("Proceed with deleting task?" + note)
- .then(that.deleteTask.bind(that, index));
- } else if (button.dataset.type == "redo") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Reschedule this task?")
- .then(that.redoTask.bind(that, index));
- }
- }
- });
- this.reload();
- },
-
- reload: function() {
- var queryParams = {
- "offset": this.pagination.offset,
- "size": this.pagination.size,
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- sk.post("/_/get_chromium_build_tasks" + queryStr).then(JSON.parse).then(function(json) {
- this.pagination = json.pagination;
- this.chromiumBuilds = json.data;
- for (var i = 0; i < this.chromiumBuilds.length; i++) {
- this.chromiumBuilds[i].canDelete = json.permissions[i].DeleteAllowed;
- this.chromiumBuilds[i].canRedo = json.permissions[i].RedoAllowed;
- this.chromiumBuilds[i].Id = json.ids[i];
- }
- }.bind(this)).catch(sk.errorMessage);
- },
-
- deleteNote: function(chromiumBuilds, deleteIndex) {
- if (deleteIndex >= 0 &&
- chromiumBuilds[deleteIndex].TaskDone &&
- !chromiumBuilds[deleteIndex].Failure) {
- return " Note: This build will no longer be available for running other tasks.";
- } else {
- return "";
- }
- },
-
- deleteTask: function(deleteIndex) {
- var params = {};
- params["id"] = this.chromiumBuilds[deleteIndex].Id;
- sk.post("/_/delete_chromium_build_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Deleted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- redoTask: function(redoIndex) {
- var params = {};
- params["id"] = this.chromiumBuilds[redoIndex].Id;
- sk.post("/_/redo_chromium_build_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Resubmitted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- chromiumCommitUrl: ctfe.chromiumBuild.chromiumCommitUrl,
- skiaCommitUrl: ctfe.chromiumBuild.skiaCommitUrl,
- shortHash: ctfe.chromiumBuild.shortHash,
- formatTimestamp: ctfe.getFormattedTimestamp,
- formatRepeatAfterDays: ctfe.formatRepeatAfterDays,
-
- isDone: function(failure, taskDone) {
- return !failure && taskDone;
- },
- });
-</script>
diff --git a/ct/res/imp/chromium-build-selector-sk.html b/ct/res/imp/chromium-build-selector-sk.html
deleted file mode 100644
index 6478e8a..0000000
--- a/ct/res/imp/chromium-build-selector-sk.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
- The <chromium-build-selector-sk> custom element declaration. Displays an iron-selector allowing
- the user to choose among the available Chromium builds.
-
- Attributes:
- chromiumBuilds: array of objects as obtained via ctfe.chromiumBuild.getBuilds. Must be set.
- selected: Item of chromiumBuilds that is currently selected. Notifies.
-
- Events:
- None.
-
- Methods:
- selectFirst: Causes the first build in chromiumBuilds to be selected.
--->
-
-<dom-module id="chromium-build-selector-sk">
- <style>
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- iron-selector.long-field > div {
- width: 40em;
- }
- </style>
- <template>
- <iron-selector selected="{{selectedIndex}}" class="long-field">
- <template is="dom-repeat" items="{{chromiumBuilds}}">
- <div>{{getDescription(item)}}</div>
- </template>
- </iron-selector>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "chromium-build-selector-sk",
- properties: {
- chromiumBuilds: Array,
- selectedIndex: {
- type: String,
- },
- selected: {
- type: Object,
- notify: true,
- computed: "getBuild(chromiumBuilds, selectedIndex)",
- },
- },
-
- getBuild: function(chromiumBuilds, selectedIndex) {
- return chromiumBuilds[selectedIndex];
- },
-
- selectFirst: function() {
- if (this.chromiumBuilds.length > 0) {
- this.selectedIndex = "0";
- }
- },
-
- getDescription: ctfe.chromiumBuild.getDescription,
- });
-</script>
diff --git a/ct/res/imp/chromium-builds-sk.html b/ct/res/imp/chromium-builds-sk.html
deleted file mode 100644
index 38a7b5c..0000000
--- a/ct/res/imp/chromium-builds-sk.html
+++ /dev/null
@@ -1,278 +0,0 @@
-<!--
- The <chromium-builds-sk> custom element declaration. Displays a form that allows the user to queue
- a task to build a specific revision of Chromium with a specific revision of Skia. The user can
- specify LKGR to obtain the last known good release. Displays information about the entered
- revision.
-
- Attributes:
- chromiumRev: The Chromium revision that is initially entered, default "LKGR".
- skiaRev: The Skia revision that is initially entered, default "LKGR".
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="chromium-builds-sk">
- <style>
- .hash-field {
- width: 42ch;
- }
-
- .triggering-spinner {
- margin: auto;
- vertical-align: middle;
- }
-
- table.options td {
- padding: 1em 2em;
- }
-
- td.center {
- text-align:center;
- padding-top:2em;
- }
-
- .panel {
- @apply(--shadow-elevation-2dp);
- }
-
- .rev-detail-container {
- position: relative;
- text-align: center;
- width: 300px;
- height: 100px;
- }
-
- .loading-rev-spinner {
- margin: auto;
- vertical-align: middle
- }
-
- .rev-detail {
- position: absolute;
- top: 0px;
- left: 0px;
- text-align: start;
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <table class="options panel">
- <tr>
- <td>Chromium Commit Hash</td>
- <td>
- <paper-input value="{{chromiumRev}}" class="hash-field"></paper-input>
- </td>
- <td>
- <div class="rev-detail-container">
- <div class="loading-rev-spinner">
- <paper-spinner active="{{loadingChromiumRevDetail}}"
- alt="Loading Chromium commit details"></paper-spinner>
- </div>
- <div class="rev-detail">{{chromiumRevDetail}}</div>
- </div>
- </td>
- </tr>
-
- <tr>
- <td>Skia Commit Hash</td>
- <td>
- <paper-input value="{{skiaRev}}" class="hash-field"></paper-input>
- </td>
- <td>
- <div class="rev-detail-container">
- <div class="loading-rev-spinner">
- <paper-spinner active="{{loadingSkiaRevDetail}}"
- alt="Loading Skia commit details"></paper-spinner>
- </div>
- <div class="rev-detail">{{skiaRevDetail}}</div>
- </div>
- </td>
- </tr>
-
- <tr>
- <td>Repeat this task</td>
- <td>
- <repeat-after-days-sk id="repeat_after_days"></repeat-after-days-sk>
- </td>
- </tr>
-
- <tr>
- <td colspan="3" class="center">
- <div class="triggering-spinner">
- <paper-spinner active="[[ triggeringTask ]]" alt="Trigger task"></paper-spinner>
- </div>
- <paper-button raised id="submit_task" disabled="[[ triggeringTask ]]">Queue Task</paper-button>
- </td>
- </tr>
- <tr>
- <td colspan="3" class="center">
- <paper-button raised id="view_history">View runs history</paper-button>
- </td>
- </tr>
- </table>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "chromium-builds-sk",
- properties: {
- chromiumRev: {
- type: String,
- value: "LKGR",
- observer: "chromiumRevChanged",
- },
- chromiumRevData: Object,
- loadingChromiumRevDetail: {
- type: Boolean,
- value: false,
- },
- chromiumRevDetail: {
- type: String,
- computed: "formatRevData(chromiumRevData)",
- },
- skiaRev: {
- type: String,
- value: "LKGR",
- observer: "skiaRevChanged",
- },
- skiaRevData: Object,
- loadingSkiaRevDetail: {
- type: Boolean,
- value: false,
- },
- skiaRevDetail: {
- type: String,
- computed: "formatRevData(skiaRevData)",
- },
- triggeringTask: {
- type: Boolean,
- value: false,
- },
- },
-
- ready: function() {
- var that = this;
- this.$.submit_task.addEventListener('click', function(e) {
- that.validateTask();
- });
- this.$.view_history.addEventListener('click', function(e) {
- that.gotoRunsHistory();
- });
- },
-
- chromiumRevChanged: function(newValue) {
- if (!newValue) {
- this.chromiumRevData = null;
- this.loadingChromiumRevDetail = false;
- return;
- }
- this.loadingChromiumRevDetail = true;
- var params = {rev: newValue};
- var that = this;
- sk.post("/_/chromium_rev_data?" + sk.query.fromObject(params)).then(JSON.parse).then(function (json) {
- if (that.chromiumRev == newValue) {
- if (json.commit) {
- that.chromiumRevData = json;
- } else {
- that.chromiumRevData = null;
- }
- that.loadingChromiumRevDetail = false;
- }
- }).catch(function (err) {
- if (that.chromiumRev == newValue) {
- that.chromiumRevData = {error: err};
- that.loadingChromiumRevDetail = false;
- }
- });
- },
-
- skiaRevChanged: function(newValue) {
- if (!newValue) {
- this.skiaRevData = null;
- this.loadingSkiaRevDetail = false;
- return;
- }
- this.loadingSkiaRevDetail = true;
- var params = {rev: newValue};
-
- var that = this;
- sk.post("/_/skia_rev_data?" + sk.query.fromObject(params)).then(JSON.parse).then(function (json) {
- if (that.skiaRev == newValue) {
- if (json.commit) {
- that.skiaRevData = json;
- } else {
- that.skiaRevData = null;
- }
- that.loadingSkiaRevDetail = false;
- }
- }).catch(function (err) {
- if (that.skiaRev == newValue) {
- that.skiaRevData = {error: err};
- that.loadingSkiaRevDetail = false;
- }
- });
- },
-
- formatRevData: function(revData) {
- if (revData) {
- if (!revData.error) {
- return revData.commit + " by " + revData.author.name + " submitted " +
- revData.committer.time;
- } else {
- return revData.error;
- }
- } else {
- return "";
- }
- },
-
- validateTask: function() {
- if (!this.chromiumRevData || !this.chromiumRevData.commit) {
- sk.errorMessage("Please enter a valid Chromium commit hash.");
- this.$.chromium_rev.focus();
- return;
- }
- if (!this.skiaRevData || !this.skiaRevData.commit) {
- sk.errorMessage("Please enter a valid Skia commit hash.");
- this.$.skia_rev.focus();
- return;
- }
- if (ctfe.moreThanThreeActiveTasks($$$("drawer-sk").sizeOfUserQueue)) {
- return;
- }
- this.$.confirm_dialog.open("Proceed with queueing task?")
- .then(this.queueTask.bind(this))
- .catch(function() {
- sk.errorMessage("Did not queue");
- })
- },
-
- queueTask: function() {
- this.triggeringTask = true;
- var params = {};
- params["chromium_rev"] = this.chromiumRevData.commit;
- params["chromium_rev_ts"] = this.chromiumRevData.committer.time;
- params["skia_rev"] = this.skiaRevData.commit;
- params["repeat_after_days"] = this.$.repeat_after_days.selected;
-
- sk.post("/_/add_chromium_build_task", JSON.stringify(params))
- .then(function(resp) {
- this.gotoRunsHistory();
- }.bind(this)).catch(function(e) {
- this.triggeringTask = false;
- sk.errorMessage(e);
- }.bind(this));
- },
-
- gotoRunsHistory: function() {
- window.location.href = "/chromium_builds_runs/";
- },
- });
-</script>
diff --git a/ct/res/imp/chromium-perf-runs-sk.html b/ct/res/imp/chromium-perf-runs-sk.html
deleted file mode 100644
index 29f0f41..0000000
--- a/ct/res/imp/chromium-perf-runs-sk.html
+++ /dev/null
@@ -1,471 +0,0 @@
-<!--
- The <chromium-perf-runs-sk> custom element declaration. Displays a table with details about each
- completed and pending Chromium Perf task.
-
- Attributes:
- defaultSize: The number of tasks to show per page, default 10.
- constrainByUser: Whether to show only tasks created by the logged-in user initially, default
- false.
- myRunsConstrainText: Button text to constrain by user, default "View only my runs".
- everyonesRunsConstrainText: Button text to disable constraining by user, default "View
- everyone's runs".
- constrainByTestRun: Whether to show only non-test tasks, default true. Test tasks are those that
- use the "Dummy1k" page sets.
- nonTestRunsConstrainText: Button text to constrain to non-test tasks, default "Exclude test
- runs".
- testRunsConstrainText: Button text to disable constraining by test tasks, default "Include test
- runs".
-
- Events:
- None.
-
- Methods:
- reload: queries for updated information on tasks.
- resetPagination: Moves to the first page of tasks.
- constrainRunsByUser: Toggles constrainByUser and reloads the appropriate data.
- constrainTestRuns: Toggles constrainByTestRun and reloads the appropriate data.
--->
-
-<dom-module id="chromium-perf-runs-sk">
- <style>
- paper-dialog {
- min-width: 200px;
- max-width: calc(100% - 10px);
- }
- table.runshistory {
- border-spacing: 0px;
- }
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- table.runshistory > tbody > tr > td {
- padding: 10px;
- border: solid black 1px;
- }
- .delete-button, .redo-button {
- --paper-icon-button-disabled: {
- display: none;
- }
- }
- .oldruns {
- margin-left: 20px;
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <h2><template is="dom-if" if="{{constrainByUser}}">My </template>Chromium Perf Runs</h2>
- <paging-sk pagination="{{pagination}}" on-pagechange="pageChangedHandler"></paging-sk>
- <br/>
- <paper-button raised on-click="constrainRunsByUser">{{
- constrainButtonText(constrainByUser, myRunsConstrainText, everyonesRunsConstrainText)
- }}</paper-button>
- <paper-button raised on-click="constrainTestRuns">{{
- constrainButtonText(constrainByTestRun, nonTestRunsConstrainText, testRunsConstrainText)
- }}</paper-button>
-
- <br/>
- <br/>
-
- <!-- Section for popups. -->
- <template is="dom-repeat" items="{{chromiumPerfTasks}}" as="chromiumPerfTask" index-as="index">
- <paper-dialog heading="Benchmark Args" id="{{ getBenchmarkArgsId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{chromiumPerfTask.BenchmarkArgs}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
-
- <paper-dialog heading="Browser Args NoPatch" id="{{ getBrowserArgsNoPatchId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{chromiumPerfTask.BrowserArgsNoPatch}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
-
- <paper-dialog heading="Browser Args WithPatch" id="{{ getBrowserArgsWithPatchId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{chromiumPerfTask.BrowserArgsWithPatch}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
-
- </template>
-
- <table class="runshistory" id="runshistory" cellpadding="5" border="1">
- <tr class="headers">
- <td>Id</td>
- <td>User</td>
- <td>Timestamps</td>
- <td>Task Config</td>
- <td>Description</td>
- <td>Results</td>
- <td>Arguments</td>
- <td>Patches</td>
- <td>Task Repeats</td>
- </tr>
-
- <template is="dom-repeat" items="{{chromiumPerfTasks}}" as="chromiumPerfTask" index-as="index">
- <tr style="border: 1px solid black;">
- <!-- Id col -->
- <td class="nowrap">
- <template is="dom-if" if="{{chromiumPerfTask.Results}}">
- <a href="{{chromiumPerfTask.Results}}" target="_blank">{{chromiumPerfTask.Id}}</a>
- </template>
- <template is="dom-if" if="{{!chromiumPerfTask.Results}}">
- <span>{{chromiumPerfTask.Id}}</span>
- </template>
- <paper-icon-button icon="delete" mini
- class="delete-button"
- disabled="{{!chromiumPerfTask.canDelete}}"
- alt="Delete"
- data-index$="{{index}}"
- data-type="delete">
- </paper-icon-button>
- <paper-icon-button icon="redo" mini
- class="redo-button"
- disabled="{{!chromiumPerfTask.canRedo}}"
- alt="Redo"
- data-index$="{{index}}"
- data-type="redo">
- </paper-icon-button>
- </td>
-
- <!-- User col -->
- <td>{{chromiumPerfTask.Username}}</td>
-
- <!-- Timestamps col -->
- <td>
- <table>
- <tr>
- <td>Added:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumPerfTask.TsAdded) }}</td>
- </tr>
- <tr>
- <td>Started:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumPerfTask.TsStarted) }}</td>
- </tr>
- <tr>
- <td>Completed:</td>
- <td class="nowrap">{{ formatTimestamp(chromiumPerfTask.TsCompleted) }}</td>
- </tr>
- </table>
- </td>
-
- <!-- Task Config col -->
- <td>
- <table>
- <tr>
- <td>Benchmark:</td>
- <td>{{chromiumPerfTask.Benchmark}}</td>
- </tr>
- <tr>
- <td>Platform:</td>
- <td>{{chromiumPerfTask.Platform}}</td>
- </tr>
- <tr>
- <td>PageSet:</td>
- <td>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.CustomWebpagesGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.CustomWebpagesGSPath) }}" target="_blank">Custom Webpages</a>
- </template>
- <template is="dom-if" if="{{ isEmptyPatch(chromiumPerfTask.CustomWebpagesGSPath) }}">
- {{chromiumPerfTask.PageSets}}
- </template>
- </td>
- </tr>
- <tr>
- <td>Repeats:</td>
- <td>{{chromiumPerfTask.RepeatRuns}}</td>
- </tr>
- <tr>
- <td>ParallelRun:</td>
- <td>{{chromiumPerfTask.RunInParallel}}</td>
- </tr>
- <template is="dom-if" if="{{chromiumPerfTask.ValueColumnName}}">
- <tr>
- <td class="nowrap">Value Column:</td>
- <td class="nowrap">{{chromiumPerfTask.ValueColumnName}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.TaskPriority}}">
- <tr>
- <td>TaskPriority:</td>
- <td>{{chromiumPerfTask.TaskPriority}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.CCList}}">
- <tr>
- <td>CC List:</td>
- <td>{{chromiumPerfTask.CCList}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.GroupName}}">
- <tr>
- <td>GroupName:</td>
- <td><a href="https://ct-perf.skia.org/e/?request_type=1">{{chromiumPerfTask.GroupName}}</a></td>
- </tr>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.ChromiumHash}}">
- <tr>
- <td>ChromiumHash:</td>
- <td><a href="https://chromium.googlesource.com/chromium/src/+show/{{chromiumPerfTask.ChromiumHash}}">{{chromiumPerfTask.ChromiumHash}}</a></td>
- </tr>
- </template>
- </table>
- </td>
-
- <!-- Description col -->
- <td>{{chromiumPerfTask.Description}}</td>
-
- <!-- Results col -->
- <td class="nowrap">
- <template is="dom-if" if="{{chromiumPerfTask.Failure}}">
- <div style="color:red;">Failed</div>
- </template>
- <template is="dom-if" if="{{!chromiumPerfTask.TaskDone}}">
- <div style="color:green;">Waiting</div>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.Results}}">
- <a href="{{chromiumPerfTask.Results}}" target="_blank">Overall Result</a>
- <br/>
- <a href="{{chromiumPerfTask.NoPatchRawOutput}}" target="_blank">NoPatch Raw Output</a>
- <br/>
- <a href="{{chromiumPerfTask.WithPatchRawOutput}}" target="_blank">WithPatch Raw Output</a>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.SwarmingLogs}}">
- <br/>
- <a href="{{chromiumPerfTask.SwarmingLogs}}" target="_blank">Swarming Logs</a>
- </template>
- </td>
-
- <!-- Arguments -->
- <td class="nowrap">
- <template is="dom-if" if="{{chromiumPerfTask.BenchmarkArgs}}">
- <a href="javascript:void(0);" data-index$="{{index}}" data-type="benchmarkArgs">Benchmark Args</a>
- <br/>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.BrowserArgsNoPatch}}">
- <a href="javascript:void(0);" data-index$="{{index}}" data-type="nopatchBrowserArgs">NoPatch Browser Args</a>
- <br/>
- </template>
- <template is="dom-if" if="{{chromiumPerfTask.BrowserArgsWithPatch}}">
- <a href="javascript:void(0);" data-index$="{{index}}" data-type="withpatchBrowserArgs">WithPatch Browser Args</a>
- <br/>
- </template>
- </td>
-
- <!-- Patches -->
- <td>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.ChromiumPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.ChromiumPatchGSPath) }}" target="_blank">Chromium</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.BlinkPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.BlinkPatchGSPath) }}" target="_blank">Blink</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.SkiaPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.SkiaPatchGSPath) }}" target="_blank">Skia</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.V8PatchGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.V8PatchGSPath) }}" target="_blank">V8</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.CatapultPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.CatapultPatchGSPath) }}" target="_blank">Catapult</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.BenchmarkPatchGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.BenchmarkPatchGSPath) }}" target="_blank">Telemetry</a>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(chromiumPerfTask.ChromiumPatchBaseBuildGSPath) }}">
- <a href="{{ getGSLink(chromiumPerfTask.ChromiumPatchBaseBuildGSPath) }}" target="_blank" class="nowrap">Chromium(base_build)</a>
- </template>
- </td>
-
- <!-- Task Repeats -->
- <td>{{ formatRepeatAfterDays(chromiumPerfTask.RepeatAfterDays) }}</td>
-
- </tr>
- </template>
- </table>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "chromium-perf-runs-sk",
- properties: {
- chromiumPerfTasks: {
- type: Array,
- value: function() { return []; },
- },
- defaultSize: {
- type: Number,
- value: 10,
- },
- constrainByUser: {
- type: Boolean,
- value: false,
- },
- myRunsConstrainText: {
- type: String,
- value: "View only my runs",
- },
- everyonesRunsConstrainText: {
- type: String,
- value: "View everyone's runs",
- },
- constrainByTestRun: {
- type: Boolean,
- value: true,
- },
- nonTestRunsConstrainText: {
- type: String,
- value: "Exclude test runs",
- },
- testRunsConstrainText: {
- type: String,
- value: "Include test runs",
- },
- pagination: {
- type: Object,
- value: function() { return {}; },
- },
- pageChangedHandler: {
- type: Object,
- value: function() { return null; },
- },
- },
-
- ready: function() {
- this.pagination = {"offset": 0, "size": this.defaultSize};
- this.pageChangedHandler = this.reload.bind(this);
- this.reload();
-
- var that = this;
- this.$.runshistory.addEventListener('click', function(e) {
- var anchor = sk.findParent(e.target, "A");
- if (anchor != null) {
- var id = anchor.dataset.index;
- if (anchor.dataset.type == "benchmarkArgs") {
- that.toggleDialog(that.getBenchmarkArgsId(id));
- } else if (anchor.dataset.type == "nopatchBrowserArgs") {
- that.toggleDialog(that.getBrowserArgsNoPatchId(id));
- } else if (anchor.dataset.type == "withpatchBrowserArgs") {
- that.toggleDialog(that.getBrowserArgsWithPatchId(id));
- }
- }
- var button = sk.findParent(e.target, "PAPER-ICON-BUTTON");
- if (button != null) {
- if (button.dataset.type == "delete") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Proceed with deleting task?")
- .then(that.deleteTask.bind(that, index));
- } else if (button.dataset.type == "redo") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Reschedule this task?")
- .then(that.redoTask.bind(that, index));
- }
- }
- });
- },
-
- reload: function() {
- var queryParams = {
- "offset": this.pagination.offset,
- "size": this.pagination.size,
- }
- if (this.constrainByUser) {
- queryParams["filter_by_logged_in_user"] = true;
- }
- if (this.constrainByTestRun) {
- queryParams["exclude_dummy_page_sets"] = true;
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- var that = this;
- sk.post('/_/get_chromium_perf_tasks' + queryStr).then(JSON.parse).then(function(json) {
- that.chromiumPerfTasks = json.data;
- that.pagination = json.pagination;
- for (var i = 0; i < that.chromiumPerfTasks.length; i++) {
- that.chromiumPerfTasks[i].canDelete = json.permissions[i].DeleteAllowed;
- that.chromiumPerfTasks[i].canRedo = json.permissions[i].RedoAllowed;
- that.chromiumPerfTasks[i].Id = json.ids[i];
- }
- }).catch(sk.errorMessage);
- },
-
- getBenchmarkArgsId: function(index) {
- return "benchmark_args" + index;
- },
-
- getBrowserArgsNoPatchId: function(index) {
- return "browser_args_nopatch" + index;
- },
-
- getBrowserArgsWithPatchId: function(index) {
- return "browser_args_withpatch" + index;
- },
-
- resetPagination: function() {
- this.pagination.offset = 0;
- this.pagination.size = this.defaultSize;
- },
-
- constrainRunsByUser: function() {
- this.constrainByUser = !this.constrainByUser;
- this.resetPagination();
- this.reload();
- },
-
- constrainTestRuns: function() {
- this.constrainByTestRun = !this.constrainByTestRun;
- this.resetPagination();
- this.reload();
- },
-
- constrainButtonText: function(constrained, constrainText, unconstrainText) {
- if (constrained) {
- return unconstrainText;
- } else {
- return constrainText;
- }
- },
-
- toggleDialog: function(id) {
- Polymer.dom(this.root).querySelector('#' + id).toggle();
- },
-
- deleteTask: function(deleteIndex) {
- var params = {};
- params["id"] = this.chromiumPerfTasks[deleteIndex].Id;
- sk.post("/_/delete_chromium_perf_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Deleted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- redoTask: function(redoIndex) {
- var params = {};
- params["id"] = this.chromiumPerfTasks[redoIndex].Id;
- sk.post("/_/redo_chromium_perf_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Resubmitted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- formatTimestamp: ctfe.getFormattedTimestamp,
- formatRepeatAfterDays: ctfe.formatRepeatAfterDays,
- getGSLink: ctfe.getGSLink,
- isEmptyPatch: ctfe.isEmptyPatch,
- });
-</script>
diff --git a/ct/res/imp/chromium-perf-sk.html b/ct/res/imp/chromium-perf-sk.html
deleted file mode 100644
index 764eab5..0000000
--- a/ct/res/imp/chromium-perf-sk.html
+++ /dev/null
@@ -1,519 +0,0 @@
-<!--
- The <chromium-perf-sk> custom element declaration. Displays a form that allows the user to queue a
- task to test Chromium/Skia performance.
-
- Attributes:
- benchmarksToDoc: Map of benchmarks to their descriptions. Must be set.
- benchmarks: Which benchmarks to show. Must be set.
- platformsToDesc: Map of platforms to their descriptions. Must be set.
- platforms: List of all supported platforms. Must be set.
- pageSets: List of all supported page sets, as accepted by page-set-selector-sk property
- pageSets. Must be set.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="chromium-perf-sk">
- <style>
- paper-input {
- width: 20em;
- }
-
- .triggering-spinner {
- margin: auto;
- vertical-align: middle;
- }
-
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- .long-field {
- width: 40em;
- }
-
- .hidden {
- display: none;
- }
-
- .short-field {
- width: 5em;
- }
-
- .smaller-font {
- font-size: 80%;
- }
-
- iron-selector.long-field > div {
- width: 40em;
- }
-
- iron-selector.medium-field > div {
- width: 20em;
- }
-
- iron-selector.short-field > div {
- width: 5em;
- }
-
- table.options td {
- padding: 1em 2em;
- }
-
- td.center {
- text-align:center;
- padding-top:2em;
- }
-
- .panel {
- @apply(--shadow-elevation-2dp);
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <table class="options panel">
- <tr>
- <td>Benchmark Name</td>
- <td>
- <autocomplete-input-sk id="benchmark_name"
- value="{{selectedBenchmarkName}}"
- autocomplete="[[benchmarks]]"
- display-options-on-focus="true"
- accept-custom-value="true"
- label="Hit <enter> at end if entering custom benchmark"
- ></autocomplete-input-sk>
- <template is="dom-if" if="{{getBenchmarkDoc(selectedBenchmarkName)}}">
- <div><a href="{{getBenchmarkDoc(selectedBenchmarkName)}}">Documentation</a></div>
- </template>
- </td>
- </tr>
-
- <tr>
- <td>Target Platform</td>
- <td>
- <iron-selector attr-for-selected="id" id="target_platform" selected="Linux" class="long-field">
- <template is="dom-repeat" items="{{platforms}}">
- <div id="{{item}}">{{getPlatformDesc(item)}}</div>
- </template>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>PageSets Type</td>
- <td>
- <page-set-selector-sk id="page_sets" page-sets="{{pageSets}}"></page-set-selector-sk>
- <expanding-textarea-sk id="custom_webpages" display-text="Specify custom list of web pages" placeholder-text="{{getPlaceholderTextForCustomWebpages()}}"></expanding-textarea-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Run in Parallel<br/>
- Read about the trade-offs <a href="https://docs.google.com/document/d/1GhqosQcwsy6F-eBAmFn_ITDF7_Iv_rY9FhCKwAnk9qQ/edit?pli=1#heading=h.xz46aihphb8z">here</a>
- </td>
- <td>
- <iron-selector attr-for-selected="id" id="run_in_parallel" selected="False" class="long-field">
- <div id="True">True (Works only for Linux rasterize_and_record_micro runs)</div>
- <div id="False">False</div>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>Benchmark Arguments</td>
- <td>
- <paper-input value="--output-format=csv --pageset-repeat=1 --skip-typ-expectations-tags-validation --legacy-json-trace-format" id="benchmark_args" class="long-field"></paper-input>
- <span class="smaller-font"><b>Note:</b> Change the --pageset-repeat value if you would like lower/higher repeats of each web page. 1 is the default.</span><br/>
- <span class="smaller-font"><b>Note:</b> Use --run-benchmark-timeout=[secs] to specify the timeout of the run_benchmark script. 300 is the default.</span><br/>
- <span class="smaller-font"><b>Note:</b> Use --max-pages-per-bot=[num] to specify the number of pages to run per bot. 100 is the default.</span>
- </td>
- </tr>
-
- <tr>
- <td>Browser Arguments (nopatch run)</td>
- <td>
- <paper-input value="" id="browser_args_nopatch" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>Browser Arguments (withpatch run)</td>
- <td>
- <paper-input value="" id="browser_args_withpatch" class="long-field"></paper-input>
- </td>
- </tr>
-
-
- <tr>
- <td>Field Value Column Name</td>
- <td>
- <paper-input value="avg" id="value_column_name" class="medium-field"></paper-input>
- <span class="smaller-font">Which column's entries to use as field values.</span>
- </td>
- </tr>
-
- <tr>
- <td>
- Chromium Git patch (optional)<br/>
- Applied to Chromium ToT<br/>
- or to the hash specified below.
- </td>
- <td>
- <patch-sk id="chromium_patch"
- patch-type="chromium"
- cl-description="{{chromiumClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Skia Git patch (optional)<br/>
- Applied to Skia Rev in <a href="https://chromium.googlesource.com/chromium/src/+show/HEAD/DEPS">DEPS</a>
- </td>
- <td>
- <patch-sk id="skia_patch"
- patch-type="skia"
- cl-description="{{skiaClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- V8 Git patch (optional)<br/>
- Applied to V8 Rev in <a href="https://chromium.googlesource.com/chromium/src/+show/HEAD/DEPS">DEPS</a>
- </td>
- <td>
- <patch-sk id="v8_patch"
- patch-type="v8"
- cl-description="{{v8ClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Catapult Git patch (optional)<br/>
- Applied to Catapult Rev in <a href="https://chromium.googlesource.com/chromium/src/+show/HEAD/DEPS">DEPS</a>
- </td>
- <td>
- <patch-sk id="catapult_patch"
- patch-type="catapult"
- cl-description="{{catapultClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Chromium Git metrics patch (optional)<br/>
- Applied to Chromium ToT<br/>
- or to the hash specified below.<br/>
- Used to create the base build (See <a href="http://skbug.com/9029">skbug/9029</a>)
- </td>
- <td>
- <patch-sk id="chromium_patch_base_build"
- patch-type="chromium"
- cl-description="{{chromiumBaseBuildClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>Chromium hash to sync to (optional)<br/></td>
- <td>
- <paper-input value="" id="chromium_hash" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>Repeat this task</td>
- <td>
- <repeat-after-days-sk id="repeat_after_days"></repeat-after-days-sk>
- </td>
- </tr>
-
- <tr>
- <td>Task Priority</td>
- <td>
- <iron-selector attr-for-selected="id" id="task_priority" selected="100" class="medium-field">
- <template is="dom-repeat" items="{{taskPriorities}}">
- <div id="{{item}}">{{getTaskPriorityDesc(item,taskPrioritiesToDesc)}}</div>
- </template>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>
- Notifications CC list (optional)<br/>
- Email will be sent by ct@skia.org
- </td>
- <td>
- <paper-input value="" id="cc_list" label="email1,email2,email3" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>
- Group name (optional)<br/>
- Will be used to track runs
- </td>
- <td>
- <paper-input value="" id="group_name" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>Description</td>
- <td>
- <paper-input value="" id="desc" label="Description is required" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="center">
- <div class="triggering-spinner">
- <paper-spinner active="[[ triggeringTask ]]" alt="Trigger task"></paper-spinner>
- </div>
- <paper-button raised id="submit_task" disabled="[[ triggeringTask ]]">Queue Task</paper-button>
- </td>
- </tr>
- <tr>
- <td colspan="2" class="center">
- <paper-button raised id="view_history">View runs history</paper-button>
- </td>
- </tr>
- </table>
-
- <br/><br/>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "chromium-perf-sk",
- properties: {
- benchmarks: {
- type: Array,
- value: [],
- },
- benchmarksToDoc: {
- type: Object,
- value: {},
- },
- platforms: {
- type: Array,
- value: [],
- },
- platformsToDesc: {
- type: Object,
- value: {},
- },
- taskPriorities: {
- type: Array,
- value: [],
- },
- taskPrioritiesToDesc: {
- type: Object,
- value: {},
- },
- pageSets: {
- type: Array,
- observer: 'pageSetsChanged',
- },
- triggeringTask: {
- type: Boolean,
- value: false,
- },
- chromiumClDescription: String,
- skiaClDescription: String,
- v8ClDescription: String,
- catapultClDescription: String,
- chromiumBaseBuildClDescription: String,
- selectedBenchmarkName: String,
- },
-
- observers: [
- "clDescriptionChanged(chromiumClDescription, skiaClDescription, v8ClDescription, catapultClDescription, chromiumBaseBuildClDescription)"
- ],
-
- ready: function() {
- var that = this;
- this.$.target_platform.addEventListener('click', function(e) {
- that.platformChanged();
- that.setRunInParallel();
- });
- this.$.submit_task.addEventListener('click', function(e) {
- that.validateTask();
- });
- this.$.view_history.addEventListener('click', function(e) {
- that.gotoRunsHistory();
- });
- this.$.custom_webpages.addEventListener('click', function(e) {
- // Do not display the pagesets selector if custom webpages is open.
- that.$.page_sets.hidden = that.$.custom_webpages.opened;
- if (!that.$.custom_webpages.opened) {
- // Clear out webpages if it is no longer open.
- that.$.custom_webpages.value = '';
- }
- });
- this.platformChanged();
- this.setRunInParallel();
- },
-
- getBenchmarkDoc: function(benchmarkName) {
- if (! benchmarkName || ! this.benchmarksToDoc[benchmarkName]) {
- return "";
- }
- return this.benchmarksToDoc[benchmarkName];
- },
-
- getPlatformDesc: function(platform) {
- if (this.platformsToDesc) {
- return this.platformsToDesc[platform];
- }
- },
-
- getTaskPriorityDesc: function(taskPriority, taskPrioritiesToDesc) {
- if (taskPrioritiesToDesc) {
- return taskPrioritiesToDesc[taskPriority];
- }
- },
-
- pageSetsChanged: function() {
- // CT's chromium perf does not support 1M, 100K.
- for (var i=this.pageSets.length-1; i>=0; i--) {
- if (ctfe.pageSets.getKey(this.pageSets[i]) == "All" ||
- ctfe.pageSets.getKey(this.pageSets[i]).endsWith("100k")) {
- this.pageSets.splice(i, 1);
- }
- }
- },
-
- setRunInParallel: function() {
- if (this.selectedBenchmarkName == "rasterize_and_record_micro" &&
- this.$.target_platform.selected == "Linux") {
- // Decided to leave this False to give the more consistent results
- // by default to users. Should be revisited when parallel runs give
- // better results.
- this.$.run_in_parallel.selected = "False"
- } else {
- this.$.run_in_parallel.selected = "False"
- }
- },
-
- platformChanged: function() {
- if (this.$.target_platform.selected == "Linux" || this.$.target_platform.selected == "Windows") {
- this.$.page_sets.selected = "10k";
- } else {
- this.$.page_sets.selected = "Mobile10k";
- }
- },
-
- clDescriptionChanged: function(chromiumClDesc, skiaClDesc, v8ClDesc, catapultClDesc, chromiumBaseBuildClDesc) {
- this.$.desc.value = ctfe.getDescriptionOfCls(chromiumClDesc, skiaClDesc, v8ClDesc, catapultClDesc, chromiumBaseBuildClDesc)
- },
-
- validateTask: function() {
- if (!this.$.chromium_patch.validate() ||
- !this.$.skia_patch.validate() ||
- !this.$.v8_patch.validate() ||
- !this.$.catapult_patch.validate() ||
- !this.$.chromium_patch_base_build.validate()) {
- return;
- }
- if (! this.$.desc.value) {
- sk.errorMessage("Please specify a description");
- this.$.desc.focus();
- return;
- }
- if (! this.selectedBenchmarkName) {
- sk.errorMessage("Please specify a benchmark");
- this.$.benchmark_name.focus();
- return;
- }
- if (ctfe.missingLiveSitesWithCustomWebpages(
- this.$.custom_webpages.value, this.$.benchmark_args.value)) {
- this.$.benchmark_args.focus();
- return;
- }
- if (ctfe.moreThanThreeActiveTasks($$$("drawer-sk").sizeOfUserQueue)) {
- return;
- }
- this.$.confirm_dialog.open("Proceed with queueing task?")
- .then(this.queueTask.bind(this))
- .catch(function() {
- sk.errorMessage("Did not queue");
- })
- },
-
- getRepeatValue: function() {
- // If "--pageset-repeat" is specified in benchmark args then use that
- // value else use "1".
- var rx = /--pageset-repeat[ =](\d+)/gm
- var m = rx.exec(this.$.benchmark_args.value);
- if (m) {
- return m[1];
- } else {
- return "1";
- }
- },
-
- queueTask: function() {
- this.triggeringTask = true;
- var params = {};
- params["benchmark"] = this.selectedBenchmarkName;
- params["platform"] = this.$.target_platform.selected;
- params["page_sets"] = this.$.page_sets.selected;
- params["custom_webpages"] = this.$.custom_webpages.value;
- params["repeat_runs"] = this.getRepeatValue();
- params["run_in_parallel"] = this.$.run_in_parallel.selected;
- params["benchmark_args"] = this.$.benchmark_args.value;
- params["browser_args_nopatch"] = this.$.browser_args_nopatch.value;
- params["browser_args_withpatch"] = this.$.browser_args_withpatch.value;
- params["value_column_name"] = this.$.value_column_name.value;
- params["desc"] = this.$.desc.value;
- params["chromium_patch"] = this.$.chromium_patch.patch;
- params["skia_patch"] = this.$.skia_patch.patch;
- params["v8_patch"] = this.$.v8_patch.patch;
- params["catapult_patch"] = this.$.catapult_patch.patch;
- params["chromium_patch_base_build"] = this.$.chromium_patch_base_build.patch;
- params["chromium_hash"] = this.$.chromium_hash.value;
- params["repeat_after_days"] = this.$.repeat_after_days.selected;
- params["task_priority"] = this.$.task_priority.selected;
- // Run on GCE if it is Windows. This will change in the future if we
- // get bare-metal Win machines.
- params["run_on_gce"] = (this.$.target_platform.selected === "Windows").toString();
- if (this.$.cc_list.value) {
- params["cc_list"] = this.$.cc_list.value.split(",")
- }
- if (this.$.group_name.value) {
- params["group_name"] = this.$.group_name.value
- }
-
- var that = this;
- sk.post("/_/add_chromium_perf_task", JSON.stringify(params)).then(function(resp) {
- that.gotoRunsHistory();
- }).catch(function(e) {
- that.triggeringTask = false;
- sk.errorMessage(e);
- });
- },
-
- gotoRunsHistory: function() {
- window.location.href = "/chromium_perf_runs/";
- },
-
- getPlaceholderTextForCustomWebpages: ctfe.getPlaceholderTextForCustomWebpages,
- });
-</script>
diff --git a/ct/res/imp/ct-runs-summary-sk.html b/ct/res/imp/ct-runs-summary-sk.html
deleted file mode 100644
index d1c2fa1..0000000
--- a/ct/res/imp/ct-runs-summary-sk.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!--
- The <ct-runs-summary-sk> custom element declaration. Displays a summary of
- recent CT runs.
-
- Attributes:
- tasks: The successful tasks run by non-admins in the last week/month/year/all-time.
- findTasksBeforeDays: Find above tasks that completed before these many days.
- uniqueUsers: The number of unique users who triggered the above tasks.
-
- Events:
- None.
-
- Methods:
- reload: Queries for updated information on tasks.
- weeklySummary: Sets findTasksBeforeDays to 7.
- monthlySummary: Sets findTasksBeforeDays to 30.
- yearlySummary: Sets findTasksBeforeDays to 365.
- allTimeSummary: Sets findTasksBeforeDays to 0.
--->
-
-<dom-module id="ct-runs-summary-sk">
- <style>
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- </style>
- <template>
-
- <h4>CT Runs Summary</h3>
- <paper-button raised on-click="weeklySummary">Last Week</paper-button>
- <paper-button raised on-click="monthlySummary">Last Month</paper-button>
- <paper-button raised on-click="yearlySummary">Last Year</paper-button>
- <paper-button raised on-click="allTimeSummary">All Time</paper-button>
- <br/><br/>
- <span>[[tasks.length]] runs by [[uniqueUsers]] users [[ getDaysText(findTasksBeforeDays) ]]</span>
- <br/>
-
- <template is="dom-if" if="{{tasks}}">
- <table class="runssummary" id="runssummary" cellpadding="5" border="1">
- <tr class="headers">
- <td>Type</td>
- <td>User</td>
- <td>Description</td>
- <td>Completed</td>
- </tr>
-
- <template is="dom-repeat" items="{{tasks}}" as="task" index-as="index">
- <tr style="border: 1px solid black;">
- <!-- Type col -->
- <td>{{task.Type}}</td>
-
- <!-- User col -->
- <td>{{task.Username}}</td>
-
- <!-- Description col -->
- <td>{{task.Description}}</td>
-
- <!-- Timestamps col -->
- <td class="nowrap">{{task.TsCompleted}}</td>
- </tr>
- </template>
- </table>
- </template>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "ct-runs-summary-sk",
- properties: {
- tasks: {
- type: Array,
- value: function() { return []; },
- },
- findTasksBeforeDays: {
- type: Number,
- value: 7,
- },
- uniqueUsers: {
- type: Number,
- value: 0,
- },
- },
-
- ready: function() {
- this.reload();
- },
-
- reload: function() {
- if (this.findTasksBeforeDays > 0) {
- var d = new Date();
- d.setDate(d.getDate() - this.findTasksBeforeDays);
- var completedAfter = this.getCtDbTimestamp(d);
- } else {
- var completedAfter = this.getCtDbTimestamp(new Date(0));
- }
-
- var queryParams = {
- 'completed_after': completedAfter,
- 'exclude_ctadmin_tasks': true,
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- sk.post('/_/completed_tasks' + queryStr).then(JSON.parse).then(function(json) {
- this.tasks = json.CompletedTasks;
- this.uniqueUsers = json.UniqueUsers;
- }.bind(this)).catch(sk.errorMessage);
- },
-
- weeklySummary: function() {
- this.findTasksBeforeDays = 7;
- this.reload();
- },
-
- monthlySummary: function() {
- this.findTasksBeforeDays = 30;
- this.reload();
- },
-
- yearlySummary: function() {
- this.findTasksBeforeDays = 365;
- this.reload();
- },
-
- allTimeSummary: function() {
- this.findTasksBeforeDays = 0;
- this.reload();
- },
-
- getDaysText: function(days) {
- if (days > 0) {
- return "last " + days + " days";
- } else {
- return "all time";
- }
- },
-
- getCtDbTimestamp: ctfe.getCtDbTimestamp,
- });
-</script>
diff --git a/ct/res/imp/drawer-sk.html b/ct/res/imp/drawer-sk.html
deleted file mode 100644
index 1b6035a..0000000
--- a/ct/res/imp/drawer-sk.html
+++ /dev/null
@@ -1,197 +0,0 @@
-<!--
- The <drawer-sk> custom element declaration. Displays a menu of the CT pages.
-
- Attributes:
- None.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="drawer-sk">
- <style>
- paper-menu {
- padding: 15px 0px 0px 10px;
- }
- paper-item {
- cursor: pointer;
- }
- </style>
- <template>
-
- <paper-menu id="menu" theme="core-light-theme" selected="{{selected}}">
-
- <paper-item data-href="/chromium_perf/">
- <iron-icon icon="trending-up" class="right_padded"></iron-icon>
- Performance
- </paper-item>
-
- <paper-item data-href="/chromium_analysis/">
- <iron-icon icon="icons:search" class="right_padded"></iron-icon>
- Analysis
- </paper-item>
-
- <paper-item data-href="/metrics_analysis/">
- <iron-icon icon="icons:assessment" class="right_padded"></iron-icon>
- Metrics Analysis
- </paper-item>
-
- <template is="dom-if" if="{{isAdmin}}">
-
- <paper-item data-href="/capture_skps/">
- <iron-icon icon="image:photo-camera" class="right_padded"></iron-icon>
- SkPictures
- </paper-item>
-
- <paper-item data-href="/chromium_builds/">
- <iron-icon icon="shopping-cart" class="right_padded"></iron-icon>
- Builds
- </paper-item>
-
- <paper-item data-href="/admin_tasks/">
- <iron-icon icon="social:person" class="right_padded"></iron-icon>
- Admin Tasks
- </paper-item>
-
- </template>
-
- <paper-item data-href="/queue/">
- <iron-icon icon="reorder" class="right_padded"></iron-icon>
- View Queue (<b>{{sizeOfQueue}}</b>)
- </paper-item>
-
- <paper-item data-href="/history/">
- <iron-icon icon="history" class="right_padded"></iron-icon>
- Runs History
- </paper-item>
-
- <paper-item data-href="https://github.com/google/skia-buildbot/tree/master/ct">
- <iron-icon icon="folder" class="right_padded"></iron-icon>
- Code
- </paper-item>
-
- <paper-item data-href="https://www.chromium.org/developers/cluster-telemetry">
- <iron-icon icon="help" class="right_padded"></iron-icon>
- Docs
- </paper-item>
-
- </paper-menu>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "drawer-sk",
- properties: {
- selected: {
- type: String,
- value: "",
- observer: "selectedChanged",
- },
- isAdmin: {
- type: Boolean,
- value: false,
- },
- sizeOfQueue: {
- type: Number,
- value: 0,
- },
- sizeOfUserQueue: {
- type: Number,
- value: 0,
- },
- taskDescriptors: {
- type: Array,
- value: function() {
- return [{type: "ChromiumPerf",
- get_url: "/_/get_chromium_perf_tasks"},
- {type: "ChromiumAnalysis",
- get_url: "/_/get_chromium_analysis_tasks"},
- {type: "MetricsAnalysis",
- get_url: "/_/get_metrics_analysis_tasks"},
- {type: "CaptureSkps",
- get_url: "/_/get_capture_skp_tasks"},
- {type: "ChromiumBuild",
- get_url: "/_/get_chromium_build_tasks"},
- {type: "RecreatePageSets",
- get_url: "/_/get_recreate_page_sets_tasks"},
- {type: "RecreateWebpageArchives",
- get_url: "/_/get_recreate_webpage_archives_tasks"},
- ];
- }
- },
- },
-
- ready: function() {
- this.initSelected();
- this.initSizeOfQueue();
- this.initSizeOfUserQueue();
- this.initIsAdmin();
- },
-
- initIsAdmin: function() {
- var is_admin_url = "/_/is_admin/"
- sk.get(is_admin_url).then(JSON.parse).then(function(json) {
- this.isAdmin = json.isAdmin;
- }.bind(this)).catch(sk.errorMessage);
- },
-
- initSizeOfQueue: function() {
- var queryParams = {
- "size": 1,
- "not_completed": true,
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- this.taskDescriptors.forEach(function(obj) {
- sk.post(obj.get_url + queryStr).then(JSON.parse).then(function(json) {
- this.sizeOfQueue += json.pagination.total;
- }.bind(this)).catch(sk.errorMessage);
- }.bind(this));
- },
-
- initSizeOfUserQueue: function() {
- var queryParams = {
- "size": 1,
- "not_completed": true,
- "filter_by_logged_in_user": true,
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- this.taskDescriptors.forEach(function(obj) {
- sk.post(obj.get_url + queryStr).then(JSON.parse).then(function(json) {
- this.sizeOfUserQueue += json.pagination.total;
- }.bind(this)).catch(sk.errorMessage);
- }.bind(this));
- },
-
- initSelected: function() {
- var items = $$("paper-item", this.$.menu);
- var historyIdx;
- for (var i = 0; i < items.length; i++) {
- var ele = items[i];
- if (window.location.href.endsWith(ele.dataset["href"])) {
- this.selected = String(i);
- return;
- }
- if (ele.dataset["href"] == "/history/") {
- historyIdx = i;
- }
- }
- // Special cases.
- if (historyIdx && window.location.href.endsWith("_runs/")) {
- this.selected = String(historyIdx);
- return;
- }
- this.selected = "0";
- },
-
- selectedChanged: function(newValue, oldValue) {
- if (!oldValue || oldValue == "") {
- return;
- }
- window.location.href = this.$.menu.focusedItem.dataset["href"];
- },
- });
-</script>
diff --git a/ct/res/imp/expanding-textarea-sk.html b/ct/res/imp/expanding-textarea-sk.html
deleted file mode 100644
index 8dbf912..0000000
--- a/ct/res/imp/expanding-textarea-sk.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--
- The <expanding-textarea-sk> custom element declaration. Displays a clickable
- text link that expands a textarea. The value of the textarea is accessible by
- callers via the value attribute.
-
- Attributes:
- value: Contains the text entered into the textarea.
- displayText: The clickable text that will open/close the textarea.
- placeholderText: Is used as a placeholder in the textarea.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="expanding-textarea-sk">
- <style>
- paper-input {
- width: 20em;
- }
-
- .long-field {
- width: 40em;
- }
- </style>
- <template>
- <a href="javascript:void(0);" id="expander">
- <iron-icon icon="{{expanderIcon(opened)}}"></iron-icon>
- {{displayText}}
- </a>
- <span class="long-field">
- <iron-collapse id="collapser" opened="{{opened}}">
- <iron-autogrow-textarea class="long-field" rows=5 max-rows=20 bind-value="{{value}}" placeholder="{{placeholderText}}">
- </iron-autogrow-textarea>
- </iron-collapse>
- </span>
- </template>
- <script>
- Polymer({
- is: "expanding-textarea-sk",
- properties: {
- opened: {
- type: Boolean,
- value: false,
- },
- value: {
- type: String,
- notify: true,
- },
- displayText: {
- type: String,
- value: "Expand/Collapse textarea",
- },
- placeholderText: {
- type: String,
- value: "",
- },
- },
-
- ready: function() {
- var that = this;
- this.$.expander.addEventListener('click', function(e) {
- that.$.collapser.toggle();
- });
- },
-
- expanderIcon: function(opened) {
- if (opened) {
- return "expand-less";
- } else {
- return "expand-more";
- }
- },
- });
- </script>
-
-</dom-module>
diff --git a/ct/res/imp/metrics-analysis-runs-sk.html b/ct/res/imp/metrics-analysis-runs-sk.html
deleted file mode 100644
index ab5f534..0000000
--- a/ct/res/imp/metrics-analysis-runs-sk.html
+++ /dev/null
@@ -1,365 +0,0 @@
-<!--
- The <metrics-analysis-runs-sk> custom element declaration. Displays a table with details about
- each completed and pending Metrics Analysis task.
-
- Attributes:
- defaultSize: The number of tasks to show per page, default 10.
- constrainByUser: Whether to show only tasks created by the logged-in user initially, default
- false.
- myRunsConstrainText: Button text to constrain by user, default "View only my runs".
- everyonesRunsConstrainText: Button text to disable constraining by user, default "View
- everyone's runs".
-
- Events:
- None.
-
- Methods:
- reload: queries for updated information on tasks.
- resetPagination: Moves to the first page of tasks.
- constrainRunsByUser: Toggles constrainByUser and reloads the appropriate data.
--->
-
-<dom-module id="metrics-analysis-runs-sk">
- <style>
- paper-dialog {
- min-width: 200px;
- max-width: calc(100% - 10px);
- }
- table.runshistory {
- border-spacing: 0px;
- }
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- table.runshistory > tbody > tr > td {
- padding: 10px;
- border: solid black 1px;
- }
- .delete-button, .redo-button {
- --paper-icon-button-disabled: {
- display: none;
- }
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <h2><template is="dom-if" if="{{constrainByUser}}">My </template>Metrics Analysis Runs</h2>
- <paging-sk pagination="{{pagination}}" on-pagechange="pageChangedHandler"></paging-sk>
- <br/>
- <paper-button raised on-click="constrainRunsByUser">{{
- constrainButtonText(constrainByUser, myRunsConstrainText, everyonesRunsConstrainText)
- }}</paper-button>
-
- <br/>
- <br/>
-
- <!-- Section for popups. -->
- <template is="dom-repeat" items="{{metricsAnalysisTasks}}" as="metricsAnalysisTask" index-as="index">
-
- <paper-dialog heading="Benchmark Args" id="{{ getBenchmarkArgsId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{metricsAnalysisTask.BenchmarkArgs}}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
-
- </template>
-
- <table class="runshistory" id="runshistory" cellpadding="5" border="1">
- <tr class="headers">
- <td>Id</td>
- <td>User</td>
- <td>Timestamps</td>
- <td>Task Config</td>
- <td>Description</td>
- <td>Results</td>
- <td>Arguments</td>
- <td>Patches</td>
- <td>Task Repeats</td>
- </tr>
-
- <template is="dom-repeat" items="{{metricsAnalysisTasks}}" as="metricsAnalysisTask" index-as="index">
- <tr style="border: 1px solid black;">
- <!-- Id col -->
- <td class="nowrap">
- <template is="dom-if" if="{{metricsAnalysisTask.RawOutput}}">
- <a href="{{metricsAnalysisTask.RawOutput}}" target="_blank">{{metricsAnalysisTask.Id}}</a>
- </template>
- <template is="dom-if" if="{{!metricsAnalysisTask.RawOutput}}">
- <span>{{metricsAnalysisTask.Id}}</span>
- </template>
- <paper-icon-button icon="delete" mini
- class="delete-button"
- disabled="{{!metricsAnalysisTask.canDelete}}"
- alt="Delete"
- data-index$="{{index}}"
- data-type="delete">
- </paper-icon-button>
- <paper-icon-button icon="redo" mini
- class="redo-button"
- disabled="{{!metricsAnalysisTask.canRedo}}"
- alt="Redo"
- data-index$="{{index}}"
- data-type="redo">
- </paper-icon-button>
- </td>
-
- <!-- User col -->
- <td>{{metricsAnalysisTask.Username}}</td>
-
- <!-- Timestamps col -->
- <td>
- <table>
- <tr>
- <td>Added:</td>
- <td class="nowrap">{{ formatTimestamp(metricsAnalysisTask.TsAdded) }}</td>
- </tr>
- <tr>
- <td>Started:</td>
- <td class="nowrap">{{ formatTimestamp(metricsAnalysisTask.TsStarted) }}</td>
- </tr>
- <tr>
- <td>Completed:</td>
- <td class="nowrap">{{ formatTimestamp(metricsAnalysisTask.TsCompleted) }}</td>
- </tr>
- </table>
- </td>
-
- <!-- Task Config col -->
- <td>
- <table>
- <tr>
- <td class="nowrap">Metric Name:</td>
- <td class="nowrap">{{metricsAnalysisTask.MetricName}}</td>
- </tr>
- <template is="dom-if" if="{{metricsAnalysisTask.ValueColumnName}}">
- <tr>
- <td class="nowrap">Value Column:</td>
- <td class="nowrap">{{metricsAnalysisTask.ValueColumnName}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{metricsAnalysisTask.AnalysisOutputLink}}">
- <tr>
- <td class="nowrap">Analysis Task Id:</td>
- <td class="nowrap">
- <a href="{{metricsAnalysisTask.AnalysisOutputLink}}" target="_blank">{{metricsAnalysisTask.AnalysisTaskId}}</a>
- </td>
- </tr>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(metricsAnalysisTask.CustomTracesGSPath) }}">
- <tr>
- <td class="nowrap">Custom Traces:</td>
- <td class="nowrap">
- <a href="{{ getGSLink(metricsAnalysisTask.CustomTracesGSPath) }}" target="_blank">traces</a>
- </td>
- </tr>
- </template>
- <template is="dom-if" if="{{metricsAnalysisTask.TaskPriority}}">
- <tr>
- <td>TaskPriority:</td>
- <td>{{metricsAnalysisTask.TaskPriority}}</td>
- </tr>
- </template>
- <template is="dom-if" if="{{metricsAnalysisTask.CCList}}">
- <tr>
- <td>CC List:</td>
- <td>{{metricsAnalysisTask.CCList}}</td>
- </tr>
- </template>
- </table>
- </td>
-
- <!-- Description col -->
- <td>{{metricsAnalysisTask.Description}}</td>
-
- <!-- Results col -->
- <td class="nowrap">
- <template is="dom-if" if="{{metricsAnalysisTask.Failure}}">
- <div style="color:red;">Failed</div>
- </template>
- <template is="dom-if" if="{{!metricsAnalysisTask.TaskDone}}">
- <div style="color:green;">Waiting</div>
- </template>
- <template is="dom-if" if="{{metricsAnalysisTask.RawOutput}}">
- <a href="{{metricsAnalysisTask.RawOutput}}" target="_blank">Output</a>
- </template>
- <template is="dom-if" if="{{metricsAnalysisTask.SwarmingLogs}}">
- <br/>
- <a href="{{metricsAnalysisTask.SwarmingLogs}}" target="_blank">Swarming Logs</a>
- </template>
- </td>
-
- <!-- Arguments -->
- <td class="nowrap">
- <template is="dom-if" if="{{metricsAnalysisTask.BenchmarkArgs}}">
- <a href="javascript:void(0);" data-index$="{{index}}" data-type="benchmarkArgs">Benchmark Args</a>
- <br/>
- </template>
- </td>
-
- <!-- Patches -->
- <td>
- <template is="dom-if" if="{{ !isEmptyPatch(metricsAnalysisTask.ChromiumPatchGSPath) }}">
- <a href="{{ getGSLink(metricsAnalysisTask.ChromiumPatchGSPath) }}" target="_blank">Chromium</a>
- <br/>
- </template>
- <template is="dom-if" if="{{ !isEmptyPatch(metricsAnalysisTask.CatapultPatchGSPath) }}">
- <a href="{{ getGSLink(metricsAnalysisTask.CatapultPatchGSPath) }}" target="_blank">Catapult</a>
- <br/>
- </template>
- </td>
-
- <!-- Task Repeats -->
- <td>{{ formatRepeatAfterDays(metricsAnalysisTask.RepeatAfterDays) }}</td>
-
- </tr>
- </template>
- </table>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "metrics-analysis-runs-sk",
- properties: {
- metricsAnalysisTasks: {
- type: Array,
- value: function() { return []; },
- },
- defaultSize: {
- type: Number,
- value: 10,
- },
- constrainByUser: {
- type: Boolean,
- value: false,
- },
- myRunsConstrainText: {
- type: String,
- value: "View only my runs",
- },
- everyonesRunsConstrainText: {
- type: String,
- value: "View everyone's runs",
- },
- pagination: {
- type: Object,
- value: function() { return {}; },
- },
- pageChangedHandler: {
- type: Object,
- value: function() { return null; },
- },
- },
-
- ready: function() {
- this.pagination = {"offset": 0, "size": this.defaultSize};
- this.pageChangedHandler = this.reload.bind(this);
- this.reload();
-
- var that = this;
- this.$.runshistory.addEventListener('click', function(e) {
- var anchor = sk.findParent(e.target, "A");
- if (anchor != null) {
- var id = anchor.dataset.index;
- if (anchor.dataset.type == "benchmarkArgs") {
- that.toggleDialog(that.getBenchmarkArgsId(id));
- }
- }
- var button = sk.findParent(e.target, "PAPER-ICON-BUTTON");
- if (button != null) {
- if (button.dataset.type == "delete") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Proceed with deleting task?")
- .then(that.deleteTask.bind(that, index));
- } else if (button.dataset.type == "redo") {
- var index = button.dataset.index;
- that.$.confirm_dialog.open("Reschedule this task?")
- .then(that.redoTask.bind(that, index));
- }
- }
- });
- },
-
- reload: function() {
- var queryParams = {
- "offset": this.pagination.offset,
- "size": this.pagination.size,
- }
- if (this.constrainByUser) {
- queryParams["filter_by_logged_in_user"] = true;
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- var that = this;
- sk.post('/_/get_metrics_analysis_tasks' + queryStr).then(JSON.parse).then(function(json) {
- that.metricsAnalysisTasks = json.data;
- that.pagination = json.pagination;
- for (var i = 0; i < that.metricsAnalysisTasks.length; i++) {
- that.metricsAnalysisTasks[i].canDelete = json.permissions[i].DeleteAllowed;
- that.metricsAnalysisTasks[i].canRedo = json.permissions[i].RedoAllowed;
- that.metricsAnalysisTasks[i].Id = json.ids[i];
- }
- }).catch(sk.errorMessage);
- },
-
- getBenchmarkArgsId: function(index) {
- return "benchmark_args" + index;
- },
-
- resetPagination: function() {
- this.pagination.offset = 0;
- this.pagination.size = this.defaultSize;
- },
-
- constrainRunsByUser: function() {
- this.constrainByUser = !this.constrainByUser;
- this.resetPagination();
- this.reload();
- },
-
- constrainButtonText: function(constrained, constrainText, unconstrainText) {
- if (constrained) {
- return unconstrainText;
- } else {
- return constrainText;
- }
- },
-
- toggleDialog: function(id) {
- Polymer.dom(this.root).querySelector('#' + id).toggle();
- },
-
- deleteTask: function(deleteIndex) {
- var params = {};
- params["id"] = this.metricsAnalysisTasks[deleteIndex].Id;
- sk.post("/_/delete_metrics_analysis_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Deleted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- redoTask: function(redoIndex) {
- var params = {};
- params["id"] = this.metricsAnalysisTasks[redoIndex].Id;
- sk.post("/_/redo_metrics_analysis_task", JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Resubmitted task " + params["id"];
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- formatTimestamp: ctfe.getFormattedTimestamp,
- formatRepeatAfterDays: ctfe.formatRepeatAfterDays,
- getGSLink: ctfe.getGSLink,
- isEmptyPatch: ctfe.isEmptyPatch,
- });
-</script>
diff --git a/ct/res/imp/metrics-analysis-sk.html b/ct/res/imp/metrics-analysis-sk.html
deleted file mode 100644
index b4310fa..0000000
--- a/ct/res/imp/metrics-analysis-sk.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!--
- The <metrics-analysis-sk> custom element declaration. Displays a form that allows the user to
- queue a task to do metrics analysis on trace URLs.
-
- Attributes:
- None.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="metrics-analysis-sk">
- <style>
- paper-input {
- width: 20em;
- }
-
- .triggering-spinner {
- margin: auto;
- vertical-align: middle;
- }
-
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- .long-field {
- width: 40em;
- }
-
- .hidden {
- display: none;
- }
-
- .smaller-font {
- font-size: 80%;
- }
-
- iron-selector.long-field > div {
- width: 40em;
- }
-
- iron-selector.medium-field > div {
- width: 20em;
- }
-
- table.options td {
- padding: 1em 2em;
- }
-
- td.center {
- text-align:center;
- padding-top:2em;
- }
-
- .panel {
- @apply(--shadow-elevation-2dp);
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <table class="options panel">
-
- <tr>
- <td>Metric Name</td>
- <td>
- <paper-input value="" id="metric_name" class="medium-field"></paper-input>
- <span class="smaller-font">The metric to parse the provided traces with. Eg: loadingMetric</span>
- </td>
- </tr>
-
- <tr>
- <td>Source of traces</td>
- <td>
- <paper-input value="" id="analysis_task_id" class="medium-field" label="Analysis Task Id"></paper-input>
- <expanding-textarea-sk id="custom_traces" display-text="Specify custom list of traces" placeholder-text="Eg: trace1,trace2,trace3"></expanding-textarea-sk>
- </td>
- </tr>
-
- <tr>
- <td>Benchmark Arguments</td>
- <td>
- <paper-input value="--output-format=csv" id="benchmark_args" class="long-field"></paper-input>
- <span class="smaller-font">These will be the arguments to the analysis_metrics_ct benchmark.</span><br/>
- <span class="smaller-font"><b>Note:</b> Use --run-benchmark-timeout=[secs] to specify the timeout of the run_benchmark script. 300 is the default.</span><br/>
- <span class="smaller-font"><b>Note:</b> Use --max-pages-per-bot=[num] to specify the number of pages to run per bot. 50 is the default.</span>
- </td>
- </tr>
-
- <tr>
- <td>Field Value Column Name</td>
- <td>
- <paper-input value="avg" id="value_column_name" class="medium-field"></paper-input>
- <span class="smaller-font">Which column's entries to use as field values.</span>
- </td>
- </tr>
-
- <tr>
- <td>
- Chromium Git patch (optional)<br/>
- Applied to Chromium ToT
- </td>
- <td>
- <patch-sk id="chromium_patch"
- patch-type="chromium"
- cl-description="{{chromiumClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>
- Catapult Git patch (optional)<br/>
- Applied to Catapult Rev in <a href="https://chromium.googlesource.com/chromium/src/+show/HEAD/DEPS">DEPS</a>
- </td>
- <td>
- <patch-sk id="catapult_patch"
- patch-type="catapult"
- cl-description="{{catapultClDescription}}">
- </patch-sk>
- </td>
- </tr>
-
- <tr>
- <td>Repeat this task</td>
- <td>
- <repeat-after-days-sk id="repeat_after_days"></repeat-after-days-sk>
- </td>
- </tr>
-
- <tr>
- <td>Task Priority</td>
- <td>
- <iron-selector attr-for-selected="id" id="task_priority" selected="100" class="medium-field">
- <template is="dom-repeat" items="{{taskPriorities}}">
- <div id="{{item}}">{{getTaskPriorityDesc(item, taskPrioritiesToDesc)}}</div>
- </template>
- </iron-selector>
- </td>
- </tr>
-
- <tr>
- <td>
- Notifications CC list (optional)<br/>
- Email will be sent by ct@skia.org
- </td>
- <td>
- <paper-input value="" id="cc_list" label="email1,email2,email3" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td>Description</td>
- <td>
- <paper-input value="" id="desc" label="Description is required" class="long-field"></paper-input>
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="center">
- <div class="triggering-spinner">
- <paper-spinner active="[[ triggeringTask ]]" alt="Trigger task"></paper-spinner>
- </div>
- <paper-button raised id="submit_task" disabled="[[ triggeringTask ]]">Queue Task</paper-button>
- </td>
- </tr>
- <tr>
- <td colspan="2" class="center">
- <paper-button raised id="view_history">View runs history</paper-button>
- </td>
- </tr>
- </table>
-
- <br/><br/>
-
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "metrics-analysis-sk",
- properties: {
- chromiumClDescription: String,
- catapultClDescription: String,
- taskPriorities: {
- type: Array,
- value: [],
- },
- taskPrioritiesToDesc: {
- type: Object,
- value: {},
- },
- triggeringTask: {
- type: Boolean,
- value: false,
- },
- },
-
- observers: [
- "clDescriptionChanged(chromiumClDescription, catapultClDescription)"
- ],
-
- ready: function() {
- var that = this;
- this.$.submit_task.addEventListener('click', function(e) {
- that.validateTask();
- });
- this.$.view_history.addEventListener('click', function(e) {
- that.gotoRunsHistory();
- });
- this.$.custom_traces.addEventListener('click', function(e) {
- // Do not display the analysis task id field if custom traces is open.
- that.$.analysis_task_id.hidden = that.$.custom_traces.opened;
- if (that.$.custom_traces.opened) {
- // Clear out analysis task id if custom traces is open.
- that.$.analysis_task_id.value = '';
- } else {
- // Clear out traces if it is no longer open.
- that.$.custom_traces.value = '';
- }
- });
- },
-
- getTaskPriorityDesc: function(taskPriority, taskPrioritiesToDesc) {
- if (taskPrioritiesToDesc) {
- return taskPrioritiesToDesc[taskPriority];
- }
- },
-
- clDescriptionChanged: function(chromiumClDesc, catapultClDesc) {
- this.$.desc.value = ctfe.getDescriptionOfCls(chromiumClDesc, '', '', catapultClDesc, '');
- },
-
- validateTask: function() {
- if (!this.$.metric_name.value) {
- sk.errorMessage("Please specify a metric name");
- this.$.metric_name.focus();
- return;
- }
- if (!this.$.analysis_task_id.value && !this.$.custom_traces.value) {
- sk.errorMessage("Please specify an analysis task id or custom traces");
- this.$.analysis_task_id.focus();
- return;
- };
- if (!this.$.chromium_patch.validate() ||
- !this.$.catapult_patch.validate()) {
- return;
- }
- if (!this.$.desc.value) {
- sk.errorMessage("Please specify a description");
- this.$.desc.focus();
- return;
- }
- if (ctfe.moreThanThreeActiveTasks($$$("drawer-sk").sizeOfUserQueue)) {
- return;
- }
- this.$.confirm_dialog.open("Proceed with queueing task?")
- .then(this.queueTask.bind(this))
- .catch(function(err) {
- console.log(err);
- sk.errorMessage("Did not queue");
- })
- },
-
- queueTask: function() {
- this.triggeringTask = true;
- var params = {};
- params["metric_name"] = this.$.metric_name.value;
- params["analysis_task_id"] = this.$.analysis_task_id.value;
- params["custom_traces"] = this.$.custom_traces.value;
- params["benchmark_args"] = this.$.benchmark_args.value;
- params["value_column_name"] = this.$.value_column_name.value;
- params["desc"] = this.$.desc.value;
- params["chromium_patch"] = this.$.chromium_patch.patch;
- params["catapult_patch"] = this.$.catapult_patch.patch;
- params["repeat_after_days"] = this.$.repeat_after_days.selected;
- params["task_priority"] = this.$.task_priority.selected;
- if (this.$.cc_list.value) {
- params["cc_list"] = this.$.cc_list.value.split(",")
- }
-
- var that = this;
- sk.post("/_/add_metrics_analysis_task", JSON.stringify(params)).then(function(resp) {
- that.gotoRunsHistory();
- }).catch(function(e) {
- that.triggeringTask = false;
- sk.errorMessage(e);
- });
- },
-
- gotoRunsHistory: function() {
- window.location.href = "/metrics_analysis_runs/";
- },
- });
-</script>
diff --git a/ct/res/imp/page-set-selector-sk.html b/ct/res/imp/page-set-selector-sk.html
deleted file mode 100644
index 9e1e53b..0000000
--- a/ct/res/imp/page-set-selector-sk.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
- The <page-set-selector-sk> custom element declaration. Displays an iron-selector allowing the user
- to choose among the defined page set types.
-
- Attributes:
- pageSets: array of objects as obtained via ctfe.pageSets.getPageSets. Must be set.
- selected: ctfe.pageSets.getKey for the currently selected page set. Notifies.
-
- Events:
- None.
-
- Methods:
- selectFirst: Causes the first page set in pageSets to be selected.
--->
-
-<dom-module id="page-set-selector-sk">
- <style>
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- iron-selector.long-field > div {
- width: 40em;
- }
- </style>
- <template>
- <iron-selector attr-for-selected="id" selected="{{selected}}" class="long-field">
- <template is="dom-repeat" items="{{pageSets}}">
- <div id="{{item.key}}">{{item.description}}</div>
- </template>
- </iron-selector>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "page-set-selector-sk",
- properties: {
- pageSets: Array,
- selected: {
- type: String,
- notify: true,
- },
- },
-
- selectFirst: function() {
- if (this.pageSets.length > 0) {
- this.selected = ctfe.pageSets.getKey(this.pageSets[0]);
- }
- },
- });
-</script>
diff --git a/ct/res/imp/patch-sk.html b/ct/res/imp/patch-sk.html
deleted file mode 100644
index 25e1b6a..0000000
--- a/ct/res/imp/patch-sk.html
+++ /dev/null
@@ -1,215 +0,0 @@
-<!--
- The <patch-sk> custom element declaration. Allows entering a CL in the form of
- https://codereview.chromium.org/1344993003 (or just the CL number) to retrieve a patch from that
- CL. Alternatively, allows entering a patch manually in an expanding text area.
-
- Attributes:
- patchType: Specifies the project for the patch. Must be set. Supported values include
- "chromium" and "skia". See also encodeCLData in
- ct/go/ctfe/chromium_perf/chromium_perf.go.
- cl: Raw value of the CL input. Does not notify.
- clDescription: Human-readable description of the CL. Notifies.
- patch: The patch, either retrieved from the CL or manually entered/modified. Notifies.
-
- Events:
- None.
-
- Methods:
- validate(): Checks that patch is valid based on cl. If not, shows an error toast and returns
- false. Otherwise returns true.
--->
-
-<dom-module id="patch-sk">
- <style>
- paper-input {
- width: 25em;
- }
-
- .long-field {
- width: 40em;
- }
-
- td.cl-label {
- vertical-align: middle;
- }
-
- .cl-detail-container {
- position: relative;
- text-align: center;
- height: 100px;
- min-width: 200px;
- max-width: 300px;
- }
-
- .loading-cl-spinner {
- margin: auto;
- vertical-align: middle;
- }
-
- .cl-detail {
- position: absolute;
- top: 0px;
- left: 0px;
- text-align: start;
- }
-
- .cl-error {
- color: red;
- }
- </style>
- <template>
- <table>
- <tr>
- <td class="cl-label">CL:</td>
- <td>
- <paper-input value="{{cl}}" label="Please paste a complete Gerrit URL" no-label-float></paper-input>
- <a href="javascript:void(0);" id="patch_expander">
- <iron-icon icon="{{patchExpanderIcon(patchOpened)}}"></iron-icon>
- Specify patch manually</a>
- </td>
- <td>
- <div class="cl-detail-container">
- <div class="loading-cl-spinner">
- <paper-spinner active="{{loadingClDetail}}"
- alt="Loading CL details"></paper-spinner>
- </div>
- <div class="cl-detail">
- <a href$="{{clUrl(clData)}}" target="_blank">{{formatClData(clData)}}</a>
- <span class="cl-error">{{formatClError(clData)}}</span>
- </div>
- </td>
- </tr>
- <tr>
- <td colspan="3">
- <div class="long-field">
- <iron-collapse id="patch_collapse" opened="{{patchOpened}}">
- <iron-autogrow-textarea class="long-field" rows=5 max-rows=20 bind-value="{{patch}}">
- </iron-autogrow-textarea>
- </iron-collapse>
- </div>
- </td>
- </tr>
- </table>
- </template>
- <script>
- Polymer({
- is: "patch-sk",
- properties: {
- patchType: String,
- cl: {
- type: String,
- value: "",
- observer: "clChanged",
- },
- clData: Object,
- loadingClDetail: {
- type: Boolean,
- value: false,
- },
- clDescription: {
- type: String,
- computed: "formatClDescription(clData)",
- notify: true,
- },
- patchOpened: {
- type: Boolean,
- value: false,
- },
- patch: {
- type: String,
- notify: true,
- },
- },
-
- ready: function() {
- var that = this;
- this.$.patch_expander.addEventListener('click', function(e) {
- that.$.patch_collapse.toggle();
- });
- },
-
- clChanged: function(newValue) {
- if (!newValue || newValue.length < 3) {
- this.clData = null;
- this.loadingClDetail = false;
- return;
- }
- this.loadingClDetail = true;
- var params = {cl: newValue};
- sk.post("/_/cl_data?" + sk.query.fromObject(params)).then(JSON.parse).then(function (json) {
- if (this.cl == newValue) {
- if (json.cl) {
- this.clData = json;
- var patch = this.clData[this.patchType + "_patch"];
- if (!patch) {
- this.clData = {error: {response: "This is not a " + this.patchType + " CL."}};
- } else {
- this.patch = patch;
- }
- } else {
- this.clData = null;
- }
- this.loadingClDetail = false;
- }
- }.bind(this)).catch(function (err) {
- if (this.cl == newValue) {
- this.clData = {error: err};
- this.loadingClDetail = false;
- }
- }.bind(this));
- },
-
- clUrl: function(clData) {
- if (clData && !clData.error) {
- return clData.url;
- }
- return "javascript:void(0);"
- },
-
- formatClData: function(clData) {
- if (clData && !clData.error) {
- return clData.subject +
- " (modified " + ctfe.getFormattedTimestamp(clData.modified) + ")";
- }
- return "";
- },
-
- formatClError: function(clData) {
- if (clData && clData.error) {
- return clData.error.response;
- }
- return "";
- },
-
- formatClDescription: function(clData) {
- if (clData && !clData.error) {
- return this.clUrl(clData) + " (" + clData.subject + ")";
- }
- return ""
- },
-
- patchExpanderIcon: function(patchOpened) {
- if (patchOpened) {
- return "expand-less";
- } else {
- return "expand-more";
- }
- },
-
- validate: function() {
- if (this.cl && !this.clData) {
- sk.errorMessage("Unable to load " + this.patchType + " CL " + this.cl +
- ". Please specify patches manually.");
- return false;
- }
- if (this.cl && !this.patch) {
- sk.errorMessage("Unable to fetch " + this.patchType + " patch from CL " + this.cl +
- ". Please specify patches manually.");
- return false;
- }
- return true;
- },
- });
- </script>
-
-</dom-module>
diff --git a/ct/res/imp/pending-tasks-sk.html b/ct/res/imp/pending-tasks-sk.html
deleted file mode 100644
index 6147c9b..0000000
--- a/ct/res/imp/pending-tasks-sk.html
+++ /dev/null
@@ -1,252 +0,0 @@
-<!--
- The <pending-tasks-sk> custom element declaration. Displays a table of tasks that are not yet
- completed, including popups with detailed information.
-
- Attributes:
- None.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="pending-tasks-sk">
- <style>
- paper-dialog {
- min-width: 200px;
- max-width: calc(100% - 10px);
- }
- table.queue {
- border-spacing: 0px;
- padding-top: 2em;
- }
- tr.headers {
- background-color: #CCCCFF;
- text-align: center;
- }
- td.nowrap {
- white-space: nowrap;
- }
- th,
- td {
- padding: 15px;
- border: solid black 1px;
- }
- .delete-button {
- --paper-icon-button-disabled: {
- display: none;
- }
- }
- </style>
- <template>
-
- <confirm-dialog-sk id="confirm_dialog"></confirm-dialog-sk>
-
- <h2>Tasks in the Queue</h2>
-
- <!-- Section for popups. -->
- <template is="dom-repeat" items="{{pendingTasks}}" as="pendingTask" index-as="index">
- <paper-dialog heading="Task Details" id="{{ getTaskDetailsId(index) }}">
- <paper-dialog-scrollable>
- <pre>{{ formatTask(pendingTask) }}</pre>
- </paper-dialog-scrollable>
- </paper-dialog>
- </template>
-
- <table class="queue" id="queue">
- <tr class="headers">
- <td>Queue Position</td>
- <td>Added</td>
- <td>Task Type</td>
- <td>User</td>
- <td>Swarming Logs</td>
- <td>Request</td>
- </tr>
-
- <template is="dom-repeat" items="{{pendingTasks}}" as="pendingTask" index-as="index">
- <tr>
- <!-- Queue Position col -->
- <td class="nowrap">
- <span>{{ incrementOne(index) }}</span>
- <paper-icon-button icon="delete" mini
- class="delete-button"
- disabled="{{!pendingTask.canDelete}}"
- alt="Delete"
- data-index$="{{index}}"
- data-type="delete">
- </paper-icon-button>
- </td>
-
- <!-- Added col -->
- <td>{{ formatTimestamp(pendingTask.TsAdded) }}
- <template is="dom-if" if="{{ pendingTask.FutureDate }}">
- <br/>
- <div style="color:red;">(scheduled in the future)</div>
- </template>
- </td>
-
- <!-- Task Type col -->
- <td>{{pendingTask.TaskType}}</td>
-
- <!-- User col -->
- <td>{{pendingTask.Username}}</td>
-
- <!-- Swarming logs col -->
- <td class="nowrap">
- <template is="dom-if" if="{{ pendingTask.FutureDate }}">
- N/A
- </template>
- <template is="dom-if" if="{{ !pendingTask.FutureDate }}">
- <template is="dom-if" if="{{ pendingTask.SwarmingLogs }}">
- <a href="{{ pendingTask.SwarmingLogs }}" target="_blank">Swarming Logs</a>
- </template>
- </template>
- </td>
-
- <!-- Request col -->
- <td class="nowrap">
- <a href="javascript:void(0);" data-id$="{{index}}">Task Details</a>
- </td>
- </tr>
- </template>
- </table>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "pending-tasks-sk",
- properties: {
- pendingTasks: {
- type: Array,
- value: [],
- },
- taskDescriptors: {
- type: Array,
- value: function() {
- return [{type: "ChromiumPerf",
- get_url: "/_/get_chromium_perf_tasks",
- delete_url: "/_/delete_chromium_perf_task"},
- {type: "ChromiumAnalysis",
- get_url: "/_/get_chromium_analysis_tasks",
- delete_url: "/_/delete_chromium_analysis_task"},
- {type: "MetricsAnalysis",
- get_url: "/_/get_metrics_analysis_tasks",
- delete_url: "/_/delete_metrics_analysis_task"},
- {type: "CaptureSkps",
- get_url: "/_/get_capture_skp_tasks",
- delete_url: "/_/delete_capture_skps_task"},
- {type: "ChromiumBuild",
- get_url: "/_/get_chromium_build_tasks",
- delete_url: "/_/delete_chromium_build_task"},
- {type: "RecreatePageSets",
- get_url: "/_/get_recreate_page_sets_tasks",
- delete_url: "/_/delete_recreate_page_sets_task"},
- {type: "RecreateWebpageArchives",
- get_url: "/_/get_recreate_webpage_archives_tasks",
- delete_url: "/_/delete_recreate_webpage_archives_task"},
- ];
- }
- },
- },
-
- ready: function() {
- this.reload();
-
- this.$.queue.addEventListener('click', function(e) {
- var anchor = sk.findParent(e.target, "A");
- if (anchor != null) {
- var index = anchor.dataset.id;
- this.toggleDialog(this.getTaskDetailsId(index));
- }
- }.bind(this));
-
- this.$.queue.addEventListener('click', function(e) {
- var button = sk.findParent(e.target, "PAPER-ICON-BUTTON");
- if (button != null && button.dataset.type == "delete") {
- var index = button.dataset.index;
- this.$.confirm_dialog.open("Proceed with deleting task?")
- .then(this.deleteTask.bind(this, index));
- }
- }.bind(this));
- },
-
- reload: function() {
- this.pendingTasks = []
- var queryParams = {
- "size": 100,
- "not_completed": true,
- }
- var queryStr = "?" + sk.query.fromObject(queryParams);
- this.taskDescriptors.forEach(function(obj) {
- sk.post(obj.get_url + queryStr).then(JSON.parse).then(function(json) {
- this.updatePendingTasks(json, obj);
- }.bind(this)).catch(sk.errorMessage);
- }.bind(this));
-
- // Find all tasks scheduled in the future.
- var queryParams = {"include_future_runs": true,}
- var queryStr = "?" + sk.query.fromObject(queryParams);
- this.taskDescriptors.forEach(function(obj) {
- sk.post(obj.get_url + queryStr).then(JSON.parse).then(function(json) {
- this.updatePendingTasks(json, obj);
- }.bind(this)).catch(sk.errorMessage);
- }.bind(this));
- },
-
- incrementOne: function(index) {
- return index + 1;
- },
-
- getTaskDetailsId: function(index) {
- return "task_details" + index;
- },
-
- formatTask: function(task) {
- return JSON.stringify(task, null, 4);
- },
-
- updatePendingTasks: function(json, taskDescriptor) {
- var tasks = json.data
- for (index in tasks) {
- var task = tasks[index];
- task["canDelete"] = json.permissions[index].DeleteAllowed;
- task["Id"] = json.ids[index];
- task["TaskType"] = taskDescriptor.type;
- task["GetURL"] = taskDescriptor.get_url;
- task["DeleteURL"] = taskDescriptor.delete_url;
- // Check if this is a completed task set to repeat.
- if (task["RepeatAfterDays"] != 0 && task["TaskDone"]) {
- // Calculate the future date.
- var timestamp = ctfe.getTimestamp(task["TsAdded"]);
- timestamp.setDate(timestamp.getDate() + task["RepeatAfterDays"]);
- task["FutureDate"] = true;
- task["TsAdded"] = ctfe.getCtDbTimestamp(new Date(timestamp));
- }
- }
- this.pendingTasks = this.pendingTasks.concat(tasks)
- // Sort pending tasks according to TsAdded.
- this.pendingTasks.sort(function(a, b){return a["TsAdded"] - b["TsAdded"]});
- },
-
- deleteTask: function(deleteIndex) {
- var pendingTask = this.pendingTasks[deleteIndex];
- var params = {};
- params["id"] = pendingTask.Id;
- sk.post(pendingTask.DeleteURL, JSON.stringify(params)).then(function() {
- $$$("#confirm_toast").text = "Deleted " + pendingTask.TaskType + " task " + pendingTask.Id;
- $$$("#confirm_toast").show();
- }.bind(this)).catch(sk.errorMessage).then(function() {
- this.reload();
- }.bind(this));
- },
-
- toggleDialog: function(id) {
- Polymer.dom(this.root).querySelector('#' + id).toggle();
- },
-
- formatTimestamp: ctfe.getFormattedTimestamp,
- });
-</script>
diff --git a/ct/res/imp/repeat-after-days-sk.html b/ct/res/imp/repeat-after-days-sk.html
deleted file mode 100644
index d15f334..0000000
--- a/ct/res/imp/repeat-after-days-sk.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--
- The <repeat-after-days-sk> custom element declaration. Displays an iron-selector allowing
- the user to choose whether their task should be repeated either never, daily, every other day
- or weekly.
-
- Attributes:
- selected: Item of repeat-after-days that is currently selected. Notifies.
-
- Events:
- None.
-
- Methods:
- None.
--->
-
-<dom-module id="repeat-after-days-sk">
- <style>
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- iron-selector.short-field > div {
- width: 5em;
- }
- </style>
- <template>
- <table>
- <tr>
- <td>
- <iron-selector attr-for-selected="name" selected="{{selected}}" class="short-field">
- <div name="0">0</div>
- <div name="1">1</div>
- <div name="2">2</div>
- <div name="7">7</div>
- </iron-selector>
- </td>
- <td>
- Never repeat <br/>
- Repeat daily <br/>
- Repeat every other day <br/>
- Repeat weekly <br/>
- </td>
- </tr>
- </table>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "repeat-after-days-sk",
- properties: {
- selected: {
- type: String,
- value: '0', // Select no repeats by default.
- },
- },
- });
-</script>
diff --git a/ct/res/imp/skp-repository-selector-sk.html b/ct/res/imp/skp-repository-selector-sk.html
deleted file mode 100644
index bf23641..0000000
--- a/ct/res/imp/skp-repository-selector-sk.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--
- The <skp-repository-selector-sk> custom element declaration. Displays an iron-selector allowing
- the user to choose among the available SKP repositories.
-
- Attributes:
- skpRepositories: array of objects as obtained via ctfe.skpRepositories.getRepositories. Must be
- set.
- selected: Item of skpRepositories that is currently selected. Notifies.
-
- Events:
- None.
-
- Methods:
- selectFirst: Causes the first repository in skpRepositories to be selected.
--->
-
-<dom-module id="skp-repository-selector-sk">
- <style>
- .iron-selected {
- background-color: #D6ECF2;
- }
-
- iron-selector.long-field > div {
- width: 40em;
- }
- </style>
- <template>
- <iron-selector selected="{{selectedIndex}}" class="long-field">
- <template is="dom-repeat" items="{{skpRepositories}}">
- <div>{{getDescription(item)}}</div>
- </template>
- </iron-selector>
- </template>
-</dom-module>
-
-<script>
- Polymer({
- is: "skp-repository-selector-sk",
- properties: {
- skpRepositories: Array,
- selectedIndex: {
- type: String,
- },
- selected: {
- type: Object,
- notify: true,
- computed: "getRepository(skpRepositories, selectedIndex)",
- },
- },
-
- getRepository: function(skpRepositories, selectedIndex) {
- return skpRepositories[selectedIndex];
- },
-
- selectFirst: function() {
- if (this.skpRepositories.length > 0) {
- this.selectedIndex = "0";
- }
- },
-
- getDescription: ctfe.skpRepositories.getDescription,
- });
-</script>
diff --git a/ct/templates/admin_tasks.html b/ct/templates/admin_tasks.html
deleted file mode 100644
index 2bb0039..0000000
--- a/ct/templates/admin_tasks.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Admin Tasks</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section class="left_padded">
- <h2>Run Admin Tasks</h2>
- <p>
- <span style="text-align: center;">
- Must be admin to trigger below admin tasks (contact rmistry@).
- </span>
- </p>
- <br/><br/>
- <admin-tasks-sk></admin-tasks-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- <script type="text/javascript" charset="utf-8">
- (function() {
- ctfe.pageSets.getPageSets().then(function(pageSets) {
- $$$('admin-tasks-sk').pageSets = pageSets;
- }).catch(sk.errorMessage);
- ctfe.chromiumBuild.getBuilds().then(function (builds) {
- $$$('admin-tasks-sk').chromiumBuilds = builds;
- }).catch(sk.errorMessage);
- })();
- </script>
-
- </body>
-</html>
diff --git a/ct/templates/capture_skp_runs_history.html b/ct/templates/capture_skp_runs_history.html
deleted file mode 100644
index c958b0e..0000000
--- a/ct/templates/capture_skp_runs_history.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Capture SkPictures Runs</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section class="left_padded">
- <capture-skp-runs-sk></capture-skp-runs-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/capture_skps.html b/ct/templates/capture_skps.html
deleted file mode 100644
index 7057c15..0000000
--- a/ct/templates/capture_skps.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Capture SkPictures</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section class="left_padded">
- <h2>Capture SKPs</h2>
- <capture-skps-sk></capture-skps-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- <script type="text/javascript" charset="utf-8">
- (function() {
- ctfe.pageSets.getPageSets().then(function(pageSets) {
- $$$('capture-skps-sk').pageSets = pageSets;
- }).catch(sk.errorMessage);
- ctfe.chromiumBuild.getBuilds().then(function (builds) {
- $$$('capture-skps-sk').chromiumBuilds = builds;
- }).catch(sk.errorMessage);
- })();
- </script>
-
- </body>
-</html>
diff --git a/ct/templates/chromium_analysis.html b/ct/templates/chromium_analysis.html
deleted file mode 100644
index e3aaf63..0000000
--- a/ct/templates/chromium_analysis.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Chromium Analysis</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section id=chromium_analysis class="left_padded">
- <h2>Get data for analysis using Chromium / Telemetry patches</h2>
- <p>
- <span style="text-align: center;">
- Read <a href="https://docs.google.com/a/chromium.org/document/d/1GhqosQcwsy6F-eBAmFn_ITDF7_Iv_rY9FhCKwAnk9qQ/edit?pli=1#heading=h.lgvqzgu7bc4d" target="_blank">this</a> for an explanation of CT's accuracy of results.
- </span>
- </p>
- <br/><br/>
- <chromium-analysis-sk id="chromium_analysis"></chromium-analysis-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- <script type="text/javascript" charset="utf-8">
- (function() {
- sk.post('/_/benchmarks_platforms/').then(JSON.parse).then(function(json) {
- $$$('chromium-analysis-sk').benchmarksToDoc = json["benchmarks"];
- $$$('chromium-analysis-sk').benchmarks = Object.keys(json["benchmarks"]);
- $$$('chromium-analysis-sk').platformsToDesc = json["platforms"];
- $$$('chromium-analysis-sk').platforms = Object.keys(json["platforms"]);
- }).catch(sk.errorMessage);
- sk.get('/_/task_priorities/').then(JSON.parse).then(function(json) {
- $$$('chromium-analysis-sk').taskPrioritiesToDesc = json["task_priorities"];
- $$$('chromium-analysis-sk').taskPriorities = Object.keys(json["task_priorities"]);
- }).catch(sk.errorMessage);
- ctfe.pageSets.getPageSets().then(function(pageSets) {
- $$$('chromium-analysis-sk').pageSets = pageSets;
- }).catch(sk.errorMessage);
- })();
- </script>
-
- </body>
-</html>
diff --git a/ct/templates/chromium_analysis_runs_history.html b/ct/templates/chromium_analysis_runs_history.html
deleted file mode 100644
index b111319..0000000
--- a/ct/templates/chromium_analysis_runs_history.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Chromium Analysis Runs</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section id=chromium_analysis_runs_history class="left_padded">
- <chromium-analysis-runs-sk id="chromium_analysis_runs"></chromium-analysis-runs-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/chromium_build_runs_history.html b/ct/templates/chromium_build_runs_history.html
deleted file mode 100644
index 7f5aaec..0000000
--- a/ct/templates/chromium_build_runs_history.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Chromium Builds Runs</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section class="left_padded">
- <chromium-build-runs-sk></chromium-build-runs-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/chromium_builds.html b/ct/templates/chromium_builds.html
deleted file mode 100644
index 2a3e345..0000000
--- a/ct/templates/chromium_builds.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Chromium Builds</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section class="left_padded">
- <h2>Add a New Chromium Build</h2>
- <chromium-builds-sk></chromium-builds-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
- </body>
-</html>
diff --git a/ct/templates/chromium_perf.html b/ct/templates/chromium_perf.html
deleted file mode 100644
index 8b8277e..0000000
--- a/ct/templates/chromium_perf.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Chromium Perf</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section id=chromium_perf class="left_padded">
- <h2>Test performance of Chromium / Skia patches on the top 10k webpages</h2>
- <p>
- <span style="text-align: center;">
- Read <a href="https://docs.google.com/a/chromium.org/document/d/1GhqosQcwsy6F-eBAmFn_ITDF7_Iv_rY9FhCKwAnk9qQ/edit?pli=1#heading=h.lgvqzgu7bc4d" target="_blank">this</a> for an explanation of CT's accuracy of results.
- </span>
- </p>
- <br/><br/>
- <chromium-perf-sk id="chromium_perf"></chromium-perf-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- <script type="text/javascript" charset="utf-8">
- (function() {
- sk.post('/_/benchmarks_platforms/').then(JSON.parse).then(function(json) {
- $$$('chromium-perf-sk').benchmarksToDoc = json["benchmarks"];
- $$$('chromium-perf-sk').benchmarks = Object.keys(json["benchmarks"]);
- $$$('chromium-perf-sk').platformsToDesc = json["platforms"];
- $$$('chromium-perf-sk').platforms = Object.keys(json["platforms"]);
- }).catch(sk.errorMessage);
- sk.get('/_/task_priorities/').then(JSON.parse).then(function(json) {
- $$$('chromium-perf-sk').taskPrioritiesToDesc = json["task_priorities"];
- $$$('chromium-perf-sk').taskPriorities = Object.keys(json["task_priorities"]);
- }).catch(sk.errorMessage);
- ctfe.pageSets.getPageSets().then(function(pageSets) {
- $$$('chromium-perf-sk').pageSets = pageSets;
- }).catch(sk.errorMessage);
- })();
- </script>
-
- </body>
-</html>
diff --git a/ct/templates/chromium_perf_runs_history.html b/ct/templates/chromium_perf_runs_history.html
deleted file mode 100644
index 8107499..0000000
--- a/ct/templates/chromium_perf_runs_history.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Chromium Perf Runs</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section id=chromium_perf_runs_history class="left_padded">
- <chromium-perf-runs-sk id="chromium_perf_runs"></chromium-perf-runs-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/header.html b/ct/templates/header.html
deleted file mode 100644
index 6037aed..0000000
--- a/ct/templates/header.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<meta charset="utf-8">
-<!--For crbug.com/1022379 -->
-<meta http-equiv="origin-trial" content="Ars5fhxpS37f7qCiMIABqYXblkns0x6lkmbqFSHILsU76tNe12QVepybDjG/Li56paBy3ecTTKWZ1MT8EU37DwkAAABneyJvcmlnaW4iOiJodHRwczovL2N0LnNraWEub3JnOjQ0MyIsImZlYXR1cmUiOiJXZWJDb21wb25lbnRzVjAiLCJleHBpcnkiOjE2MDQ2NzU3MDEsImlzU3ViZG9tYWluIjp0cnVlfQ==">
-<meta name="theme-color" content="#526E9C">
-<link rel="shortcut icon" href="/res/img/favicon.ico" />
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<script src="/res/js/core.js"></script>
-<link href="/res/css/ctfe.css" rel="stylesheet" />
-<link href="/res/vul/elements.html" rel="import" />
-<script>
- // CRDX Feedback button.
- (function(i,s,o,g,r,a,m){i['CrDXObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','https://storage.googleapis.com/crdx-feedback.appspot.com/feedback.js','crdx');
-
- crdx('setFeedbackButtonLink',
- 'https://bugs.chromium.org/p/skia/issues/entry?template=CT');
-</script>
diff --git a/ct/templates/metrics_analysis.html b/ct/templates/metrics_analysis.html
deleted file mode 100644
index 8dd3aa5..0000000
--- a/ct/templates/metrics_analysis.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Metrics Analysis</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section id=metircs_analysis class="left_padded">
- <h2>Metrics analysis on cloud trace URLs</h2>
- <p>
- <span style="text-align: center;">
- Design doc is <a href="https://docs.google.com/document/d/1MY95ULhEuKFznBQpF60_uhdhRco5bWzUVfVTp0M2hDw/edit?ts=5accc1eb#" target="_blank">here</a>.
- </span>
- </p>
- <br/><br/>
- <metrics-analysis-sk id="metrics_analysis"></metrics-analysis-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- <script type="text/javascript" charset="utf-8">
- (function() {
- sk.get('/_/task_priorities/').then(JSON.parse).then(function(json) {
- $$$('metrics-analysis-sk').taskPrioritiesToDesc = json["task_priorities"];
- $$$('metrics-analysis-sk').taskPriorities = Object.keys(json["task_priorities"]);
- }).catch(sk.errorMessage);
- })();
- </script>
-
- </body>
-</html>
diff --git a/ct/templates/metrics_analysis_runs_history.html b/ct/templates/metrics_analysis_runs_history.html
deleted file mode 100644
index a605a5d..0000000
--- a/ct/templates/metrics_analysis_runs_history.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Metrics Analysis Runs</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section id=metrics_analysis_runs_history class="left_padded">
- <metrics-analysis-runs-sk id="metrics_analysis_runs"></metrics-analysis-runs-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/recreate_page_sets_runs_history.html b/ct/templates/recreate_page_sets_runs_history.html
deleted file mode 100644
index 22ca774..0000000
--- a/ct/templates/recreate_page_sets_runs_history.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Recreate Page Sets Task Runs</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section class="left_padded">
- <admin-task-runs-sk url="/_/get_recreate_page_sets_tasks"
- delete-url="/_/delete_recreate_page_sets_task"
- redo-url="/_/redo_recreate_page_sets_task"
- task-type="RecreatePageSets">
- </admin-task-runs-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/recreate_webpage_archives_runs_history.html b/ct/templates/recreate_webpage_archives_runs_history.html
deleted file mode 100644
index 3bfe051..0000000
--- a/ct/templates/recreate_webpage_archives_runs_history.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Recreate Webpage Archives Task Runs</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section class="left_padded">
- <admin-task-runs-sk url="/_/get_recreate_webpage_archives_tasks"
- delete-url="/_/delete_recreate_webpage_archives_task"
- redo-url="/_/redo_recreate_webpage_archives_task"
- task-type="RecreateWebpageArchives">
- </admin-task-runs-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- <paper-toast id="confirm_toast" duration="5000"></paper-toast>
- <error-toast-sk></error-toast-sk>
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/runs_history.html b/ct/templates/runs_history.html
deleted file mode 100644
index 80bb6f7..0000000
--- a/ct/templates/runs_history.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Runs History</title>
- {{template "header.html" .}}
- </head>
- <body>
-
- <paper-header-panel class="fit">
-
- {{template "titlebar.html" .}}
-
- <div class="content">
- <paper-drawer-panel>
- <div drawer>
- <drawer-sk></drawer-sk>
- </div>
- <div main class="scrollable">
- <section id=runs_history class="left_padded top_padded">
- <h4>View the runs of the following CT tasks</h4>
- <ul>
- <li><a href="/chromium_perf_runs/">Chromium Perf Runs</a></li>
- <li><a href="/chromium_analysis_runs/">Chromium Analysis Runs</a></li>
- <li><a href="/metrics_analysis_runs/">Metrics Analysis Runs</a></li>
- <li><a href="/capture_skp_runs/">Capture SKP Runs</a></li>
- <li><a href="/chromium_builds_runs/">Chromium Builds Runs</a></li>
- <li><a href="/recreate_page_sets_runs/">Recreate Page Sets Task Runs</a></li>
- <li><a href="/recreate_webpage_archives_runs/">Recreate Webpage Archives Task Runs</a></li>
- </ul>
- <br/><br/>
- <ct-runs-summary-sk></ct-runs-summary-sk>
- </section>
- </div>
- </paper-drawer-panel>
- </div>
-
- </paper-header-panel>
-
- </body>
-</html>
diff --git a/ct/templates/titlebar.html b/ct/templates/titlebar.html
deleted file mode 100644
index 4de2fc6..0000000
--- a/ct/templates/titlebar.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<paper-toolbar>
- <span class="title">Cluster Telemetry 3.0</span>
- <login-sk></login-sk>
-</paper-toolbar>