Changeset 56931 in webkit
- Timestamp:
- Apr 1, 2010 12:58:34 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r56930 r56931 1 2010-04-01 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 Web Inspector: Sometimes js code can detach page from it's frame and in that case 6 Dispatch Events will stay in the TimelineAgent's events stack. Only immediate events will 7 appear at frontend. 8 https://bugs.webkit.org/show_bug.cgi?id=36890 9 10 * bindings/v8/V8Proxy.cpp: 11 (WebCore::V8Proxy::callFunction): 12 * dom/Node.cpp: 13 (WebCore::Node::dispatchGenericEvent): 14 * page/DOMWindow.cpp: 15 (WebCore::DOMWindow::dispatchEvent): 16 1 17 2010-04-01 Chris Fleizach <cfleizach@apple.com> 2 18 -
trunk/WebCore/bindings/v8/V8Proxy.cpp
r56461 r56931 477 477 478 478 #if ENABLE(INSPECTOR) 479 InspectorTimelineAgent* timelineAgent = 0; 480 if (InspectorTimelineAgent::instanceCount()) { 481 timelineAgent = m_frame->page() ? m_frame->page()->inspectorTimelineAgent() : 0; 482 if (timelineAgent) { 479 Page* inspectedPage = InspectorTimelineAgent::instanceCount() ? m_frame->page(): 0; 480 if (inspectedPage) 481 if (InspectorTimelineAgent* timelineAgent = inspectedPage->inspectorTimelineAgent()) { 483 482 v8::ScriptOrigin origin = function->GetScriptOrigin(); 484 if (!origin.ResourceName().IsEmpty()) 485 timelineAgent->willCallFunction(v8ValueToWebCoreString(origin.ResourceName()), function->GetScriptLineNumber() + 1); 486 else 487 timelineAgent = 0; 488 } 489 } 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 timelineAgent->willCallFunction(resourceName, lineNumber); 490 } else 491 inspectedPage = 0; 490 492 #endif // !ENABLE(INSPECTOR) 491 493 … … 495 497 496 498 #if ENABLE(INSPECTOR) 497 if (timelineAgent && m_frame->page() && timelineAgent == m_frame->page()->inspectorTimelineAgent()) 498 timelineAgent->didCallFunction(); 499 if (inspectedPage) 500 if (InspectorTimelineAgent* timelineAgent = inspectedPage->inspectorTimelineAgent()) 501 timelineAgent->didCallFunction(); 499 502 #endif // !ENABLE(INSPECTOR) 500 503 -
trunk/WebCore/dom/Node.cpp
r56825 r56931 2611 2611 2612 2612 #if ENABLE(INSPECTOR) 2613 InspectorTimelineAgent* timelineAgent = document()->inspectorTimelineAgent(); 2614 bool timelineAgentIsActive = timelineAgent && eventHasListeners(event->type(), targetForWindowEvents, this, ancestors); 2615 if (timelineAgentIsActive) 2616 timelineAgent->willDispatchEvent(*event); 2613 Page* inspectedPage = InspectorTimelineAgent::instanceCount() ? document()->page() : 0; 2614 if (inspectedPage) 2615 if (InspectorTimelineAgent* timelineAgent = eventHasListeners(event->type(), targetForWindowEvents, this, ancestors) ? inspectedPage->inspectorTimelineAgent() : 0) 2616 timelineAgent->willDispatchEvent(*event); 2617 else 2618 inspectedPage = 0; 2617 2619 #endif 2618 2620 … … 2698 2700 doneWithDefault: 2699 2701 #if ENABLE(INSPECTOR) 2700 if (timelineAgentIsActive && (timelineAgent = document()->inspectorTimelineAgent())) 2701 timelineAgent->didDispatchEvent(); 2702 if (inspectedPage) 2703 if (InspectorTimelineAgent* timelineAgent = inspectedPage->inspectorTimelineAgent()) 2704 timelineAgent->didDispatchEvent(); 2702 2705 #endif 2703 2706 -
trunk/WebCore/page/DOMWindow.cpp
r56825 r56931 1434 1434 1435 1435 #if ENABLE(INSPECTOR) 1436 InspectorTimelineAgent* timelineAgent = inspectorTimelineAgent(); 1437 bool timelineAgentIsActive = timelineAgent && hasEventListeners(event->type()); 1438 if (timelineAgentIsActive) 1439 timelineAgent->willDispatchEvent(*event); 1436 Page* inspectedPage = InspectorTimelineAgent::instanceCount() && frame() ? frame()->page() : 0; 1437 if (inspectedPage) 1438 if (InspectorTimelineAgent* timelineAgent = hasEventListeners(event->type()) ? inspectedPage->inspectorTimelineAgent() : 0) 1439 timelineAgent->willDispatchEvent(*event); 1440 else 1441 inspectedPage = 0; 1440 1442 #endif 1441 1443 … … 1443 1445 1444 1446 #if ENABLE(INSPECTOR) 1445 if (timelineAgentIsActive) { 1446 timelineAgent = inspectorTimelineAgent(); 1447 if (timelineAgent) 1447 if (inspectedPage) 1448 if (InspectorTimelineAgent* timelineAgent = inspectedPage->inspectorTimelineAgent()) 1448 1449 timelineAgent->didDispatchEvent(); 1449 }1450 1450 #endif 1451 1451
Note: See TracChangeset
for help on using the changeset viewer.