1 // Copyright 2016 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_INSPECTEDCONTEXT_H_ 6 #define V8_INSPECTOR_INSPECTEDCONTEXT_H_ 7 8 #include "src/base/macros.h" 9 #include "src/inspector/string-16.h" 10 11 #include "include/v8.h" 12 13 namespace v8_inspector { 14 15 class InjectedScript; 16 class InjectedScriptHost; 17 class V8ContextInfo; 18 class V8InspectorImpl; 19 20 class InspectedContext { 21 public: 22 ~InspectedContext(); 23 24 v8::Local<v8::Context> context() const; contextId()25 int contextId() const { return m_contextId; } contextGroupId()26 int contextGroupId() const { return m_contextGroupId; } origin()27 String16 origin() const { return m_origin; } humanReadableName()28 String16 humanReadableName() const { return m_humanReadableName; } auxData()29 String16 auxData() const { return m_auxData; } 30 isReported()31 bool isReported() const { return m_reported; } setReported(bool reported)32 void setReported(bool reported) { m_reported = reported; } 33 34 v8::Isolate* isolate() const; inspector()35 V8InspectorImpl* inspector() const { return m_inspector; } 36 getInjectedScript()37 InjectedScript* getInjectedScript() { return m_injectedScript.get(); } 38 bool createInjectedScript(); 39 void discardInjectedScript(); 40 41 private: 42 friend class V8InspectorImpl; 43 InspectedContext(V8InspectorImpl*, const V8ContextInfo&, int contextId); 44 45 V8InspectorImpl* m_inspector; 46 v8::Global<v8::Context> m_context; 47 int m_contextId; 48 int m_contextGroupId; 49 const String16 m_origin; 50 const String16 m_humanReadableName; 51 const String16 m_auxData; 52 bool m_reported; 53 std::unique_ptr<InjectedScript> m_injectedScript; 54 v8::Global<v8::Object> m_console; 55 56 DISALLOW_COPY_AND_ASSIGN(InspectedContext); 57 }; 58 59 } // namespace v8_inspector 60 61 #endif // V8_INSPECTOR_INSPECTEDCONTEXT_H_ 62