• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef V8_INSPECTOR_V8_INJECTED_SCRIPT_HOST_H_
6 #define V8_INSPECTOR_V8_INJECTED_SCRIPT_HOST_H_
7 
8 #include "include/v8.h"
9 
10 namespace v8_inspector {
11 
12 class V8InspectorImpl;
13 
14 // SECURITY NOTE: Although the InjectedScriptHost is intended for use solely by
15 // the inspector,
16 // a reference to the InjectedScriptHost may be leaked to the page being
17 // inspected. Thus, the
18 // InjectedScriptHost must never implemment methods that have more power over
19 // the page than the
20 // page already has itself (e.g. origin restriction bypasses).
21 
22 class V8InjectedScriptHost {
23  public:
24   // We expect that debugger outlives any JS context and thus
25   // V8InjectedScriptHost (owned by JS)
26   // is destroyed before inspector.
27   static v8::Local<v8::Object> create(v8::Local<v8::Context>, V8InspectorImpl*);
28 
29  private:
30   static void nullifyPrototypeCallback(
31       const v8::FunctionCallbackInfo<v8::Value>&);
32   static void getPropertyCallback(const v8::FunctionCallbackInfo<v8::Value>&);
33   static void internalConstructorNameCallback(
34       const v8::FunctionCallbackInfo<v8::Value>&);
35   static void formatAccessorsAsProperties(
36       const v8::FunctionCallbackInfo<v8::Value>&);
37   static void subtypeCallback(const v8::FunctionCallbackInfo<v8::Value>&);
38   static void getInternalPropertiesCallback(
39       const v8::FunctionCallbackInfo<v8::Value>&);
40   static void objectHasOwnPropertyCallback(
41       const v8::FunctionCallbackInfo<v8::Value>&);
42   static void bindCallback(const v8::FunctionCallbackInfo<v8::Value>&);
43   static void proxyTargetValueCallback(
44       const v8::FunctionCallbackInfo<v8::Value>&);
45   static void nativeAccessorDescriptorCallback(
46       const v8::FunctionCallbackInfo<v8::Value>&);
47   static void typedArrayPropertiesCallback(
48       const v8::FunctionCallbackInfo<v8::Value>&);
49 };
50 
51 }  // namespace v8_inspector
52 
53 #endif  // V8_INSPECTOR_V8_INJECTED_SCRIPT_HOST_H_
54