| Index: dashboard/dashboard/elements/pinpoint-perf-job-dialog.html
|
| diff --git a/dashboard/dashboard/elements/pinpoint-perf-job-dialog.html b/dashboard/dashboard/elements/pinpoint-perf-job-dialog.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dc8d7aee1214651ac63c36d56d6409edbbeaf58b
|
| --- /dev/null
|
| +++ b/dashboard/dashboard/elements/pinpoint-perf-job-dialog.html
|
| @@ -0,0 +1,198 @@
|
| +<!DOCTYPE html>
|
| +<!--
|
| +Copyright 2017 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.
|
| +-->
|
| +
|
| +<link rel="import" href="/components/paper-button/paper-button.html">
|
| +<link rel="import" href="/components/paper-checkbox/paper-checkbox.html">
|
| +<link rel="import" href="/components/paper-dialog/paper-dialog.html">
|
| +<link rel="import" href="/components/paper-input/paper-input.html">
|
| +<link rel="import" href="/components/paper-spinner/paper-spinner.html">
|
| +
|
| +<link rel="import" href="/dashboard/static/simple_xhr.html">
|
| +
|
| +<dom-module is="pinpoint-perf-job-dialog">
|
| + <template>
|
| +
|
| + <paper-dialog id="container" autoCloseDisabled="true">
|
| + <!-- Styling for paper-dialog's children. -->
|
| + <style>
|
| + paper-button[dialog-confirm] {
|
| + background: #4285f4;
|
| + color: #fff;
|
| + margin-bottom: 5px;
|
| + }
|
| +
|
| + paper-input {
|
| + width: 400px;
|
| + }
|
| + </style>
|
| +
|
| + <form on-submit="onSendToTrybot">
|
| + <table>
|
| + <tr>
|
| + <td>Record a before/after trace profile.</td>
|
| + </tr>
|
| + <tr>
|
| + <td>Perf try bot:</td>
|
| + <td>
|
| + <paper-input type="text" value="[[bot]]" disabled></paper-input>
|
| + </td>
|
| + </tr>
|
| + <tr>
|
| + <td><paper-checkbox checked="{{useTrace::input}}"></paper-checkbox>Chrome trace <a href="https://cs.chromium.org/chromium/src/base/trace_event/trace_config.h?rcl=c8db6c6371ca047c24d41f3972d5819bc83d83ae&l=125" target="_blank">filter string</a>:</td>
|
| + <td>
|
| + <paper-input value="{{traceCategories::input}}"></paper-input>
|
| + </td>
|
| + </tr>
|
| + <template is="dom-if" if="[[computeIsAndroidBot(bot)]]">
|
| + <tr>
|
| + <td><paper-checkbox checked="{{useAtrace::input}}"></paper-checkbox>Additional atrace categories (comma-separated):</td>
|
| + <td>
|
| + <paper-input value="{{atraceCategories::input}}"></paper-input>
|
| + </td>
|
| + </tr>
|
| + </template>
|
| + <tr>
|
| + <td>Start Commit:</td>
|
| + <td><paper-input id="start_commit" type="text" value="{{startCommit::input}}"></paper-input></td>
|
| + </tr>
|
| + <tr>
|
| + <td>End Commit:</td>
|
| + <td><paper-input id="end_cmmit" type="text" value="{{endCommit::input}}"></paper-input></td>
|
| + </tr>
|
| + </table>
|
| + </form>
|
| +
|
| + <p class="error">{{error}}</p>
|
| +
|
| + <paper-button dialog-confirm raised autofocus disabled$="[[computeHasError(error)]]"
|
| + on-click="onSendToTrybot">Send to Pinpoint</paper-button>
|
| + <paper-button dialog-dismiss raised>Close</paper-button>
|
| +
|
| + <div id="toasts" hidden>
|
| + <div id="jobsubmitted">
|
| + <b>Pinpoint Job submitted!</b>
|
| + <a href="[[lastSubmittedJobUrl]]"
|
| + target="_blank">View job [[lastSubmittedJobId]].</a>
|
| + </div>
|
| + </div>
|
| + </paper-dialog>
|
| +
|
| + </template>
|
| + <script>
|
| + 'use strict';
|
| + (function() {
|
| + Polymer({
|
| + is: 'pinpoint-perf-job-dialog',
|
| + properties: {
|
| + error: {
|
| + type: String,
|
| + value: '',
|
| + },
|
| + startCommit: {
|
| + type: String,
|
| + value: '',
|
| + },
|
| + endCommit: {
|
| + type: String,
|
| + value: '',
|
| + },
|
| + startRepository: {
|
| + type: String,
|
| + value: '',
|
| + },
|
| + endRepository: {
|
| + type: String,
|
| + value: '',
|
| + },
|
| + useTrace: {
|
| + type: Boolean,
|
| + },
|
| + useAtrace: {
|
| + type: Boolean,
|
| + },
|
| + atraceCategories: {
|
| + type: String,
|
| + },
|
| + traceCategories: {
|
| + type: String,
|
| + },
|
| + testPath: {
|
| + type: String,
|
| + value: '',
|
| + },
|
| + xsrfToken: {
|
| + }
|
| + },
|
| +
|
| + computeHasError: errorMessage => !!errorMessage,
|
| + computeIsAndroidBot(bot) {
|
| + return bot.indexOf('android') != -1;
|
| + },
|
| +
|
| + /**
|
| + * Initializes and shows the trace form.
|
| + */
|
| + show() {
|
| + this.open();
|
| +
|
| + this.atraceCategories =
|
| + 'sched,freq,gfx,view,dalvik,webview,input,disk,am,' +
|
| + 'wm,rs,binder_driver';
|
| + this.useAtrace = false;
|
| + this.traceCategories =
|
| + 'toplevel,disabled-by-default-toplevel.flow';
|
| + this.useTrace = true;
|
| + this.bot = this.testPath.split('/')[1];
|
| + },
|
| +
|
| + /**
|
| + * Makes a request to Pinpoint to perform a perf try job.
|
| + */
|
| + async onSendToTrybot(event) {
|
| + const args = [];
|
| + if (this.useTrace) {
|
| + args.push(['--extra-chrome-categories', this.traceCategories]);
|
| + }
|
| + if (this.useAtrace) {
|
| + args.push(['--extra-atrace-categories', this.atraceCategories]);
|
| + }
|
| +
|
| + const params = {
|
| + test_path: this.testPath,
|
| + start_commit: this.startCommit,
|
| + end_commit: this.endCommit,
|
| + start_repository: this.startRepository,
|
| + end_repository: this.endRepository,
|
| + extra_telemetry_args: args
|
| + };
|
| +
|
| + try {
|
| + this.error = '';
|
| + this.create_disabled = true;
|
| + const results = await simple_xhr.asPromise(
|
| + '/pinpoint/new/perf_try', params);
|
| + this.lastSubmittedJobId = results.jobId;
|
| + this.lastSubmittedJobUrl = results.jobUrl;
|
| + this.fire('display-toast', {'content': this.$.jobsubmitted});
|
| + this.close();
|
| + } catch (e) {
|
| + this.error = e;
|
| + }
|
| + this.create_disabled = false;
|
| + },
|
| +
|
| + open() {
|
| + this.$.container.open();
|
| + },
|
| +
|
| + close() {
|
| + this.$.container.close();
|
| + }
|
| + });
|
| + })();
|
| + </script>
|
| +</dom-module>
|
|
|