Changeset 54334 in webkit
- Timestamp:
- Feb 4, 2010 1:38:40 AM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r54332 r54334 1 2010-02-04 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 Provide strongly typed C++ interface for inspector's injected script. 6 7 https://bugs.webkit.org/show_bug.cgi?id=33616 8 9 * GNUmakefile.am: 10 * WebCore.gypi: 11 * WebCore.pro: 12 * WebCore.vcproj/WebCore.vcproj: 13 * WebCore.xcodeproj/project.pbxproj: 14 * bindings/js/JSInjectedScriptHostCustom.cpp: 15 (WebCore::InjectedScriptHost::injectedScriptFor): 16 * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: 17 (WebCore::InjectedScriptHost::injectedScriptFor): 18 * inspector/InjectedScript.cpp: Added. 19 (WebCore::InjectedScript::InjectedScript): 20 (WebCore::InjectedScript::dispatch): 21 (WebCore::InjectedScript::callFrames): 22 (WebCore::InjectedScript::wrapAndStringifyForConsole): 23 (WebCore::InjectedScript::releaseWrapperObjectGroup): 24 * inspector/InjectedScript.h: Added. 25 (WebCore::InjectedScript::InjectedScript): 26 (WebCore::InjectedScript::~InjectedScript): 27 (WebCore::InjectedScript::hasNoValue): 28 * inspector/InjectedScriptHost.cpp: 29 (WebCore::InjectedScriptHost::injectedScriptForId): 30 (WebCore::InjectedScriptHost::releaseWrapperObjectGroup): 31 * inspector/InjectedScriptHost.h: 32 * inspector/InspectorBackend.cpp: 33 (WebCore::InspectorBackend::dispatchOnInjectedScript): 34 * inspector/InspectorController.cpp: 35 (WebCore::InspectorController::InspectorController): 36 (WebCore::InspectorController::~InspectorController): 37 (WebCore::InspectorController::inspectedPageDestroyed): 38 (WebCore::InspectorController::windowScriptObjectAvailable): 39 (WebCore::InspectorController::scriptObjectReady): 40 (WebCore::InspectorController::setFrontendProxyObject): 41 (WebCore::InspectorController::close): 42 (WebCore::InspectorController::getProfile): 43 (WebCore::InspectorController::enableDebugger): 44 (WebCore::InspectorController::didPause): 45 (WebCore::InspectorController::injectedScriptForNodeId): 46 * inspector/InspectorController.h: 47 (WebCore::InspectorController::frontendScriptState): 48 * inspector/InspectorFrontend.cpp: 49 (WebCore::InspectorFrontend::addConsoleMessage): 50 * inspector/front-end/InjectedScript.js: 51 (injectedScriptConstructor): 52 1 53 2010-02-04 Philippe Normand <pnormand@igalia.com> 2 54 -
trunk/WebCore/GNUmakefile.am
r54330 r54334 1195 1195 WebCore/inspector/ConsoleMessage.cpp \ 1196 1196 WebCore/inspector/ConsoleMessage.h \ 1197 WebCore/inspector/InjectedScript.cpp \ 1198 WebCore/inspector/InjectedScript.h \ 1197 1199 WebCore/inspector/InjectedScriptHost.cpp \ 1198 1200 WebCore/inspector/InjectedScriptHost.h \ -
trunk/WebCore/WebCore.gypi
r54286 r54334 1582 1582 'inspector/ConsoleMessage.cpp', 1583 1583 'inspector/ConsoleMessage.h', 1584 'inspector/InjectedScript.cpp', 1585 'inspector/InjectedScript.h', 1584 1586 'inspector/InjectedScriptHost.cpp', 1585 1587 'inspector/InjectedScriptHost.h', -
trunk/WebCore/WebCore.pro
r54286 r54334 665 665 html/ValidityState.cpp \ 666 666 inspector/ConsoleMessage.cpp \ 667 inspector/InjectedScript.cpp \ 667 668 inspector/InjectedScriptHost.cpp \ 668 669 inspector/InspectorBackend.cpp \ … … 1356 1357 html/ValidityState.h \ 1357 1358 inspector/ConsoleMessage.h \ 1359 inspector/InjectedScript.h \ 1358 1360 inspector/InjectedScriptHost.h \ 1359 1361 inspector/InspectorBackend.h \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r54286 r54334 42558 42558 </File> 42559 42559 <File 42560 RelativePath="..\inspector\InjectedScript.cpp" 42561 > 42562 </File> 42563 <File 42564 RelativePath="..\inspector\InjectedScript.h" 42565 > 42566 </File> 42567 <File 42560 42568 RelativePath="..\inspector\InjectedScriptHost.cpp" 42561 42569 > -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r54286 r54334 4815 4815 EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */ = {isa = PBXBuildFile; fileRef = EDE3A4FF0C7A430600956A37 /* ColorMac.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4816 4816 EDEC98030AED7E170059137F /* WebCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEC98020AED7E170059137F /* WebCorePrefix.h */; }; 4817 F3644AFF1119805900E0D537 /* InjectedScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3644AFD1119805900E0D537 /* InjectedScript.cpp */; }; 4818 F3644B001119805900E0D537 /* InjectedScript.h in Headers */ = {isa = PBXBuildFile; fileRef = F3644AFE1119805900E0D537 /* InjectedScript.h */; }; 4817 4819 F4EAF4AE10C742B1009100D3 /* OpenTypeSanitizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4EAF4AC10C742B1009100D3 /* OpenTypeSanitizer.cpp */; }; 4818 4820 F4EAF4AF10C742B1009100D3 /* OpenTypeSanitizer.h in Headers */ = {isa = PBXBuildFile; fileRef = F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */; }; … … 10094 10096 EDE3A4FF0C7A430600956A37 /* ColorMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorMac.h; sourceTree = "<group>"; }; 10095 10097 EDEC98020AED7E170059137F /* WebCorePrefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebCorePrefix.h; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; }; 10098 F3644AFD1119805900E0D537 /* InjectedScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScript.cpp; sourceTree = "<group>"; }; 10099 F3644AFE1119805900E0D537 /* InjectedScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScript.h; sourceTree = "<group>"; }; 10096 10100 F4EAF4AC10C742B1009100D3 /* OpenTypeSanitizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OpenTypeSanitizer.cpp; path = opentype/OpenTypeSanitizer.cpp; sourceTree = "<group>"; }; 10097 10101 F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenTypeSanitizer.h; path = opentype/OpenTypeSanitizer.h; sourceTree = "<group>"; }; … … 10593 10597 41F0618D0F5F069800A07EAC /* ConsoleMessage.cpp */, 10594 10598 41F0618C0F5F069800A07EAC /* ConsoleMessage.h */, 10599 F3644AFD1119805900E0D537 /* InjectedScript.cpp */, 10600 F3644AFE1119805900E0D537 /* InjectedScript.h */, 10595 10601 7A0E76F610BF08ED00A0276E /* InjectedScriptHost.cpp */, 10596 10602 7A0E76F710BF08ED00A0276E /* InjectedScriptHost.h */, … … 18494 18500 93F199ED08245E59001E9ABC /* XSLTProcessor.h in Headers */, 18495 18501 E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */, 18502 F3644B001119805900E0D537 /* InjectedScript.h in Headers */, 18496 18503 97DD4D870FDF4D6E00ECF9A4 /* XSSAuditor.h in Headers */, 18497 18504 84D0C4061115F1EA0018AA34 /* AffineTransform.h in Headers */, … … 20670 20677 E1F1E82F0C3C2BB9006DB391 /* XSLTExtensions.cpp in Sources */, 20671 20678 93F19B0408245E59001E9ABC /* XSLTProcessor.cpp in Sources */, 20679 F3644AFF1119805900E0D537 /* InjectedScript.cpp in Sources */, 20672 20680 93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */, 20673 20681 E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */, -
trunk/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
r54286 r54334 44 44 #include "Frame.h" 45 45 #include "FrameLoader.h" 46 #include "InjectedScript.h" 46 47 #include "InjectedScriptHost.h" 47 48 #include "InspectorController.h" … … 195 196 #endif 196 197 197 ScriptObject InjectedScriptHost::injectedScriptFor(ScriptState* scriptState)198 InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* scriptState) 198 199 { 199 200 JSLock lock(SilenceAssertionsOnly); … … 201 202 JSObject* injectedScript = globalObject->injectedScript(); 202 203 if (injectedScript) 203 return ScriptObject(scriptState, injectedScript);204 return InjectedScript(ScriptObject(scriptState, injectedScript)); 204 205 205 206 ASSERT(!m_injectedScriptSource.isEmpty()); 206 207 ScriptObject injectedScriptObject = createInjectedScript(m_injectedScriptSource, this, scriptState, m_nextInjectedScriptId); 207 208 globalObject->setInjectedScript(injectedScriptObject.jsObject()); 208 m_idToInjectedScript.set(m_nextInjectedScriptId, injectedScriptObject); 209 InjectedScript result(injectedScriptObject); 210 m_idToInjectedScript.set(m_nextInjectedScriptId, result); 209 211 m_nextInjectedScriptId++; 210 return injectedScriptObject;212 return result; 211 213 } 212 214 -
trunk/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
r54305 r54334 35 35 #include "Database.h" 36 36 #include "Frame.h" 37 #include "InjectedScript.h" 37 38 #include "InjectedScriptHost.h" 38 39 #include "InspectorController.h" … … 194 195 #endif 195 196 196 ScriptObject InjectedScriptHost::injectedScriptFor(ScriptState* inspectedScriptState)197 InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* inspectedScriptState) 197 198 { 198 199 v8::HandleScope handleScope; … … 208 209 v8::Local<v8::Value> val = global->GetHiddenValue(key); 209 210 if (!val.IsEmpty() && val->IsObject()) 210 return ScriptObject(inspectedScriptState, v8::Local<v8::Object>::Cast(val));211 return InjectedScript(ScriptObject(inspectedScriptState, v8::Local<v8::Object>::Cast(val))); 211 212 212 213 ASSERT(!m_injectedScriptSource.isEmpty()); 213 214 ScriptObject injectedScriptObject = createInjectedScript(m_injectedScriptSource, this, inspectedScriptState, m_nextInjectedScriptId); 214 m_idToInjectedScript.set(m_nextInjectedScriptId, injectedScriptObject); 215 InjectedScript result(injectedScriptObject); 216 m_idToInjectedScript.set(m_nextInjectedScriptId, result); 215 217 ++m_nextInjectedScriptId; 216 218 global->SetHiddenValue(key, injectedScriptObject.v8Object()); 217 return injectedScriptObject;219 return result; 218 220 } 219 221 -
trunk/WebCore/inspector/InjectedScriptHost.cpp
r54329 r54334 39 39 #include "FrameLoader.h" 40 40 #include "HTMLFrameOwnerElement.h" 41 #include "InjectedScript.h" 41 42 #include "InspectorClient.h" 42 43 #include "InspectorController.h" … … 168 169 } 169 170 170 ScriptObject InjectedScriptHost::injectedScriptForId(long id)171 InjectedScript InjectedScriptHost::injectedScriptForId(long id) 171 172 { 172 173 return m_idToInjectedScript.get(id); … … 181 182 { 182 183 if (injectedScriptId) { 183 ScriptObject injectedScript = m_idToInjectedScript.get(injectedScriptId);184 InjectedScript injectedScript = m_idToInjectedScript.get(injectedScriptId); 184 185 if (!injectedScript.hasNoValue()) 185 releaseWrapperObjectGroup(injectedScript,objectGroup);186 injectedScript.releaseWrapperObjectGroup(objectGroup); 186 187 } else { 187 188 // Iterate over all injected scripts if injectedScriptId is not specified. 188 189 for (IdToInjectedScriptMap::iterator it = m_idToInjectedScript.begin(); it != m_idToInjectedScript.end(); ++it) 189 releaseWrapperObjectGroup(it->second,objectGroup);190 it->second.releaseWrapperObjectGroup(objectGroup); 190 191 } 191 192 } … … 205 206 } 206 207 207 void InjectedScriptHost::releaseWrapperObjectGroup(const ScriptObject& injectedScript, const String& objectGroup)208 {209 ScriptFunctionCall releaseFunction(injectedScript.scriptState(), injectedScript, "releaseWrapperObjectGroup");210 releaseFunction.appendArgument(objectGroup);211 releaseFunction.call();212 }213 214 208 } // namespace WebCore 215 209 -
trunk/WebCore/inspector/InjectedScriptHost.h
r54329 r54334 42 42 43 43 class Database; 44 class InjectedScript; 44 45 class InspectorDOMAgent; 45 46 class InspectorFrontend; … … 84 85 void reportDidDispatchOnInjectedScript(long callId, const String& result, bool isException); 85 86 86 ScriptObject injectedScriptFor(ScriptState*);87 ScriptObject injectedScriptForId(long);87 InjectedScript injectedScriptFor(ScriptState*); 88 InjectedScript injectedScriptForId(long); 88 89 void discardInjectedScripts(); 89 90 void releaseWrapperObjectGroup(long injectedScriptId, const String& objectGroup); … … 94 95 InspectorFrontend* inspectorFrontend(); 95 96 96 void releaseWrapperObjectGroup(const ScriptObject& injectedScript, const String& objectGroup);97 98 97 InspectorController* m_inspectorController; 99 98 String m_injectedScriptSource; 100 99 long m_nextInjectedScriptId; 101 typedef HashMap<long, ScriptObject> IdToInjectedScriptMap;100 typedef HashMap<long, InjectedScript> IdToInjectedScriptMap; 102 101 IdToInjectedScriptMap m_idToInjectedScript; 103 102 }; -
trunk/WebCore/inspector/InspectorBackend.cpp
r54329 r54334 41 41 #include "FrameLoader.h" 42 42 #include "HTMLFrameOwnerElement.h" 43 #include "InjectedScript.h" 43 44 #include "InjectedScriptHost.h" 44 45 #include "InspectorClient.h" … … 286 287 bool injectedScriptIdIsNodeId = injectedScriptId <= 0; 287 288 288 ScriptObject injectedScript;289 InjectedScript injectedScript; 289 290 if (injectedScriptIdIsNodeId) 290 291 injectedScript = m_inspectorController->injectedScriptForNodeId(-injectedScriptId); … … 295 296 return; 296 297 297 ScriptFunctionCall function(injectedScript.scriptState(), injectedScript, "dispatch"); 298 function.appendArgument(methodName); 299 function.appendArgument(arguments); 300 if (async) 301 function.appendArgument(callId); 298 String result; 302 299 bool hadException = false; 303 ScriptValue result = function.call(hadException);300 injectedScript.dispatch(callId, methodName, arguments, async, &result, &hadException); 304 301 if (async) 305 302 return; // InjectedScript will return result asynchronously by means of ::reportDidDispatchOnInjectedScript. 306 if (hadException) 307 frontend->didDispatchOnInjectedScript(callId, "", true); 308 else 309 frontend->didDispatchOnInjectedScript(callId, result.toString(injectedScript.scriptState()), false); 303 frontend->didDispatchOnInjectedScript(callId, result, hadException); 310 304 } 311 305 -
trunk/WebCore/inspector/InspectorController.cpp
r54329 r54334 55 55 #include "HitTestResult.h" 56 56 #include "InjectedScriptHost.h" 57 #include "InjectedScript.h" 57 58 #include "InspectorBackend.h" 58 59 #include "InspectorClient.h" … … 132 133 , m_page(0) 133 134 , m_expiredConsoleMessageCount(0) 134 , m_ scriptState(0)135 , m_frontendScriptState(0) 135 136 , m_windowVisible(false) 136 137 , m_showAfterVisible(CurrentPanel) … … 162 163 // These should have been cleared in inspectedPageDestroyed(). 163 164 ASSERT(!m_client); 164 ASSERT(!m_ scriptState);165 ASSERT(!m_frontendScriptState); 165 166 ASSERT(!m_inspectedPage); 166 167 ASSERT(!m_page || (m_page && !m_page->parentInspectorController())); … … 183 184 close(); 184 185 185 if (m_scriptState) { 186 ScriptGlobalObject::remove(m_scriptState, "InspectorBackend"); 187 ScriptGlobalObject::remove(m_scriptState, "InspectorFrontendHost"); 188 ScriptGlobalObject::remove(m_scriptState, "InjectedScriptHost"); 186 if (m_frontendScriptState) { 187 ScriptGlobalObject::remove(m_frontendScriptState, "InspectorBackend"); 188 ScriptGlobalObject::remove(m_frontendScriptState, "InspectorFrontendHost"); 189 189 } 190 190 ASSERT(m_inspectedPage); … … 509 509 // Grant the inspector the ability to script the inspected page. 510 510 m_page->mainFrame()->document()->securityOrigin()->grantUniversalAccess(); 511 m_ scriptState = scriptStateFromPage(debuggerWorld(), m_page);512 ScriptGlobalObject::set(m_ scriptState, "InspectorBackend", m_inspectorBackend.get());513 ScriptGlobalObject::set(m_ scriptState, "InspectorFrontendHost", m_inspectorFrontendHost.get());511 m_frontendScriptState = scriptStateFromPage(debuggerWorld(), m_page); 512 ScriptGlobalObject::set(m_frontendScriptState, "InspectorBackend", m_inspectorBackend.get()); 513 ScriptGlobalObject::set(m_frontendScriptState, "InspectorFrontendHost", m_inspectorFrontendHost.get()); 514 514 } 515 515 516 516 void InspectorController::scriptObjectReady() 517 517 { 518 ASSERT(m_ scriptState);519 if (!m_ scriptState)518 ASSERT(m_frontendScriptState); 519 if (!m_frontendScriptState) 520 520 return; 521 521 522 522 ScriptObject webInspectorObj; 523 if (!ScriptGlobalObject::get(m_scriptState, "WebInspector", webInspectorObj)) 524 return; 525 ScriptObject injectedScriptObj; 526 setFrontendProxyObject(m_scriptState, webInspectorObj, injectedScriptObj); 523 if (!ScriptGlobalObject::get(m_frontendScriptState, "WebInspector", webInspectorObj)) 524 return; 525 setFrontendProxyObject(m_frontendScriptState, webInspectorObj); 527 526 528 527 #if ENABLE(JAVASCRIPT_DEBUGGER) && USE(JSC) … … 543 542 void InspectorController::setFrontendProxyObject(ScriptState* scriptState, ScriptObject webInspectorObj, ScriptObject) 544 543 { 545 m_ scriptState = scriptState;544 m_frontendScriptState = scriptState; 546 545 m_frontend.set(new InspectorFrontend(this, scriptState, webInspectorObj)); 547 546 releaseDOMAgent(); … … 604 603 m_frontend.set(0); 605 604 m_timelineAgent = 0; 606 m_ scriptState = 0;605 m_frontendScriptState = 0; 607 606 if (m_page) { 608 607 if (!m_page->mainFrame() || !m_page->mainFrame()->loader() || !m_page->mainFrame()->loader()->isLoading()) { … … 1393 1392 ProfilesMap::iterator it = m_profiles.find(uid); 1394 1393 if (it != m_profiles.end()) 1395 m_frontend->didGetProfile(callId, toJS(m_ scriptState, it->second.get()));1394 m_frontend->didGetProfile(callId, toJS(m_frontendScriptState, it->second.get())); 1396 1395 } 1397 1396 … … 1519 1518 return; 1520 1519 1521 if (!m_ scriptState || !m_frontend)1520 if (!m_frontendScriptState || !m_frontend) 1522 1521 m_attachDebuggerWhenShown = true; 1523 1522 else { … … 1570 1569 ScriptState* scriptState = callFrame->scopeChain()->globalObject->globalExec(); 1571 1570 ASSERT(scriptState); 1572 ScriptObject injectedScriptObj = m_injectedScriptHost->injectedScriptFor(scriptState); 1573 ScriptFunctionCall function(scriptState, injectedScriptObj, "getCallFrames"); 1574 ScriptValue callFramesValue = function.call(); 1575 String callFrames = callFramesValue.toString(scriptState); 1576 1571 InjectedScript injectedScript = m_injectedScriptHost->injectedScriptFor(scriptState); 1572 String callFrames = injectedScript.callFrames(); 1577 1573 m_frontend->pausedScript(callFrames); 1578 1574 } … … 1811 1807 } 1812 1808 1813 ScriptObject InspectorController::injectedScriptForNodeId(long id)1809 InjectedScript InspectorController::injectedScriptForNodeId(long id) 1814 1810 { 1815 1811 … … 1829 1825 return m_injectedScriptHost->injectedScriptFor(mainWorldScriptState(frame)); 1830 1826 1831 return ScriptObject();1827 return InjectedScript(); 1832 1828 } 1833 1829 -
trunk/WebCore/inspector/InspectorController.h
r54329 r54334 65 65 class GraphicsContext; 66 66 class HitTestResult; 67 class InjectedScript; 67 68 class InjectedScriptHost; 68 69 class InspectorBackend; … … 158 159 159 160 void setFrontendProxyObject(ScriptState* state, ScriptObject webInspectorObj, ScriptObject injectedScriptObj = ScriptObject()); 160 ScriptState* frontendScriptState() const { return m_ scriptState; }161 ScriptState* frontendScriptState() const { return m_frontendScriptState; } 161 162 162 163 void populateScriptObjects(); … … 249 250 void evaluateForTestInFrontend(long callId, const String& script); 250 251 251 ScriptObject injectedScriptForNodeId(long id);252 InjectedScript injectedScriptForNodeId(long id); 252 253 253 254 private: … … 329 330 DOMStorageResourcesMap m_domStorageResources; 330 331 #endif 331 ScriptState* m_ scriptState;332 ScriptState* m_frontendScriptState; 332 333 bool m_windowVisible; 333 334 SpecialPanels m_showAfterVisible; -
trunk/WebCore/inspector/InspectorFrontend.cpp
r54329 r54334 35 35 #include "ConsoleMessage.h" 36 36 #include "Frame.h" 37 #include "InjectedScript.h" 37 38 #include "InjectedScriptHost.h" 38 39 #include "InspectorController.h" … … 106 107 } else if (!arguments.isEmpty()) { 107 108 function.appendArgument(true); 108 ScriptObject injectedScript = m_inspectorController->injectedScriptHost()->injectedScriptFor(scriptState);109 InjectedScript injectedScript = m_inspectorController->injectedScriptHost()->injectedScriptFor(scriptState); 109 110 for (unsigned i = 0; i < arguments.size(); ++i) { 110 ScriptFunctionCall wrapFunction(scriptState, injectedScript, "wrapAndStringifyObject"); 111 wrapFunction.appendArgument(arguments[i]); 112 wrapFunction.appendArgument("console"); 113 ScriptValue r = wrapFunction.call(); 114 if (r.hasNoValue()) 115 return; 116 String s = r.toString(scriptState); 111 String s = injectedScript.wrapAndStringifyForConsole(arguments[i]); 117 112 function.appendArgument(s); 118 113 } -
trunk/WebCore/inspector/front-end/InjectedScript.js
r54286 r54334 924 924 } 925 925 926 InjectedScript. getCallFrames = function()926 InjectedScript.callFrames = function() 927 927 { 928 928 var callFrame = InjectedScriptHost.currentCallFrame();
Note: See TracChangeset
for help on using the changeset viewer.