// Copyright (c) 2012 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.

#ifndef CONTENT_PUBLIC_COMMON_BINDINGS_POLICY_H_
#define CONTENT_PUBLIC_COMMON_BINDINGS_POLICY_H_

namespace content {

// This enum specifies flag values for the types of JavaScript bindings exposed
// to renderers.
enum BindingsPolicy {
  // HTML-based UI bindings that allows the JS content to send JSON-encoded
  // data back to the browser process.
  BINDINGS_POLICY_WEB_UI = 1 << 0,
  // DOM automation bindings that allows the JS content to send JSON-encoded
  // data back to automation in the parent process.  (By default this isn't
  // allowed unless the app has been started up with the --dom-automation
  // switch.)
  BINDINGS_POLICY_DOM_AUTOMATION = 1 << 1,
  // Bindings that allows the JS content to retrieve a variety of internal
  // metrics. (By default this isn't allowed unless the app has been started up
  // with the --enable-stats-collection-bindings switch.)
  BINDINGS_POLICY_STATS_COLLECTION = 1 << 2,
  // Bindings that allows the JS content to access Mojo system API and
  // ServiceRegistry modules. The system API modules are defined in
  // //mojo/public/js and provide the ability to create Mojo primitives such as
  // message and data pipes. The ServiceRegistry module (see
  // //content/renderer/mojo/service_registry_js_wrapper.h) in turn allows these
  // Mojo primitives to be used to connect to named services exposed either by
  // the browser or testing code. These bindings should not be exposed to
  // normal web contents and are intended only for use with WebUI and layout
  // tests.
  BINDINGS_POLICY_MOJO = 1 << 3,
  // Bindings that allows main world JS content within a HeadlessWebContents to
  // access the headless::TabSocket API.
  BINDINGS_POLICY_HEADLESS_MAIN_WORLD = 1 << 4,
  // Similar to BINDINGS_POLICY_HEADLESS_MAIN_WORLD except it's intended allow
  // access only from within DevTools created isolated worlds.
  BINDINGS_POLICY_HEADLESS_ISOLATED_WORLD = 1 << 5,
};
}

#endif  // CONTENT_PUBLIC_COMMON_BINDINGS_POLICY_H_
