Commit 0534ad76 authored by Yipeng Wang's avatar Yipeng Wang Committed by Commit Bot

Reland: [about:credits] Improve compression by sorting licenses

Reverted in: ba3fb344.

Reason for reland: Fixed sort order when two licenses of same length exist.

Restore the alphabetical order in javascript.

Saves around 100k when gzip is used, but only 2k for brotli.
Intention is to have android_webview to use the same copy
of about:credits in a follow-up, in which case this optimization
becomes relevant.

TBR=dbeam@chromium.org
BUG=688077
Change-Id: I085626bc2c81933ae973fb9762b6c3694318855b

Change-Id: I085626bc2c81933ae973fb9762b6c3694318855b
Reviewed-on: https://chromium-review.googlesource.com/490718
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: default avatarRichard Coles <torne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#468402}
parent 29950db4
......@@ -23,6 +23,24 @@ function toggle(o) {
}
document.addEventListener('DOMContentLoaded', function() {
var licenseEls = [].slice.call(document.getElementsByClassName('product'));
licenseEls.sort(function(a, b) {
var nameA = a.getElementsByClassName('title')[0].textContent;
var nameB = b.getElementsByClassName('title')[0].textContent;
if (nameA < nameB) return -1;
if (nameA > nameB) return 1;
return 0;
});
var parentEl = licenseEls[0].parentNode;
parentEl.innerHTML = '';
for (var i = 0; i < licenseEls.length; i++) {
parentEl.appendChild(licenseEls[i]);
}
document.body.hidden = false;
if (cr.isChromeOS) {
var keyboardUtils = document.createElement('script');
keyboardUtils.src = 'chrome://credits/keyboard_utils.js';
......
......@@ -59,7 +59,7 @@ body {
}
</style>
</head>
<body>
<body hidden>
<span class="page-title" style="float:left;">Credits</span>
<a id="print-link" href="#" style="float:right;">Print</a>
<div style="clear:both; overflow:auto;"><!-- Chromium <3s the following projects -->
......@@ -68,4 +68,4 @@ body {
<script src="chrome://resources/js/cr.js"></script>
<script src="chrome://credits/credits.js"></script>
</body>
</html>
</html>
\ No newline at end of file
......@@ -602,8 +602,12 @@ def GenerateCredits(
'license_file': metadata['License File'],
}
entries.append(entry)
# Sort by size in order to improve gzip compression ratio (puts similar
# licenses near each other). The licenses are re-sorted by the JavaScript
# when loaded.
entries.sort(key=lambda entry: (len(entry['content']),
entry['name'], entry['content']))
entries.sort(key=lambda entry: (entry['name'], entry['content']))
entries_contents = '\n'.join([entry['content'] for entry in entries])
file_template = open(file_template_file).read()
template_contents = "<!-- Generated by licenses.py; do not edit. -->"
......
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