async function load()

in frontend/src/index.js [226:282]


async function load() {
  const route = readRoute();

  // Reset display, dom-safe
  hide("history");
  hide("output");
  message(
    "loading",
    "Loading coverage data for " +
      (route.path || "mozilla-central") +
      " @ " +
      (route.revision || REV_LATEST),
  );

  // Load only zero coverage for that specific view
  if (route.view === VIEW_ZERO_COVERAGE) {
    const zeroCoverage = await getZeroCoverageData();
    return {
      view: VIEW_ZERO_COVERAGE,
      path: route.path,
      zeroCoverage,
      route,
    };
  }

  // Default to directory view on home
  if (!route.view) {
    route.view = VIEW_DIRECTORY;
  }

  try {
    const viewContent =
      route.view === VIEW_DIRECTORY
        ? getHistory(route.path, route.platform, route.suite)
        : getSource(route.path, route.revision);
    const [coverage, filters, viewData] = await Promise.all([
      getPathCoverage(route.path, route.revision, route.platform, route.suite),
      getFilters(),
      viewContent,
    ]);

    return {
      view: route.view,
      path: route.path,
      revision: route.revision,
      route,
      coverage,
      filters,
      viewData,
    };
  } catch (err) {
    console.warn("Failed to load coverage", err);
    await DOM_READY; // We want to always display this message
    message("error", "Failed to load coverage: " + err.message);
    throw err;
  }
}