// Copyright 2016 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 chrome.mojom;

import "components/content_settings/core/common/content_settings.mojom";

// Configures the renderer.
interface RendererConfiguration {
  // Configures the renderer, queued to send when the render process will
  // launch.
  SetInitialConfiguration(bool is_incognito_process);

  // Set the content setting rules stored by the renderer.
  SetContentSettingRules(
      content_settings.mojom.RendererContentSettingRules rules);

  // Tells the renderer to create a FieldTrial, and by using a 100% probability
  // for the FieldTrial, forces the FieldTrial to have assigned group name.
  //
  // See base/metrics/field_trial.h for more information.
  SetFieldTrialGroup(string trial_name, string group_name);
};
