Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { BANDWIDTH } from "chrome://browser/content/ipprotection/ipprotection-constants.mjs";
/**
* Formats remaining bandwidth bytes into a rounded value with a unit indicator.
*
* @param {number} remainingBytes - Remaining bandwidth in bytes.
* @returns {{ value: number, useGB: boolean }}
* `value` is the remaining amount rounded to the nearest 0.1 GB (when >= 1 GB)
* or floored to the nearest MB (when < 1 GB). `useGB` indicates whether the
* value is in GB (true) or MB (false).
*/
export function formatRemainingBandwidth(remainingBytes) {
const remainingGB = remainingBytes / BANDWIDTH.BYTES_IN_GB;
if (remainingGB < 1) {
return {
value: Math.floor(remainingBytes / BANDWIDTH.BYTES_IN_MB),
useGB: false,
};
}
return { value: parseFloat(remainingGB.toFixed(1)), useGB: true };
}