summaryrefslogtreecommitdiff
path: root/chromium/content/public/common/bindings_policy.h
blob: 8ae87d2f7872faec68fede599d04f4293de533df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 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_