• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

prebid / Prebid.js / 17802262685

17 Sep 2025 03:13PM UTC coverage: 96.242%. Remained the same
17802262685

push

github

web-flow
feat(resetdigital): include schain in buildRequests payload (#13905)

Add support for passing schain (ORTB2 supply chain object) from
bidderRequest.ortb2.source.ext.schain into the request payload sent
by the ResetDigital adapter. Keeps backward compatibility when schain
is absent.

39849 of 48984 branches covered (81.35%)

16 of 16 new or added lines in 2 files covered. (100.0%)

15 existing lines in 10 files now uncovered.

198147 of 205884 relevant lines covered (96.24%)

124.78 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

83.33
/libraries/timeToFirstBytesUtils/timeToFirstBytesUtils.js
1
/**
2
 * Calculates the Time to First Byte (TTFB) for the given window object.
3
 *
4
 * This function attempts to use the Navigation Timing Level 2 API first, and falls back to
5
 * the Navigation Timing Level 1 API if the former is not available.
6
 *
7
 * @param {Window} win - The window object from which to retrieve performance timing information.
8
 * @returns {string} The TTFB in milliseconds as a string, or an empty string if the TTFB cannot be determined.
9
 */
10
export function getTimeToFirstByte(win) {
11
  const performance = win.performance || win.webkitPerformance || win.msPerformance || win.mozPerformance;
66!
12

13
  const ttfbWithTimingV2 = performance &&
66!
14
        typeof performance.getEntriesByType === 'function' &&
15
        Object.prototype.toString.call(performance.getEntriesByType) === '[object Function]' &&
16
        performance.getEntriesByType('navigation')[0] &&
17
        performance.getEntriesByType('navigation')[0].responseStart &&
18
        performance.getEntriesByType('navigation')[0].requestStart &&
19
        performance.getEntriesByType('navigation')[0].responseStart > 0 &&
20
        performance.getEntriesByType('navigation')[0].requestStart > 0 &&
21
        Math.round(
22
          performance.getEntriesByType('navigation')[0].responseStart - performance.getEntriesByType('navigation')[0].requestStart
23
        );
24

25
  if (ttfbWithTimingV2) {
66!
UNCOV
26
    return ttfbWithTimingV2.toString();
×
27
  }
28

29
  const ttfbWithTimingV1 = performance &&
66✔
30
        performance.timing.responseStart &&
31
        performance.timing.requestStart &&
32
        performance.timing.responseStart > 0 &&
33
        performance.timing.requestStart > 0 &&
34
        performance.timing.responseStart - performance.timing.requestStart;
35

36
  return ttfbWithTimingV1 ? ttfbWithTimingV1.toString() : '';
66!
37
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc