Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Side by Side Diff: Source/core/inspector/InspectorRuntimeAgent.cpp

Issue 300393002: Merge DevTools Refactor CL to Blink36 (Closed) Base URL: svn://svn.chromium.org/blink/branches/dart/1985
Patch Set: PTAL Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 namespace InspectorRuntimeAgentState { 45 namespace InspectorRuntimeAgentState {
46 static const char runtimeEnabled[] = "runtimeEnabled"; 46 static const char runtimeEnabled[] = "runtimeEnabled";
47 }; 47 };
48 48
49 static bool asBool(const bool* const b) 49 static bool asBool(const bool* const b)
50 { 50 {
51 return b ? *b : false; 51 return b ? *b : false;
52 } 52 }
53 53
54 InspectorRuntimeAgent::InspectorRuntimeAgent(InjectedScriptManager* injectedScri ptManager, ScriptDebugServer* scriptDebugServer) 54 InspectorRuntimeAgent::InspectorRuntimeAgent(InjectedScriptManager* injectedScri ptManager, ScriptDebugServerBase* scriptDebugServer)
55 : InspectorBaseAgent<InspectorRuntimeAgent>("Runtime") 55 : InspectorBaseAgent<InspectorRuntimeAgent>("Runtime")
56 , m_enabled(false) 56 , m_enabled(false)
57 , m_frontend(0) 57 , m_frontend(0)
58 , m_injectedScriptManager(injectedScriptManager) 58 , m_injectedScriptManager(injectedScriptManager)
59 , m_scriptDebugServer(scriptDebugServer) 59 , m_scriptDebugServer(scriptDebugServer)
60 { 60 {
61 } 61 }
62 62
63 InspectorRuntimeAgent::~InspectorRuntimeAgent() 63 InspectorRuntimeAgent::~InspectorRuntimeAgent()
64 { 64 {
65 } 65 }
66 66
67 static ScriptDebugServer::PauseOnExceptionsState setPauseOnExceptionsState(Scrip tDebugServer* scriptDebugServer, ScriptDebugServer::PauseOnExceptionsState newSt ate) 67 static ScriptDebugServer::PauseOnExceptionsState setPauseOnExceptionsState(Scrip tDebugServerBase* scriptDebugServer, ScriptDebugServer::PauseOnExceptionsState n ewState)
68 { 68 {
69 ASSERT(scriptDebugServer); 69 ASSERT(scriptDebugServer);
70 ScriptDebugServer::PauseOnExceptionsState presentState = scriptDebugServer-> pauseOnExceptionsState(); 70 ScriptDebugServer::PauseOnExceptionsState presentState = scriptDebugServer-> pauseOnExceptionsState();
71 if (presentState != newState) 71 if (presentState != newState)
72 scriptDebugServer->setPauseOnExceptionsState(newState); 72 scriptDebugServer->setPauseOnExceptionsState(newState);
73 return presentState; 73 return presentState;
74 } 74 }
75 75
76 void InspectorRuntimeAgent::evaluate(ErrorString* errorString, const String& exp ression, const String* const objectGroup, const bool* const includeCommandLineAP I, const bool* const doNotPauseOnExceptionsAndMuteConsole, const int* executionC ontextId, const bool* const returnByValue, const bool* generatePreview, RefPtr<T ypeBuilder::Runtime::RemoteObject>& result, TypeBuilder::OptOutput<bool>* wasThr own) 76 void InspectorRuntimeAgent::evaluate(ErrorString* errorString, const String& exp ression, const String* const objectGroup, const bool* const includeCommandLineAP I, const bool* const doNotPauseOnExceptionsAndMuteConsole, const int* executionC ontextId, const bool* const returnByValue, const bool* generatePreview, RefPtr<T ypeBuilder::Runtime::RemoteObject>& result, TypeBuilder::OptOutput<bool>* wasThr own)
77 { 77 {
78 InjectedScript injectedScript = injectedScriptForEval(errorString, execution ContextId); 78 InjectedScript& injectedScript = injectedScriptForEval(errorString, executio nContextId);
79 if (injectedScript.isEmpty()) 79 if (injectedScript.isEmpty())
80 return; 80 return;
81 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = S criptDebugServer::DontPauseOnExceptions; 81 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = S criptDebugServer::DontPauseOnExceptions;
82 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) 82 if (asBool(doNotPauseOnExceptionsAndMuteConsole))
83 previousPauseOnExceptionsState = setPauseOnExceptionsState(m_scriptDebug Server, ScriptDebugServer::DontPauseOnExceptions); 83 previousPauseOnExceptionsState = setPauseOnExceptionsState(m_scriptDebug Server, ScriptDebugServer::DontPauseOnExceptions);
84 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) 84 if (asBool(doNotPauseOnExceptionsAndMuteConsole))
85 muteConsole(); 85 muteConsole();
86 86
87 injectedScript.evaluate(errorString, expression, objectGroup ? *objectGroup : "", asBool(includeCommandLineAPI), asBool(returnByValue), asBool(generatePrevi ew), &result, wasThrown); 87 injectedScript.evaluate(errorString, expression, objectGroup ? *objectGroup : "", asBool(includeCommandLineAPI), asBool(returnByValue), asBool(generatePrevi ew), &result, wasThrown);
88 88
89 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) { 89 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) {
90 unmuteConsole(); 90 unmuteConsole();
91 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptions State); 91 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptions State);
92 } 92 }
93 } 93 }
94 94
95 void InspectorRuntimeAgent::callFunctionOn(ErrorString* errorString, const Strin g& objectId, const String& expression, const RefPtr<JSONArray>* const optionalAr guments, const bool* const doNotPauseOnExceptionsAndMuteConsole, const bool* con st returnByValue, const bool* generatePreview, RefPtr<TypeBuilder::Runtime::Remo teObject>& result, TypeBuilder::OptOutput<bool>* wasThrown) 95 void InspectorRuntimeAgent::callFunctionOn(ErrorString* errorString, const Strin g& objectId, const String& expression, const RefPtr<JSONArray>* const optionalAr guments, const bool* const doNotPauseOnExceptionsAndMuteConsole, const bool* con st returnByValue, const bool* generatePreview, RefPtr<TypeBuilder::Runtime::Remo teObject>& result, TypeBuilder::OptOutput<bool>* wasThrown)
96 { 96 {
97 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb jectId(objectId); 97 InjectedScript& injectedScript = m_injectedScriptManager->injectedScriptForO bjectId(objectId);
98 if (injectedScript.isEmpty()) { 98 if (injectedScript.isEmpty()) {
99 *errorString = "Inspected frame has gone"; 99 *errorString = "Inspected frame has gone";
100 return; 100 return;
101 } 101 }
102 String arguments; 102 String arguments;
103 if (optionalArguments) 103 if (optionalArguments)
104 arguments = (*optionalArguments)->toJSONString(); 104 arguments = (*optionalArguments)->toJSONString();
105 105
106 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = S criptDebugServer::DontPauseOnExceptions; 106 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = S criptDebugServer::DontPauseOnExceptions;
107 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) 107 if (asBool(doNotPauseOnExceptionsAndMuteConsole))
108 previousPauseOnExceptionsState = setPauseOnExceptionsState(m_scriptDebug Server, ScriptDebugServer::DontPauseOnExceptions); 108 previousPauseOnExceptionsState = setPauseOnExceptionsState(m_scriptDebug Server, ScriptDebugServer::DontPauseOnExceptions);
109 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) 109 if (asBool(doNotPauseOnExceptionsAndMuteConsole))
110 muteConsole(); 110 muteConsole();
111 111
112 injectedScript.callFunctionOn(errorString, objectId, expression, arguments, asBool(returnByValue), asBool(generatePreview), &result, wasThrown); 112 injectedScript.callFunctionOn(errorString, objectId, expression, arguments, asBool(returnByValue), asBool(generatePreview), &result, wasThrown);
113 113
114 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) { 114 if (asBool(doNotPauseOnExceptionsAndMuteConsole)) {
115 unmuteConsole(); 115 unmuteConsole();
116 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptions State); 116 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptions State);
117 } 117 }
118 } 118 }
119 119
120 void InspectorRuntimeAgent::getCompletions(ErrorString* errorString, const Strin g& expression, const int* executionContextId, RefPtr<TypeBuilder::Array<String> >& result)
121 {
122 InjectedScript& injectedScript = injectedScriptForEval(errorString, executio nContextId);
123 if (injectedScript.isEmpty())
124 return;
125
126 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = s etPauseOnExceptionsState(m_scriptDebugServer, ScriptDebugServer::DontPauseOnExce ptions);
127 muteConsole();
128
129 injectedScript.getCompletions(errorString, expression, &result);
130
131 unmuteConsole();
132 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptionsStat e);
133 }
134
120 void InspectorRuntimeAgent::getProperties(ErrorString* errorString, const String & objectId, const bool* ownProperties, const bool* accessorPropertiesOnly, RefPt r<TypeBuilder::Array<TypeBuilder::Runtime::PropertyDescriptor> >& result, RefPtr <TypeBuilder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor> >& interna lProperties) 135 void InspectorRuntimeAgent::getProperties(ErrorString* errorString, const String & objectId, const bool* ownProperties, const bool* accessorPropertiesOnly, RefPt r<TypeBuilder::Array<TypeBuilder::Runtime::PropertyDescriptor> >& result, RefPtr <TypeBuilder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor> >& interna lProperties)
121 { 136 {
122 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb jectId(objectId); 137 InjectedScript& injectedScript = m_injectedScriptManager->injectedScriptForO bjectId(objectId);
123 if (injectedScript.isEmpty()) { 138 if (injectedScript.isEmpty()) {
124 *errorString = "Inspected frame has gone"; 139 *errorString = "Inspected frame has gone";
125 return; 140 return;
126 } 141 }
127 142
128 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = s etPauseOnExceptionsState(m_scriptDebugServer, ScriptDebugServer::DontPauseOnExce ptions); 143 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = s etPauseOnExceptionsState(m_scriptDebugServer, ScriptDebugServer::DontPauseOnExce ptions);
129 muteConsole(); 144 muteConsole();
130 145
131 bool accessorPropertiesOnlyValue = accessorPropertiesOnly && *accessorProper tiesOnly; 146 bool accessorPropertiesOnlyValue = accessorPropertiesOnly && *accessorProper tiesOnly;
132 injectedScript.getProperties(errorString, objectId, ownProperties && *ownPro perties, accessorPropertiesOnlyValue, &result); 147 injectedScript.getProperties(errorString, objectId, ownProperties && *ownPro perties, accessorPropertiesOnlyValue, &result);
133 148
134 if (!accessorPropertiesOnlyValue) 149 if (!accessorPropertiesOnlyValue)
135 injectedScript.getInternalProperties(errorString, objectId, &internalPro perties); 150 injectedScript.getInternalProperties(errorString, objectId, &internalPro perties);
136 151
137 unmuteConsole(); 152 unmuteConsole();
138 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptionsStat e); 153 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptionsStat e);
139 } 154 }
140 155
156 void InspectorRuntimeAgent::getProperty(ErrorString* errorString, const String& objectId, const RefPtr<JSONArray>& propertyPath, RefPtr<TypeBuilder::Runtime::Re moteObject>& result, TypeBuilder::OptOutput<bool>* wasThrown)
157 {
158 InjectedScript& injectedScript = m_injectedScriptManager->injectedScriptForO bjectId(objectId);
159 if (injectedScript.isEmpty()) {
160 *errorString = "Inspected frame has gone";
161 return;
162 }
163
164 ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = s etPauseOnExceptionsState(m_scriptDebugServer, ScriptDebugServer::DontPauseOnExce ptions);
165 muteConsole();
166
167 injectedScript.getProperty(errorString, objectId, propertyPath, &result, was Thrown);
168
169 unmuteConsole();
170 setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptionsStat e);
171 }
172
141 void InspectorRuntimeAgent::releaseObject(ErrorString*, const String& objectId) 173 void InspectorRuntimeAgent::releaseObject(ErrorString*, const String& objectId)
142 { 174 {
143 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb jectId(objectId); 175 InjectedScript& injectedScript = m_injectedScriptManager->injectedScriptForO bjectId(objectId);
144 if (!injectedScript.isEmpty()) 176 if (!injectedScript.isEmpty())
145 injectedScript.releaseObject(objectId); 177 injectedScript.releaseObject(objectId);
146 } 178 }
147 179
148 void InspectorRuntimeAgent::releaseObjectGroup(ErrorString*, const String& objec tGroup) 180 void InspectorRuntimeAgent::releaseObjectGroup(ErrorString*, const String& objec tGroup)
149 { 181 {
150 m_injectedScriptManager->releaseObjectGroup(objectGroup); 182 m_injectedScriptManager->releaseObjectGroup(objectGroup);
151 } 183 }
152 184
153 void InspectorRuntimeAgent::run(ErrorString*) 185 void InspectorRuntimeAgent::run(ErrorString*)
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 .setIsPageContext(isPageContext) 236 .setIsPageContext(isPageContext)
205 .setName(name) 237 .setName(name)
206 .setFrameId(frameId) 238 .setFrameId(frameId)
207 .setLanguage(scriptState->isJavaScript() ? "JavaScript" : "Dart") 239 .setLanguage(scriptState->isJavaScript() ? "JavaScript" : "Dart")
208 .setLibraryId(scriptState->libraryId()) 240 .setLibraryId(scriptState->libraryId())
209 .release()); 241 .release());
210 } 242 }
211 243
212 } // namespace WebCore 244 } // namespace WebCore
213 245
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorRuntimeAgent.h ('k') | Source/core/inspector/PageDebuggerAgent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698