Commit 57a4994c authored by Andrew Grieve's avatar Andrew Grieve Committed by Commit Bot

SuperSize: Rename .html files. data_url->load_url. Delete demo.ndjson

Bug: 880671
Change-Id: I5ed6803daf97609fe2814618f51d8199f8c44390
Reviewed-on: https://chromium-review.googlesource.com/1240185
Commit-Queue: agrieve <agrieve@chromium.org>
Reviewed-by: default avatarEric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593558}
parent 9d6c0828
...@@ -291,7 +291,7 @@ def Run(args, parser): ...@@ -291,7 +291,7 @@ def Run(args, parser):
'View using a local server via: ', 'View using a local server via: ',
' %s start_server %s', ' %s start_server %s',
'or upload to the hosted version here:', 'or upload to the hosted version here:',
' https://storage.googleapis.com/chrome-supersize/index.html' ' https://storage.googleapis.com/chrome-supersize/viewer.html'
] ]
supersize_path = os.path.relpath(os.path.join( supersize_path = os.path.relpath(os.path.join(
path_util.SRC_ROOT, 'tools', 'binary_size', 'supersize')) path_util.SRC_ROOT, 'tools', 'binary_size', 'supersize'))
......
...@@ -47,6 +47,7 @@ def Run(args, _parser): ...@@ -47,6 +47,7 @@ def Run(args, _parser):
httpd = BaseHTTPServer.HTTPServer(server_addr, SupersizeHTTPRequestHandler) httpd = BaseHTTPServer.HTTPServer(server_addr, SupersizeHTTPRequestHandler)
sa = httpd.socket.getsockname() sa = httpd.socket.getsockname()
logging.warning('Server ready at http://%s:%d?data_url=data.ndjson', logging.warning(
sa[0], sa[1]) 'Server ready at http://%s:%d/viewer.html?load_url=data.ndjson',
sa[0], sa[1])
httpd.serve_forever() httpd.serve_forever()
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
} }
], ],
"lang": "en", "lang": "en",
"start_url": "index.html", "start_url": "viewer.html",
"background_color": "#fff", "background_color": "#fff",
"display": "standalone", "display": "standalone",
"scope": "./", "scope": "./",
......
<!DOCTYPE html>
<html lang="en">
<!--
Copyright 2018 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.
-->
<head>
<title>Super Size Tiger View</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="#4285f4">
<link href="https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,500" rel="stylesheet">
<link rel="stylesheet" href="main.css">
<link rel="stylesheet" href="options.css">
<style>
body {
grid-template-columns: auto;
grid-template-areas: "appbar" "select";
}
form {
grid-area: 'select';
margin: auto;
}
</style>
<link rel="icon" href="favicon.ico" sizes="16x16 32x32 256x256" type="image/x-icon">
<script>
const DESIRED_CPUS = ['arm', 'arm_64'];
const DESIRED_APKS = ['Monochrome.apk', 'ChromeModern.apk'];
const DESIRED_VERSION = [
'60.0.3112.116',
'61.0.3163.98',
'62.0.3202.84',
'63.0.3239.111',
'64.0.3282.137',
'65.0.3325.85',
'66.0.3359.158',
'67.0.3396.87',
'68.0.3440.70',
];
/**
* @param {string[]} options
*/
function buildOptions(options) {
const fragment = document.createDocumentFragment();
for (const option of options) {
const optionEl = document.createElement('option');
optionEl.value = option;
optionEl.textContent = option;
fragment.appendChild(optionEl);
}
return fragment;
}
/**
* Is `v1` a larger version than `v2`?
* @param {string} v1
* @param {string} v2
*/
function isGreaterOrEqual(v1, v2) {
const [version1] = v1.split('.', 1).map(n => parseInt(n, 10));
const [version2] = v2.split('.', 1).map(n => parseInt(n, 10));
return version1 >= version2;
}
(async () => {
const response = await fetch('milestones/milestones.json');
const {pushed} = await response.json();
if (document.readyState === 'loading') {
await new Promise(resolve => {
document.onreadystatechange = () => {
if (document.readyState !== 'loading') {
resolve();
document.onreadystatechange = null;
}
}
});
}
/** @type {HTMLFormElement} */
const form = document.getElementById('select-form');
const cpu = form.elements.namedItem('cpu');
const apk = form.elements.namedItem('apk');
const version1 = form.elements.namedItem('version1');
const version2 = form.elements.namedItem('version2');
cpu.appendChild(buildOptions(pushed.cpu));
apk.appendChild(buildOptions(pushed.apk));
const versionOptions = buildOptions(pushed.version);
version1.appendChild(versionOptions.cloneNode(true));
version2.appendChild(versionOptions);
const version2Options = version2.querySelectorAll('option');
if (version2Options.length > 1) {
version2Options[1].selected = true;
}
function disableSmallerAfterVersions() {
const newVersion = version1.value;
for (const opt of version2Options) {
opt.disabled = isGreaterOrEqual(newVersion, opt.value);
}
}
disableSmallerAfterVersions();
version1.addEventListener('change', disableSmallerAfterVersions);
form.addEventListener('submit', event => {
event.preventDefault();
const dataUrl = `${cpu.value}/${apk.value}/` +
`report_${version1.value}_${version2.value}.ndjson`;
location.href = `index.html?data_url=milestones/${dataUrl}`;
});
})();
</script>
</head>
<body>
<div class="scrim toggle-options" hidden></div>
<header class="appbar">
<div class="appbar-inner">
<h1 class="headline">Super Size Tiger View</h1>
</div>
</header>
<form id="select-form">
<h2 class="subhead">Select milestones to compare</h2>
<p class="select-wrapper">
<select id="cpu" name="cpu"></select>
<label class="select-label" for="cpu">Architecture</label>
</p>
<p class="select-wrapper">
<select id="apk" name="apk"></select>
<label class="select-label" for="apk">APK</label>
</p>
<p class="select-wrapper">
<select id="version1" name="version1"></select>
<label class="select-label" for="version1">Version 1</label>
</p>
<p class="select-wrapper">
<select id="version2" name="version2"></select>
<label class="select-label" for="version2">Version 2</label>
</p>
<button type="submit" class="text-button filled-button">
Open report
</button>
</form>
</body>
</html>
...@@ -417,7 +417,7 @@ const newTreeElement = (() => { ...@@ -417,7 +417,7 @@ const newTreeElement = (() => {
/** @type {HTMLInputElement} */ /** @type {HTMLInputElement} */
const _fileUpload = document.getElementById('upload'); const _fileUpload = document.getElementById('upload');
/** @type {HTMLInputElement} */ /** @type {HTMLInputElement} */
const _dataUrlInput = form.elements.namedItem('data_url'); const _dataUrlInput = form.elements.namedItem('load_url');
const _progress = new ProgressBar('progress'); const _progress = new ProgressBar('progress');
/** /**
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
importScripts('./shared.js'); importScripts('./shared.js');
const _PATH_SEP = '/'; const _PATH_SEP = '/';
const _DEMO_DATA_URL = 'demo.ndjson';
const _NAMES_TO_FLAGS = Object.freeze({ const _NAMES_TO_FLAGS = Object.freeze({
hot: _FLAGS.HOT, hot: _FLAGS.HOT,
generated: _FLAGS.GENERATED_SOURCE, generated: _FLAGS.GENERATED_SOURCE,
...@@ -600,7 +599,7 @@ class DataFetcher { ...@@ -600,7 +599,7 @@ class DataFetcher {
function parseOptions(options) { function parseOptions(options) {
const params = new URLSearchParams(options); const params = new URLSearchParams(options);
const url = params.get('data_url'); const url = params.get('load_url');
const groupBy = params.get('group_by') || 'source_path'; const groupBy = params.get('group_by') || 'source_path';
const methodCountMode = params.has('method_count'); const methodCountMode = params.has('method_count');
const filterGeneratedFiles = params.has('generated_filter'); const filterGeneratedFiles = params.has('generated_filter');
...@@ -793,19 +792,10 @@ const actions = { ...@@ -793,19 +792,10 @@ const actions = {
/** @param {{input:string|null,options:string}} param0 */ /** @param {{input:string|null,options:string}} param0 */
load({input, options}) { load({input, options}) {
const {groupBy, filterTest, highlightTest, url} = parseOptions(options); const {groupBy, filterTest, highlightTest, url} = parseOptions(options);
if (input === 'from-url://') { if (input === 'from-url://' && url) {
if (url) { // Display the data from the `load_url` query parameter
// Display the data from the `data_url` query parameter console.info('Displaying data from', url);
console.info('Displaying data from', url); fetcher.setInput(url);
fetcher.setInput(url);
} else {
// Display starter content if nothing was specified.
console.info('Displaying demo data');
// The demo file only exists in the GCS bucket where the UI is hosted.
// When using `start_server`, no data is shown until the user uploads
// something.
fetcher.setInput(_DEMO_DATA_URL);
}
} else if (input != null) { } else if (input != null) {
console.info('Displaying uploaded data'); console.info('Displaying uploaded data');
fetcher.setInput(input); fetcher.setInput(input);
......
This diff is collapsed.
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
const cacheName = '{{cache_hash}}'; const cacheName = '{{cache_hash}}';
const filesToCache = [ const filesToCache = [
'favicon.ico', 'favicon.ico',
'index.html', 'viewer.html',
'infocard-ui.js', 'infocard-ui.js',
'infocard.css', 'infocard.css',
'main.css', 'main.css',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment