// Copyright 2017 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.

module content.mojom;

import "url/mojom/url.mojom";

// The primordial interface implemented by a render process host. This should be
// used for implementing renderer-to-browser messages.
interface RendererHost {
  // Request a histogram from the browser process. The browser will send the
  // histogram data only if it has been passed the command line flag
  // switches::kStatsCollectionController. This may or may not include
  // histograms and some or all of their data from subprocesses and other
  // sources outside the actual browser process.
  [Sync]
  GetBrowserHistogram(string name) => (string histogram_json);

  // Notify the browser that this render process can or can't be suddenly
  // terminated.
  SuddenTerminationChanged(bool enabled);

  // Sends a string to be recorded by UserMetrics.
  RecordUserMetricsAction(string action);

  // Gets the list of proxies to use for |url|, as a semicolon delimited list
  // of "<TYPE> <HOST>:<PORT>" | "DIRECT".
  [Sync]
  ResolveProxy(url.mojom.Url url) => (string? proxy_list);
};
