lighthouse 8.6.0-dev.20211101 → 8.6.0-dev.20211102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/report/flow.js +13 -13
  2. package/dist/report/standalone.js +11 -11
  3. package/flow-report/.eslintrc.cjs +2 -0
  4. package/flow-report/assets/styles.css +1 -1
  5. package/flow-report/src/common.tsx +11 -4
  6. package/flow-report/src/i18n/i18n.tsx +10 -6
  7. package/flow-report/src/icons.tsx +21 -9
  8. package/flow-report/src/sidebar/sidebar.tsx +9 -3
  9. package/flow-report/src/summary/category.tsx +7 -2
  10. package/flow-report/src/summary/summary.tsx +9 -3
  11. package/flow-report/src/util.ts +21 -9
  12. package/flow-report/src/wrappers/report-renderer.tsx +9 -3
  13. package/flow-report/src/wrappers/report.tsx +7 -2
  14. package/flow-report/test/setup/env-setup.ts +1 -1
  15. package/lighthouse-cli/.eslintrc.cjs +2 -0
  16. package/lighthouse-cli/cli-flags.js +1 -1
  17. package/lighthouse-core/audits/audit.js +1 -1
  18. package/lighthouse-core/computed/resource-summary.js +1 -1
  19. package/lighthouse-core/config/default-config.js +0 -2
  20. package/lighthouse-core/gather/connections/cri.js +1 -1
  21. package/lighthouse-core/lib/proto-preprocessor.js +14 -2
  22. package/lighthouse-core/lib/url-shim.js +1 -1
  23. package/lighthouse-core/util-commonjs.js +24 -9
  24. package/package.json +3 -3
  25. package/report/.eslintrc.cjs +2 -0
  26. package/report/assets/styles.css +226 -250
  27. package/report/assets/templates.html +19 -29
  28. package/report/renderer/category-renderer.js +21 -17
  29. package/report/renderer/components.js +21 -54
  30. package/report/renderer/crc-details-renderer.js +15 -12
  31. package/report/renderer/open-tab.js +9 -3
  32. package/report/renderer/performance-category-renderer.js +31 -19
  33. package/report/renderer/report-renderer.js +2 -1
  34. package/report/renderer/report-ui-features.js +2 -3
  35. package/report/renderer/util.js +25 -9
  36. package/report/test/renderer/category-renderer-test.js +2 -2
  37. package/report/test/renderer/performance-category-renderer-test.js +1 -1
  38. package/report/test/renderer/report-ui-features-test.js +7 -9
  39. package/report/test-assets/faux-psi.js +5 -5
  40. package/shared/localization/locales/ar-XB.json +0 -15
  41. package/shared/localization/locales/ar.json +0 -15
  42. package/shared/localization/locales/bg.json +0 -15
  43. package/shared/localization/locales/ca.json +0 -15
  44. package/shared/localization/locales/cs.json +0 -15
  45. package/shared/localization/locales/da.json +0 -15
  46. package/shared/localization/locales/de.json +0 -15
  47. package/shared/localization/locales/el.json +0 -15
  48. package/shared/localization/locales/en-GB.json +0 -15
  49. package/shared/localization/locales/en-US.json +18 -15
  50. package/shared/localization/locales/en-XA.json +0 -15
  51. package/shared/localization/locales/en-XL.json +18 -15
  52. package/shared/localization/locales/es-419.json +0 -15
  53. package/shared/localization/locales/es.json +0 -15
  54. package/shared/localization/locales/fi.json +0 -15
  55. package/shared/localization/locales/fil.json +0 -15
  56. package/shared/localization/locales/fr.json +0 -15
  57. package/shared/localization/locales/he.json +0 -15
  58. package/shared/localization/locales/hi.json +0 -15
  59. package/shared/localization/locales/hr.json +0 -15
  60. package/shared/localization/locales/hu.json +0 -15
  61. package/shared/localization/locales/id.json +0 -15
  62. package/shared/localization/locales/it.json +0 -15
  63. package/shared/localization/locales/ja.json +0 -15
  64. package/shared/localization/locales/ko.json +0 -15
  65. package/shared/localization/locales/lt.json +0 -15
  66. package/shared/localization/locales/lv.json +0 -15
  67. package/shared/localization/locales/nl.json +0 -15
  68. package/shared/localization/locales/no.json +0 -15
  69. package/shared/localization/locales/pl.json +0 -15
  70. package/shared/localization/locales/pt-PT.json +0 -15
  71. package/shared/localization/locales/pt.json +0 -15
  72. package/shared/localization/locales/ro.json +0 -15
  73. package/shared/localization/locales/ru.json +0 -15
  74. package/shared/localization/locales/sk.json +0 -15
  75. package/shared/localization/locales/sl.json +0 -15
  76. package/shared/localization/locales/sr-Latn.json +0 -15
  77. package/shared/localization/locales/sr.json +0 -15
  78. package/shared/localization/locales/sv.json +0 -15
  79. package/shared/localization/locales/ta.json +0 -15
  80. package/shared/localization/locales/te.json +0 -15
  81. package/shared/localization/locales/th.json +0 -15
  82. package/shared/localization/locales/tr.json +0 -15
  83. package/shared/localization/locales/uk.json +0 -15
  84. package/shared/localization/locales/vi.json +0 -15
  85. package/shared/localization/locales/zh-HK.json +0 -15
  86. package/shared/localization/locales/zh-TW.json +0 -15
  87. package/shared/localization/locales/zh.json +0 -15
  88. package/lighthouse-core/audits/dobetterweb/external-anchors-use-rel-noopener.js +0 -96
@@ -52,8 +52,9 @@ limitations under the License.
52
52
 
53
53
  <!-- Lighthouse clump -->
54
54
  <template id="clump">
55
+ <div class="lh-audit-group">
55
56
  <!-- TODO: group classes shouldn't be reused for clumps. -->
56
- <details class="lh-clump lh-audit-group">
57
+ <details class="lh-clump">
57
58
  <summary>
58
59
  <div class="lh-audit-group__summary">
59
60
  <div class="lh-audit-group__header">
@@ -62,27 +63,13 @@ limitations under the License.
62
63
  <!-- .lh-audit-group__description will be added here -->
63
64
  <!-- .lh-metrics-toggle will be added here -->
64
65
  </div>
66
+ <div class="lh-clump-toggle">
67
+ <span class="lh-clump-toggletext--show"></span>
68
+ <span class="lh-clump-toggletext--hide"></span>
69
+ </div>
65
70
  </div>
66
71
  </summary>
67
72
  </details>
68
- </template>
69
-
70
- <!-- Lighthouse metrics toggle -->
71
- <template id="metricsToggle">
72
- <div class="lh-metrics-toggle">
73
- <input class="lh-metrics-toggle__input" type="checkbox" id="toggle-metric-descriptions" aria-label="Toggle the display of metric descriptions">
74
- <label class="lh-metrics-toggle__label" for="toggle-metric-descriptions">
75
- <div class="lh-metrics-toggle__icon lh-metrics-toggle__icon--less" aria-hidden="true">
76
- <svg width="24" height="24" viewBox="0 0 24 24">
77
- <path class="lh-metrics-toggle__lines" d="M4 9h16v2H4zm0 4h10v2H4z" />
78
- </svg>
79
- </div>
80
- <div class="lh-metrics-toggle__icon lh-metrics-toggle__icon--more" aria-hidden="true">
81
- <svg width="24" height="24" viewBox="0 0 24 24">
82
- <path class="lh-metrics-toggle__lines" d="M3 18h12v-2H3v2zM3 6v2h18V6H3zm0 7h18v-2H3v2z" />
83
- </svg>
84
- </div>
85
- </label>
86
73
  </div>
87
74
  </template>
88
75
 
@@ -123,7 +110,7 @@ limitations under the License.
123
110
  <div class="lh-audit lh-audit--load-opportunity">
124
111
  <details class="lh-expandable-details">
125
112
  <summary>
126
- <div class="lh-audit__header lh-expandable-details__summary">
113
+ <div class="lh-audit__header">
127
114
  <div class="lh-load-opportunity__cols">
128
115
  <div class="lh-load-opportunity__col lh-load-opportunity__col--one">
129
116
  <span class="lh-audit__score-icon"></span>
@@ -159,14 +146,14 @@ limitations under the License.
159
146
  .lh-scores-container {
160
147
  display: flex;
161
148
  flex-direction: column;
162
- padding: var(--scores-container-padding);
149
+ padding: var(--default-padding) 0;
163
150
  position: relative;
164
151
  width: 100%;
165
152
  }
166
153
 
167
154
  .lh-sticky-header {
168
155
  --gauge-circle-size: var(--gauge-circle-size-sm);
169
- --plugin-badge-size: 18px;
156
+ --plugin-badge-size: 16px;
170
157
  --plugin-icon-size: 75%;
171
158
  --gauge-wrapper-width: 60px;
172
159
  --gauge-percentage-font-size: 13px;
@@ -174,7 +161,7 @@ limitations under the License.
174
161
  left: 0;
175
162
  right: 0;
176
163
  top: var(--topbar-height);
177
- font-weight: 700;
164
+ font-weight: 500;
178
165
  display: none;
179
166
  justify-content: center;
180
167
  background-color: var(--sticky-header-background-color);
@@ -242,8 +229,10 @@ limitations under the License.
242
229
  display: flex;
243
230
  align-items: center;
244
231
  height: var(--topbar-height);
245
- background-color: var(--topbar-background-color);
246
232
  padding: var(--topbar-padding);
233
+ font-size: var(--report-font-size-secondary);
234
+ background-color: var(--topbar-background-color);
235
+ border-bottom: 1px solid var(--color-gray-200);
247
236
  }
248
237
 
249
238
  .lh-topbar__logo {
@@ -315,7 +304,7 @@ limitations under the License.
315
304
  color: currentColor;
316
305
  text-decoration: none;
317
306
  white-space: nowrap;
318
- padding: 0 12px;
307
+ padding: 0 6px;
319
308
  line-height: 2;
320
309
  }
321
310
  .lh-tools__dropdown a:hover,
@@ -345,13 +334,15 @@ limitations under the License.
345
334
  max-width: 200px;
346
335
  }
347
336
  .lh-button.lh-tool-locale__button {
348
- height: unset;
337
+ height: var(--topbar-height);
349
338
  color: var(--tools-icon-color);
339
+ padding: calc(var(--default-padding) / 2);
350
340
  }
351
341
  .lh-tool-locale__button.lh-active + .lh-tools-locale__selector-wrapper {
352
342
  opacity: 1;
353
343
  clip: rect(-1px, 194px, 242px, -3px);
354
344
  visibility: visible;
345
+ margin: 0 4px;
355
346
  }
356
347
 
357
348
  @media screen and (max-width: 964px) {
@@ -521,7 +512,7 @@ limitations under the License.
521
512
  <style>
522
513
  .lh-footer {
523
514
  padding: var(--footer-padding-vertical) calc(var(--default-padding) * 2);
524
- max-width: var(--report-width);
515
+ max-width: var(--report-content-width);
525
516
  margin: 0 auto;
526
517
  }
527
518
  .lh-footer .lh-generated {
@@ -739,10 +730,9 @@ limitations under the License.
739
730
  <template id="3pFilter">
740
731
  <style>
741
732
  .lh-3p-filter {
742
- background-color: var(--table-higlight-background-color);
743
733
  color: var(--color-gray-600);
744
734
  float: right;
745
- padding: 6px;
735
+ padding: 6px var(--stackpack-padding-horizontal);
746
736
  }
747
737
  .lh-3p-filter-label, .lh-3p-filter-input {
748
738
  vertical-align: middle;
@@ -222,7 +222,7 @@ export class CategoryRenderer {
222
222
  * Renders the group container for a group of audits. Individual audit elements can be added
223
223
  * directly to the returned element.
224
224
  * @param {LH.Result.ReportGroup} group
225
- * @return {Element}
225
+ * @return {[Element, Element | null]}
226
226
  */
227
227
  renderAuditGroup(group) {
228
228
  const groupEl = this.dom.createElement('div', 'lh-audit-group');
@@ -231,14 +231,16 @@ export class CategoryRenderer {
231
231
 
232
232
  this.dom.createChildOf(auditGroupHeader, 'span', 'lh-audit-group__title')
233
233
  .textContent = group.title;
234
+ groupEl.appendChild(auditGroupHeader);
235
+
236
+ let footerEl = null;
234
237
  if (group.description) {
235
- const descriptionEl = this.dom.convertMarkdownLinkSnippets(group.description);
236
- descriptionEl.classList.add('lh-audit-group__description');
237
- auditGroupHeader.appendChild(descriptionEl);
238
+ footerEl = this.dom.convertMarkdownLinkSnippets(group.description);
239
+ footerEl.classList.add('lh-audit-group__description', 'lh-audit-group__footer');
240
+ groupEl.appendChild(footerEl);
238
241
  }
239
- groupEl.appendChild(auditGroupHeader);
240
242
 
241
- return groupEl;
243
+ return [groupEl, footerEl];
242
244
  }
243
245
 
244
246
  /**
@@ -278,9 +280,9 @@ export class CategoryRenderer {
278
280
 
279
281
  // Push grouped audits as a group.
280
282
  const groupDef = groupDefinitions[groupId];
281
- const auditGroupElem = this.renderAuditGroup(groupDef);
283
+ const [auditGroupElem, auditGroupFooterEl] = this.renderAuditGroup(groupDef);
282
284
  for (const auditRef of groupAuditRefs) {
283
- auditGroupElem.appendChild(this.renderAudit(auditRef));
285
+ auditGroupElem.insertBefore(this.renderAudit(auditRef), auditGroupFooterEl);
284
286
  }
285
287
  auditGroupElem.classList.add(`lh-audit-group--${groupId}`);
286
288
  auditElements.push(auditGroupElem);
@@ -318,17 +320,9 @@ export class CategoryRenderer {
318
320
  clumpElement.setAttribute('open', '');
319
321
  }
320
322
 
321
- const summaryInnerEl = this.dom.find('div.lh-audit-group__summary', clumpElement);
322
- summaryInnerEl.appendChild(this._createChevron());
323
-
324
323
  const headerEl = this.dom.find('.lh-audit-group__header', clumpElement);
325
324
  const title = this._clumpTitles[clumpId];
326
325
  this.dom.find('.lh-audit-group__title', headerEl).textContent = title;
327
- if (description) {
328
- const descriptionEl = this.dom.convertMarkdownLinkSnippets(description);
329
- descriptionEl.classList.add('lh-audit-group__description');
330
- headerEl.appendChild(descriptionEl);
331
- }
332
326
 
333
327
  const itemCountEl = this.dom.find('.lh-audit-group__itemcount', clumpElement);
334
328
  itemCountEl.textContent = `(${auditRefs.length})`;
@@ -337,8 +331,18 @@ export class CategoryRenderer {
337
331
  const auditElements = auditRefs.map(this.renderAudit.bind(this));
338
332
  clumpElement.append(...auditElements);
339
333
 
334
+ const el = this.dom.find('.lh-audit-group', clumpComponent);
335
+ if (description) {
336
+ const descriptionEl = this.dom.convertMarkdownLinkSnippets(description);
337
+ descriptionEl.classList.add('lh-audit-group__description', 'lh-audit-group__footer');
338
+ el.appendChild(descriptionEl);
339
+ }
340
+
341
+ this.dom.find('.lh-clump-toggletext--show', el).textContent = Util.i18n.strings.show;
342
+ this.dom.find('.lh-clump-toggletext--hide', el).textContent = Util.i18n.strings.hide;
343
+
340
344
  clumpElement.classList.add(`lh-clump--${clumpId.toLowerCase()}`);
341
- return clumpElement;
345
+ return el;
342
346
  }
343
347
 
344
348
  /**