Changeset 95404 in webkit
- Timestamp:
- Sep 19, 2011 12:36:12 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r95402 r95404 1 2011-09-18 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Web Inspector: requestAnimationFrame callbacks don't show up in the timeline panel. 4 https://bugs.webkit.org/show_bug.cgi?id=67986 5 6 Reviewed by Pavel Feldman. 7 8 * inspector/timeline/timeline-animation-frame-expected.txt: Added. 9 * inspector/timeline/timeline-animation-frame.html: Added. 10 * inspector/timeline/timeline-enum-stability-expected.txt: 11 * platform/chromium/inspector/timeline/timeline-enum-stability-expected.txt: 12 * platform/qt/Skipped: inspector/timeline/timeline-animation-frame.html was added to the skip list. 13 * inspector/timeline/timeline-test.js: 14 1 15 2011-09-18 James Kozianski <koz@chromium.org> 2 16 -
trunk/LayoutTests/inspector/timeline/timeline-enum-stability-expected.txt
r95302 r95404 25 25 FunctionCall : "FunctionCall" 26 26 GCEvent : "GCEvent" 27 RegisterAnimationFrameCallback : "RegisterAnimationFrameCallback" 28 CancelAnimationFrameCallback : "CancelAnimationFrameCallback" 29 FireAnimationFrameEvent : "FireAnimationFrameEvent" 27 30 } 28 31 -
trunk/LayoutTests/inspector/timeline/timeline-test.js
r95302 r95404 3 3 // Scrub values when printing out these properties in the record or data field. 4 4 InspectorTest.timelineNonDeterministicProps = { 5 children 6 endTime : 1,7 height 8 requestId 9 startTime 10 width 5 children: 1, 6 endTime: 1, 7 height: 1, 8 requestId: 1, 9 startTime: 1, 10 width: 1, 11 11 stackTrace: 1, 12 url 12 url: 1, 13 13 usedHeapSize: 1, 14 14 totalHeapSize: 1, 15 mimeType : 1 15 mimeType: 1, 16 id: 1 16 17 }; 17 18 -
trunk/LayoutTests/platform/qt/Skipped
r95374 r95404 87 87 # ENABLE(REQUEST_ANIMATION_FRAME) is disabled. 88 88 fast/animation 89 inspector/timeline/timeline-animation-frame.html 89 90 90 91 # ENABLE(ANIMATION_API) is disabled. -
trunk/Source/WebCore/ChangeLog
r95403 r95404 1 2011-09-18 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Web Inspector: requestAnimationFrame callbacks don't show up in the timeline panel. 4 https://bugs.webkit.org/show_bug.cgi?id=67986 5 6 Reviewed by Pavel Feldman. 7 8 Test: inspector/timeline/timeline-animation-frame.html 9 10 * English.lproj/localizedStrings.js: 11 * bindings/v8/V8Proxy.cpp: 12 (WebCore::V8Proxy::callFunction): 13 (WebCore::V8Proxy::callFunctionWithoutFrame): 14 (WebCore::V8Proxy::instrumentedCallFunction): 15 * bindings/v8/V8Proxy.h: 16 * bindings/v8/custom/V8CustomVoidCallback.cpp: 17 (WebCore::invokeCallback): 18 * dom/ScriptedAnimationController.cpp: 19 (WebCore::ScriptedAnimationController::registerCallback): 20 (WebCore::ScriptedAnimationController::cancelCallback): 21 (WebCore::ScriptedAnimationController::serviceScriptedAnimations): 22 * inspector/InspectorInstrumentation.cpp: 23 (WebCore::InspectorInstrumentation::didRegisterAnimationFrameCallbackImpl): 24 (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallbackImpl): 25 (WebCore::InspectorInstrumentation::willFireAnimationFrameEventImpl): 26 (WebCore::InspectorInstrumentation::didFireAnimationFrameEventImpl): 27 * inspector/InspectorInstrumentation.h: 28 (WebCore::InspectorInstrumentation::willCallFunction): 29 (WebCore::InspectorInstrumentation::didRegisterAnimationFrameCallback): 30 (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallback): 31 (WebCore::InspectorInstrumentation::willFireAnimationFrameEvent): 32 (WebCore::InspectorInstrumentation::didFireAnimationFrameEvent): 33 * inspector/InspectorTimelineAgent.cpp: 34 (WebCore::InspectorTimelineAgent::didRegisterAnimationFrameCallback): 35 (WebCore::InspectorTimelineAgent::didCancelAnimationFrameCallback): 36 (WebCore::InspectorTimelineAgent::willFireAnimationFrameEvent): 37 (WebCore::InspectorTimelineAgent::didFireAnimationFrameEvent): 38 * inspector/InspectorTimelineAgent.h: 39 * inspector/TimelineRecordFactory.cpp: 40 (WebCore::TimelineRecordFactory::createAnimationFrameCallbackData): 41 * inspector/TimelineRecordFactory.h: 42 * inspector/front-end/TimelineAgent.js: 43 * inspector/front-end/TimelinePanel.js: 44 (WebInspector.TimelinePanel): 45 (WebInspector.TimelinePanel.prototype.get _recordStyles): 46 (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline): 47 (WebInspector.TimelinePanel.prototype._clearPanel): 48 (WebInspector.TimelinePanel.FormattedRecord): 49 (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent): 50 (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails): 51 1 52 2011-09-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 53 -
trunk/Source/WebCore/bindings/v8/V8Proxy.cpp
r95302 r95404 478 478 } 479 479 480 InspectorInstrumentationCookie cookie;481 if (InspectorInstrumentation::hasFrontends()) {482 v8::ScriptOrigin origin = function->GetScriptOrigin();483 String resourceName("undefined");484 int lineNumber = 1;485 if (!origin.ResourceName().IsEmpty()) {486 resourceName = toWebCoreString(origin.ResourceName());487 lineNumber = function->GetScriptLineNumber() + 1;488 }489 cookie = InspectorInstrumentation::willCallFunction(m_frame, resourceName, lineNumber);490 }491 492 480 m_recursion++; 493 result = function->Call(receiver, argc, args);481 result = V8Proxy::instrumentedCallFunction(m_frame->page(), function, receiver, argc, args); 494 482 m_recursion--; 495 496 InspectorInstrumentation::didCallFunction(cookie);497 483 } 498 484 … … 514 500 handleFatalErrorInV8(); 515 501 502 return result; 503 } 504 505 v8::Local<v8::Value> V8Proxy::instrumentedCallFunction(Page* page, v8::Handle<v8::Function> function, v8::Handle<v8::Object> receiver, int argc, v8::Handle<v8::Value> args[]) 506 { 507 InspectorInstrumentationCookie cookie; 508 if (InspectorInstrumentation::hasFrontends()) { 509 String resourceName("undefined"); 510 int lineNumber = 1; 511 v8::ScriptOrigin origin = function->GetScriptOrigin(); 512 if (!origin.ResourceName().IsEmpty()) { 513 resourceName = toWebCoreString(origin.ResourceName()); 514 lineNumber = function->GetScriptLineNumber() + 1; 515 } 516 cookie = InspectorInstrumentation::willCallFunction(page, resourceName, lineNumber); 517 } 518 v8::Local<v8::Value> result = function->Call(receiver, argc, args); 519 InspectorInstrumentation::didCallFunction(cookie); 516 520 return result; 517 521 } -
trunk/Source/WebCore/bindings/v8/V8Proxy.h
r95302 r95404 58 58 class Frame; 59 59 class Node; 60 class Page; 60 61 class ScriptExecutionContext; 61 62 class ScriptSourceCode; … … 174 175 static v8::Local<v8::Value> callFunctionWithoutFrame(v8::Handle<v8::Function>, v8::Handle<v8::Object>, int argc, v8::Handle<v8::Value> argv[]); 175 176 177 // call the function with the given receiver and arguments and report times to DevTools. 178 static v8::Local<v8::Value> instrumentedCallFunction(Page*, v8::Handle<v8::Function>, v8::Handle<v8::Object> receiver, int argc, v8::Handle<v8::Value> args[]); 179 176 180 // Call the function as constructor with the given arguments. 177 181 v8::Local<v8::Value> newInstance(v8::Handle<v8::Function>, int argc, v8::Handle<v8::Value> argv[]); -
trunk/Source/WebCore/bindings/v8/custom/V8CustomVoidCallback.cpp
r95302 r95404 84 84 v8::Handle<v8::Object> thisObject = v8::Context::GetCurrent()->Global(); 85 85 86 v8::Handle<v8::Value> result = callbackFunction->Call(thisObject, argc, argv); 86 Page* page = scriptExecutionContext && scriptExecutionContext->isDocument() ? static_cast<Document*>(scriptExecutionContext)->page() : 0; 87 v8::Handle<v8::Value> result = V8Proxy::instrumentedCallFunction(page, callbackFunction, thisObject, argc, argv); 88 87 89 callbackReturnValue = !result.IsEmpty() && result->BooleanValue(); 88 90 return exceptionCatcher.HasCaught(); -
trunk/Source/WebCore/dom/ScriptedAnimationController.cpp
r95302 r95404 32 32 #include "Element.h" 33 33 #include "FrameView.h" 34 #include "InspectorInstrumentation.h" 34 35 #include "RequestAnimationFrameCallback.h" 35 36 … … 76 77 callback->m_element = animationElement; 77 78 m_callbacks.append(callback); 79 80 InspectorInstrumentation::didRegisterAnimationFrameCallback(m_document, id); 81 78 82 if (!m_suspendCount) 79 83 scheduleAnimation(); … … 86 90 if (m_callbacks[i]->m_id == id) { 87 91 m_callbacks[i]->m_firedOrCancelled = true; 92 InspectorInstrumentation::didCancelAnimationFrameCallback(m_document, id); 88 93 m_callbacks.remove(i); 89 94 return; … … 120 125 if (!callback->m_firedOrCancelled && (!callback->m_element || callback->m_element->renderer())) { 121 126 callback->m_firedOrCancelled = true; 127 InspectorInstrumentationCookie cookie = InspectorInstrumentation::willFireAnimationFrameEvent(m_document, callback->m_id); 122 128 callback->handleEvent(time); 129 InspectorInstrumentation::didFireAnimationFrameEvent(cookie); 123 130 firedCallback = true; 124 131 callbacks.remove(i); -
trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp
r95302 r95404 866 866 } 867 867 868 void InspectorInstrumentation::didRegisterAnimationFrameCallbackImpl(InstrumentingAgents* instrumentingAgents, int callbackId) 869 { 870 if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) 871 timelineAgent->didRegisterAnimationFrameCallback(callbackId); 872 } 873 874 void InspectorInstrumentation::didCancelAnimationFrameCallbackImpl(InstrumentingAgents* instrumentingAgents, int callbackId) 875 { 876 if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) 877 timelineAgent->didCancelAnimationFrameCallback(callbackId); 878 } 879 880 InspectorInstrumentationCookie InspectorInstrumentation::willFireAnimationFrameEventImpl(InstrumentingAgents* instrumentingAgents, int callbackId) 881 { 882 int timelineAgentId = 0; 883 if (InspectorTimelineAgent* timelineAgent = instrumentingAgents->inspectorTimelineAgent()) { 884 timelineAgent->willFireAnimationFrameEvent(callbackId); 885 timelineAgentId = timelineAgent->id(); 886 } 887 return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId); 888 } 889 890 void InspectorInstrumentation::didFireAnimationFrameEventImpl(const InspectorInstrumentationCookie& cookie) 891 { 892 if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 893 timelineAgent->didFireAnimationFrameEvent(); 894 } 895 868 896 InspectorTimelineAgent* InspectorInstrumentation::retrieveTimelineAgent(const InspectorInstrumentationCookie& cookie) 869 897 { -
trunk/Source/WebCore/inspector/InspectorInstrumentation.h
r95302 r95404 96 96 static void didRemoveTimer(ScriptExecutionContext*, int timerId); 97 97 98 static InspectorInstrumentationCookie willCallFunction( Frame*, const String& scriptName, int scriptLine);98 static InspectorInstrumentationCookie willCallFunction(Page*, const String& scriptName, int scriptLine); 99 99 static void didCallFunction(const InspectorInstrumentationCookie&); 100 100 static InspectorInstrumentationCookie willChangeXHRReadyState(ScriptExecutionContext*, XMLHttpRequest* request); … … 154 154 static void stopConsoleTiming(Page*, const String& title, PassRefPtr<ScriptCallStack>); 155 155 static void consoleTimeStamp(Page*, PassRefPtr<ScriptArguments>); 156 157 static void didRegisterAnimationFrameCallback(Document*, int callbackId); 158 static void didCancelAnimationFrameCallback(Document*, int callbackId); 159 static InspectorInstrumentationCookie willFireAnimationFrameEvent(Document*, int callbackId); 160 static void didFireAnimationFrameEvent(const InspectorInstrumentationCookie&); 156 161 157 162 #if ENABLE(JAVASCRIPT_DEBUGGER) … … 284 289 static void consoleTimeStampImpl(InstrumentingAgents*, PassRefPtr<ScriptArguments>); 285 290 291 static void didRegisterAnimationFrameCallbackImpl(InstrumentingAgents*, int callbackId); 292 static void didCancelAnimationFrameCallbackImpl(InstrumentingAgents*, int callbackId); 293 static InspectorInstrumentationCookie willFireAnimationFrameEventImpl(InstrumentingAgents*, int callbackId); 294 static void didFireAnimationFrameEventImpl(const InspectorInstrumentationCookie&); 295 286 296 #if ENABLE(JAVASCRIPT_DEBUGGER) 287 297 static void addStartProfilingMessageToConsoleImpl(InstrumentingAgents*, const String& title, unsigned lineNumber, const String& sourceURL); … … 486 496 } 487 497 488 489 inline InspectorInstrumentationCookie InspectorInstrumentation::willCallFunction(Frame* frame, const String& scriptName, int scriptLine) 498 inline InspectorInstrumentationCookie InspectorInstrumentation::willCallFunction(Page* page, const String& scriptName, int scriptLine) 490 499 { 491 500 #if ENABLE(INSPECTOR) 492 501 FAST_RETURN_IF_NO_FRONTENDS(InspectorInstrumentationCookie()); 493 if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsFor Frame(frame))502 if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page)) 494 503 return willCallFunctionImpl(instrumentingAgents, scriptName, scriptLine); 495 504 #endif … … 1026 1035 #endif 1027 1036 1037 inline void InspectorInstrumentation::didRegisterAnimationFrameCallback(Document* document, int callbackId) 1038 { 1039 #if ENABLE(INSPECTOR) 1040 if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForDocument(document)) 1041 didRegisterAnimationFrameCallbackImpl(instrumentingAgents, callbackId); 1042 #endif 1043 } 1044 1045 inline void InspectorInstrumentation::didCancelAnimationFrameCallback(Document* document, int callbackId) 1046 { 1047 #if ENABLE(INSPECTOR) 1048 if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForDocument(document)) 1049 didCancelAnimationFrameCallbackImpl(instrumentingAgents, callbackId); 1050 #endif 1051 } 1052 1053 inline InspectorInstrumentationCookie InspectorInstrumentation::willFireAnimationFrameEvent(Document* document, int callbackId) 1054 { 1055 #if ENABLE(INSPECTOR) 1056 if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForDocument(document)) 1057 return willFireAnimationFrameEventImpl(instrumentingAgents, callbackId); 1058 #endif 1059 return InspectorInstrumentationCookie(); 1060 } 1061 1062 inline void InspectorInstrumentation::didFireAnimationFrameEvent(const InspectorInstrumentationCookie& cookie) 1063 { 1064 #if ENABLE(INSPECTOR) 1065 FAST_RETURN_IF_NO_FRONTENDS(void()); 1066 if (cookie.first) 1067 didFireAnimationFrameEventImpl(cookie); 1068 #endif 1069 } 1070 1028 1071 #if ENABLE(INSPECTOR) 1029 1072 inline bool InspectorInstrumentation::collectingHTMLParseErrors(Page* page) -
trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp
r95302 r95404 53 53 } 54 54 55 // Must be kept in sync with TimelineAgent.js 55 56 namespace TimelineRecordType { 56 57 static const char EventDispatch[] = "EventDispatch"; … … 82 83 static const char FunctionCall[] = "FunctionCall"; 83 84 static const char GCEvent[] = "GCEvent"; 85 86 static const char RegisterAnimationFrameCallback[] = "RegisterAnimationFrameCallback"; 87 static const char CancelAnimationFrameCallback[] = "CancelAnimationFrameCallback"; 88 static const char FireAnimationFrameEvent[] = "FireAnimationFrameEvent"; 84 89 } 85 90 … … 343 348 { 344 349 clearRecordStack(); 350 } 351 352 void InspectorTimelineAgent::didRegisterAnimationFrameCallback(int callbackId) 353 { 354 appendRecord(TimelineRecordFactory::createAnimationFrameCallbackData(callbackId), TimelineRecordType::RegisterAnimationFrameCallback); 355 } 356 357 void InspectorTimelineAgent::didCancelAnimationFrameCallback(int callbackId) 358 { 359 appendRecord(TimelineRecordFactory::createAnimationFrameCallbackData(callbackId), TimelineRecordType::CancelAnimationFrameCallback); 360 } 361 362 void InspectorTimelineAgent::willFireAnimationFrameEvent(int callbackId) 363 { 364 pushCurrentRecord(TimelineRecordFactory::createAnimationFrameCallbackData(callbackId), TimelineRecordType::FireAnimationFrameEvent); 365 } 366 367 void InspectorTimelineAgent::didFireAnimationFrameEvent() 368 { 369 didCompleteCurrentRecord(TimelineRecordType::FireAnimationFrameEvent); 345 370 } 346 371 -
trunk/Source/WebCore/inspector/InspectorTimelineAgent.h
r95302 r95404 120 120 void willReceiveResourceData(unsigned long identifier); 121 121 void didReceiveResourceData(); 122 122 123 void didRegisterAnimationFrameCallback(int callbackId); 124 void didCancelAnimationFrameCallback(int callbackId); 125 void willFireAnimationFrameEvent(int callbackId); 126 void didFireAnimationFrameEvent(); 127 123 128 virtual void didGC(double, double, size_t); 124 129 -
trunk/Source/WebCore/inspector/TimelineRecordFactory.cpp
r95302 r95404 183 183 } 184 184 185 PassRefPtr<InspectorObject> TimelineRecordFactory::createAnimationFrameCallbackData(int callbackId) 186 { 187 RefPtr<InspectorObject> data = InspectorObject::create(); 188 data->setNumber("id", callbackId); 189 return data.release(); 190 } 191 185 192 } // namespace WebCore 186 193 -
trunk/Source/WebCore/inspector/TimelineRecordFactory.h
r95302 r95404 80 80 static PassRefPtr<InspectorObject> createParseHTMLData(unsigned int length, unsigned int startLine); 81 81 82 static PassRefPtr<InspectorObject> createAnimationFrameCallbackData(int callbackId); 83 82 84 private: 83 85 TimelineRecordFactory() { } -
trunk/Source/WebCore/inspector/front-end/TimelineAgent.js
r95302 r95404 62 62 63 63 FunctionCall: "FunctionCall", 64 GCEvent: "GCEvent" 64 GCEvent: "GCEvent", 65 66 RegisterAnimationFrameCallback: "RegisterAnimationFrameCallback", 67 CancelAnimationFrameCallback: "CancelAnimationFrameCallback", 68 FireAnimationFrameEvent: "FireAnimationFrameEvent" 65 69 }; -
trunk/Source/WebCore/inspector/front-end/TimelinePanel.js
r95401 r95404 83 83 this._scheduledResourceRequests = {}; 84 84 this._timerRecords = {}; 85 this._registeredAnimationCallbackRecords = {}; 85 86 86 87 this._calculator = new WebInspector.TimelineCalculator(); … … 202 203 recordStyles[recordTypes.MarkLoad] = { title: WebInspector.UIString("Load event"), category: this.categories.scripting }; 203 204 recordStyles[recordTypes.ScheduleResourceRequest] = { title: WebInspector.UIString("Schedule Request"), category: this.categories.loading }; 205 recordStyles[recordTypes.RegisterAnimationFrameCallback] = { title: WebInspector.UIString("Register Animation Callback"), category: this.categories.scripting }; 206 recordStyles[recordTypes.CancelAnimationFrameCallback] = { title: WebInspector.UIString("Cancel Animation Callback"), category: this.categories.scripting }; 207 recordStyles[recordTypes.FireAnimationFrameEvent] = { title: WebInspector.UIString("Animation Frame Event"), category: this.categories.scripting }; 204 208 this._recordStylesArray = recordStyles; 205 209 } … … 405 409 var connectedToOldRecord = false; 406 410 var recordTypes = WebInspector.TimelineAgent.RecordType; 411 412 if (record.type === recordTypes.RegisterAnimationFrameCallback) { 413 this._registeredAnimationCallbackRecords[record.data.id] = record; 414 return; 415 } 416 407 417 if (record.type === recordTypes.MarkDOMContent || record.type === recordTypes.MarkLoad) 408 418 parentRecord = null; // No bar entry for load events. … … 426 436 } 427 437 }; 428 if (record.type === recordTypes.TimerFire && children && children.length) { 438 439 if ((record.type === recordTypes.TimerFire || record.type === recordTypes.FireAnimationFrameEvent) && children && children.length) { 429 440 var childRecord = children[0]; 430 441 if (childRecord.type === recordTypes.FunctionCall) { … … 509 520 this._scheduledResourceRequests = {}; 510 521 this._timerRecords = {}; 522 this._registeredAnimationCallbackRecords = {}; 511 523 this._rootRecord = this._createRootRecord(); 512 524 this._boundariesAreValid = false; … … 1001 1013 this.singleShot = timerInstalledRecord.singleShot; 1002 1014 } 1015 } else if (record.type === recordTypes.FireAnimationFrameEvent) { 1016 var registerCallbackRecord = panel._registeredAnimationCallbackRecords[record.data.id]; 1017 if (registerCallbackRecord) 1018 this.callSiteStackTrace = registerCallbackRecord.stackTrace; 1003 1019 } 1004 1020 this._refreshDetails(); … … 1059 1075 contentHelper._appendTextRow(WebInspector.UIString("Repeats"), !this.singleShot); 1060 1076 } 1077 break; 1078 case recordTypes.FireAnimationFrameEvent: 1079 contentHelper._appendTextRow(WebInspector.UIString("Callback ID"), this.data.id); 1061 1080 break; 1062 1081 case recordTypes.FunctionCall: … … 1120 1139 case WebInspector.TimelineAgent.RecordType.FunctionCall: 1121 1140 return this.scriptName ? this._linkifyLocation(this.scriptName, this.scriptLine, 0) : null; 1141 case WebInspector.TimelineAgent.RecordType.FireAnimationFrameEvent: 1142 return this.scriptName ? this._linkifyLocation(this.scriptName, this.scriptLine, 0) : this.data.id; 1122 1143 case WebInspector.TimelineAgent.RecordType.EventDispatch: 1123 1144 return this.data ? this.data.type : null; … … 1127 1148 case WebInspector.TimelineAgent.RecordType.TimerRemove: 1128 1149 return this.stackTrace ? this._linkifyCallFrame(this.stackTrace[0]) : this.data.timerId; 1150 case WebInspector.TimelineAgent.RecordType.RegisterAnimationFrameCallback: 1151 case WebInspector.TimelineAgent.RecordType.CancelAnimationFrameCallback: 1152 return this.stackTrace ? this._linkifyCallFrame(this.stackTrace[0]) : this.data.id; 1129 1153 case WebInspector.TimelineAgent.RecordType.ParseHTML: 1130 1154 case WebInspector.TimelineAgent.RecordType.RecalculateStyles:
Note: See TracChangeset
for help on using the changeset viewer.