| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 #ifndef InjectedScript_h | 31 #ifndef InjectedScript_h |
| 32 #define InjectedScript_h | 32 #define InjectedScript_h |
| 33 | 33 |
| 34 #include "InspectorTypeBuilder.h" | 34 #include "InspectorTypeBuilder.h" |
| 35 #include "bindings/common/StackTrace.h" |
| 35 #include "bindings/v8/ScriptObject.h" | 36 #include "bindings/v8/ScriptObject.h" |
| 36 #include "core/inspector/InjectedScriptBase.h" | 37 #include "core/inspector/InjectedScriptBase.h" |
| 37 #include "core/inspector/InjectedScriptManager.h" | 38 #include "core/inspector/InjectedScriptManager.h" |
| 38 #include "core/inspector/ScriptArguments.h" | 39 #include "core/inspector/ScriptArguments.h" |
| 39 #include "wtf/Forward.h" | 40 #include "wtf/Forward.h" |
| 40 #include "wtf/Vector.h" | 41 #include "wtf/Vector.h" |
| 41 | 42 |
| 42 namespace WebCore { | 43 namespace WebCore { |
| 43 | 44 |
| 44 class InjectedScriptModule; | 45 class InjectedScriptModule; |
| 45 class Node; | 46 class Node; |
| 46 class SerializedScriptValue; | 47 class SerializedScriptValue; |
| 47 | 48 |
| 48 class InjectedScript FINAL : public InjectedScriptBase { | 49 class InjectedScript : public virtual InjectedScriptBase { |
| 49 public: | 50 public: |
| 50 InjectedScript(); | |
| 51 virtual ~InjectedScript() { } | 51 virtual ~InjectedScript() { } |
| 52 | 52 |
| 53 void evaluate( | 53 virtual void evaluate(ErrorString*, |
| 54 const String& expression, |
| 55 const String& objectGroup, |
| 56 bool includeCommandLineAPI, |
| 57 bool returnByValue, |
| 58 bool generatePreview, |
| 59 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, |
| 60 TypeBuilder::OptOutput<bool>* wasThrown) = 0; |
| 61 virtual void callFunctionOn(ErrorString*, |
| 62 const String& objectId, |
| 63 const String& expression, |
| 64 const String& arguments, |
| 65 bool returnByValue, |
| 66 bool generatePreview, |
| 67 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, |
| 68 TypeBuilder::OptOutput<bool>* wasThrown) = 0; |
| 69 virtual void evaluateOnCallFrame( |
| 70 ErrorString*, |
| 71 const StackTrace& callFrames, |
| 72 const Vector<StackTrace>& asyncCallStacks, |
| 73 const String& callFrameId, |
| 74 const String& expression, |
| 75 const String& objectGroup, |
| 76 bool includeCommandLineAPI, |
| 77 bool returnByValue, |
| 78 bool generatePreview, |
| 79 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, |
| 80 TypeBuilder::OptOutput<bool>* wasThrown) = 0; |
| 81 virtual void getCompletionsOnCallFrame( |
| 82 ErrorString*, |
| 83 const StackTrace& callFrames, |
| 84 const Vector<StackTrace>& asyncCallStacks, |
| 85 const String& callFrameId, |
| 86 const String& expression, |
| 87 RefPtr<TypeBuilder::Array<String> >* result) = 0; |
| 88 virtual void restartFrame(ErrorString*, const StackTrace& callFrames, const
String& callFrameId, RefPtr<JSONObject>* result) = 0; |
| 89 virtual void getStepInPositions(ErrorString*, const StackTrace& callFrames,
const String& callFrameId, RefPtr<TypeBuilder::Array<TypeBuilder::Debugger::Loca
tion> >& positions) = 0; |
| 90 virtual void setVariableValue(ErrorString*, const StackTrace& callFrames, co
nst String* callFrameIdOpt, const String* functionObjectIdOpt, int scopeNumber,
const String& variableName, const String& newValueStr) = 0; |
| 91 virtual void getFunctionDetails(ErrorString*, const String& functionId, RefP
tr<TypeBuilder::Debugger::FunctionDetails>* result) = 0; |
| 92 virtual void getCompletions(ErrorString*, const String& expression, RefPtr<T
ypeBuilder::Array<String> >* result) = 0; |
| 93 virtual void getProperties(ErrorString*, const String& objectId, bool ownPro
perties, bool accessorPropertiesOnly, RefPtr<TypeBuilder::Array<TypeBuilder::Run
time::PropertyDescriptor> >* result) = 0; |
| 94 virtual void getInternalProperties(ErrorString*, const String& objectId, Ref
Ptr<TypeBuilder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor> >* resu
lt) = 0; |
| 95 virtual void getProperty(ErrorString*, const String& objectId, const RefPtr<
JSONArray>& propertyPath, RefPtr<TypeBuilder::Runtime::RemoteObject>* result, Ty
peBuilder::OptOutput<bool>* wasThrown) = 0; |
| 96 |
| 97 virtual Node* nodeForObjectId(const String& objectId) = 0; |
| 98 virtual void releaseObject(const String& objectId) = 0; |
| 99 |
| 100 virtual PassRefPtr<TypeBuilder::Array<TypeBuilder::Debugger::CallFrame> > wr
apCallFrames(const StackTrace&, int asyncOrdinal) = 0; |
| 101 |
| 102 virtual PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapObject(const Scri
ptValue&, const String& groupName, bool generatePreview = false) = 0; |
| 103 virtual PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapTable(const Scrip
tValue& table, const ScriptValue& columns) = 0; |
| 104 |
| 105 virtual ActivationFrame findCallFrameById(ErrorString*, const StackTrace& to
pCallFrame, const String& callFrameId) = 0; |
| 106 |
| 107 virtual void releaseObjectGroup(const String&) = 0; |
| 108 }; |
| 109 |
| 110 class V8InjectedScript FINAL : public V8InjectedScriptBase, public InjectedScrip
t { |
| 111 public: |
| 112 V8InjectedScript(); |
| 113 virtual ~V8InjectedScript() { } |
| 114 |
| 115 virtual void evaluate( |
| 54 ErrorString*, | 116 ErrorString*, |
| 55 const String& expression, | 117 const String& expression, |
| 56 const String& objectGroup, | 118 const String& objectGroup, |
| 57 bool includeCommandLineAPI, | 119 bool includeCommandLineAPI, |
| 58 bool returnByValue, | 120 bool returnByValue, |
| 59 bool generatePreview, | 121 bool generatePreview, |
| 60 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, | 122 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, |
| 61 TypeBuilder::OptOutput<bool>* wasThrown); | 123 TypeBuilder::OptOutput<bool>* wasThrown); |
| 62 void callFunctionOn( | 124 virtual void callFunctionOn( |
| 63 ErrorString*, | 125 ErrorString*, |
| 64 const String& objectId, | 126 const String& objectId, |
| 65 const String& expression, | 127 const String& expression, |
| 66 const String& arguments, | 128 const String& arguments, |
| 67 bool returnByValue, | 129 bool returnByValue, |
| 68 bool generatePreview, | 130 bool generatePreview, |
| 69 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, | 131 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, |
| 70 TypeBuilder::OptOutput<bool>* wasThrown); | 132 TypeBuilder::OptOutput<bool>* wasThrown); |
| 71 void evaluateOnCallFrame( | 133 virtual void evaluateOnCallFrame( |
| 72 ErrorString*, | 134 ErrorString*, |
| 73 const ScriptValue& callFrames, | 135 const StackTrace& callFrames, |
| 74 const Vector<ScriptValue>& asyncCallStacks, | 136 const Vector<StackTrace>& asyncCallStacks, |
| 75 const String& callFrameId, | 137 const String& callFrameId, |
| 76 const String& expression, | 138 const String& expression, |
| 77 const String& objectGroup, | 139 const String& objectGroup, |
| 78 bool includeCommandLineAPI, | 140 bool includeCommandLineAPI, |
| 79 bool returnByValue, | 141 bool returnByValue, |
| 80 bool generatePreview, | 142 bool generatePreview, |
| 81 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, | 143 RefPtr<TypeBuilder::Runtime::RemoteObject>* result, |
| 82 TypeBuilder::OptOutput<bool>* wasThrown); | 144 TypeBuilder::OptOutput<bool>* wasThrown); |
| 83 void restartFrame(ErrorString*, const ScriptValue& callFrames, const String&
callFrameId, RefPtr<JSONObject>* result); | 145 virtual void getCompletionsOnCallFrame( |
| 84 void getStepInPositions(ErrorString*, const ScriptValue& callFrames, const S
tring& callFrameId, RefPtr<TypeBuilder::Array<TypeBuilder::Debugger::Location> >
& positions); | 146 ErrorString*, |
| 85 void setVariableValue(ErrorString*, const ScriptValue& callFrames, const Str
ing* callFrameIdOpt, const String* functionObjectIdOpt, int scopeNumber, const S
tring& variableName, const String& newValueStr); | 147 const StackTrace& callFrames, |
| 86 void getFunctionDetails(ErrorString*, const String& functionId, RefPtr<TypeB
uilder::Debugger::FunctionDetails>* result); | 148 const Vector<StackTrace>& asyncCallStacks, |
| 87 void getProperties(ErrorString*, const String& objectId, bool ownProperties,
bool accessorPropertiesOnly, RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::Pr
opertyDescriptor> >* result); | 149 const String& callFrameId, |
| 88 void getInternalProperties(ErrorString*, const String& objectId, RefPtr<Type
Builder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor> >* result); | 150 const String& expression, |
| 89 Node* nodeForObjectId(const String& objectId); | 151 RefPtr<TypeBuilder::Array<String> >* result); |
| 90 void releaseObject(const String& objectId); | 152 virtual void restartFrame(ErrorString*, const StackTrace& callFrames, const
String& callFrameId, RefPtr<JSONObject>* result); |
| 153 virtual void getStepInPositions(ErrorString*, const StackTrace& callFrames,
const String& callFrameId, RefPtr<TypeBuilder::Array<TypeBuilder::Debugger::Loca
tion> >& positions); |
| 154 virtual void setVariableValue(ErrorString*, const StackTrace& callFrames, co
nst String* callFrameIdOpt, const String* functionObjectIdOpt, int scopeNumber,
const String& variableName, const String& newValueStr); |
| 155 virtual void getFunctionDetails(ErrorString*, const String& functionId, RefP
tr<TypeBuilder::Debugger::FunctionDetails>* result); |
| 156 virtual void getCompletions(ErrorString*, const String& expression, RefPtr<T
ypeBuilder::Array<String> >* out_result); |
| 157 virtual void getProperties(ErrorString*, const String& objectId, bool ownPro
perties, bool accessorPropertiesOnly, RefPtr<TypeBuilder::Array<TypeBuilder::Run
time::PropertyDescriptor> >* result); |
| 158 virtual void getInternalProperties(ErrorString*, const String& objectId, Ref
Ptr<TypeBuilder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor> >* resu
lt); |
| 159 virtual void getProperty(ErrorString*, const String& objectId, const RefPtr<
JSONArray>& propertyPath, RefPtr<TypeBuilder::Runtime::RemoteObject>* result, Ty
peBuilder::OptOutput<bool>* wasThrown); |
| 160 virtual Node* nodeForObjectId(const String& objectId); |
| 161 virtual void releaseObject(const String& objectId); |
| 91 | 162 |
| 92 PassRefPtr<TypeBuilder::Array<TypeBuilder::Debugger::CallFrame> > wrapCallFr
ames(const ScriptValue&, int asyncOrdinal); | 163 virtual PassRefPtr<TypeBuilder::Array<TypeBuilder::Debugger::CallFrame> > wr
apCallFrames(const StackTrace&, int asyncOrdinal); |
| 93 | 164 |
| 94 PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapObject(const ScriptValue&
, const String& groupName, bool generatePreview = false) const; | 165 virtual PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapObject(const Scri
ptValue&, const String& groupName, bool generatePreview = false); |
| 95 PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapTable(const ScriptValue&
table, const ScriptValue& columns) const; | 166 virtual PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapTable(const Scrip
tValue& table, const ScriptValue& columns); |
| 167 |
| 96 PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapNode(Node*, const String&
groupName); | 168 PassRefPtr<TypeBuilder::Runtime::RemoteObject> wrapNode(Node*, const String&
groupName); |
| 97 ScriptValue findObjectById(const String& objectId) const; | 169 ScriptValue findObjectById(const String& objectId) const; |
| 98 ScriptValue findCallFrameById(ErrorString*, const ScriptValue& topCallFrame,
const String& callFrameId); | 170 virtual ActivationFrame findCallFrameById(ErrorString*, const StackTrace& to
pCallFrame, const String& callFrameId); |
| 99 | 171 |
| 100 void inspectNode(Node*); | 172 void inspectNode(Node*); |
| 101 void releaseObjectGroup(const String&); | 173 virtual void releaseObjectGroup(const String&); |
| 102 | 174 |
| 103 private: | 175 private: |
| 104 friend class InjectedScriptModule; | 176 friend class InjectedScriptModule; |
| 105 friend InjectedScript InjectedScriptManager::injectedScriptFor(ScriptState*)
; | 177 friend InjectedScript& InjectedScriptManager::injectedScriptFor(ScriptState*
); |
| 106 InjectedScript(ScriptObject, InspectedStateAccessCheck); | 178 V8InjectedScript(ScriptObject, InspectedStateAccessCheck); |
| 107 | 179 |
| 108 ScriptValue nodeAsScriptValue(Node*); | 180 ScriptValue nodeAsScriptValue(Node*); |
| 109 }; | 181 }; |
| 110 | 182 |
| 111 | |
| 112 } // namespace WebCore | 183 } // namespace WebCore |
| 113 | 184 |
| 114 #endif | 185 #endif |
| OLD | NEW |