// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import {decorate} from 'chrome://resources/js/cr/ui.m.js';

import {BrowserBridge} from './browser_bridge.js';
import {makeInfoView} from './info_view.js';

// Injected script from C++ or test environments may reference `browserBridge`
// as a property of the global object.
window.browserBridge = new BrowserBridge;

/**
 * Main entry point. called once the page has loaded.
 */
function onLoad() {
  // Create the views.
  decorate('#info-view', makeInfoView(window.browserBridge));

  // Because of inherent raciness (between the deprecated DevTools API which
  // telemtry uses to drive the relevant tests, and the asynchronous loading of
  // JS modules like this one) it's possible for telemetry tests to inject code
  // *before* `browserBridge` is set and the DOM is populated. This flag is used
  // to synchronize script injection by tests to prevent such races.
  window.gpuPagePopulated = true;
}

document.addEventListener('DOMContentLoaded', onLoad);
