1a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch/* 265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch* Copyright (C) 2011 Google Inc. All rights reserved. 3a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* 4a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* Redistribution and use in source and binary forms, with or without 5a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* modification, are permitted provided that the following conditions are 6a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* met: 7a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* 8a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* * Redistributions of source code must retain the above copyright 9a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* notice, this list of conditions and the following disclaimer. 10a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* * Redistributions in binary form must reproduce the above 11a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* copyright notice, this list of conditions and the following disclaimer 12a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* in the documentation and/or other materials provided with the 13a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* distribution. 14a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* * Neither the name of Google Inc. nor the names of its 15a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* contributors may be used to endorse or promote products derived from 16a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* this software without specific prior written permission. 17a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* 18a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch*/ 30a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 31a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "config.h" 32a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "InspectorInstrumentation.h" 33a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 34a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if ENABLE(INSPECTOR) 35a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 36a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "DOMWindow.h" 3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "Database.h" 3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "DocumentLoader.h" 39a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "Event.h" 406b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#include "EventContext.h" 412fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include "InspectorAgent.h" 4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "InspectorApplicationCacheAgent.h" 4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "InspectorBrowserDebuggerAgent.h" 4481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "InspectorCSSAgent.h" 4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "InspectorConsoleAgent.h" 4681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "InspectorDatabaseAgent.h" 47a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "InspectorDOMAgent.h" 4881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "InspectorDOMStorageAgent.h" 49a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "InspectorDebuggerAgent.h" 502bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "InspectorPageAgent.h" 5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "InspectorProfilerAgent.h" 5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "InspectorResourceAgent.h" 53a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "InspectorTimelineAgent.h" 5481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "InstrumentingAgents.h" 5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "ScriptArguments.h" 5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "ScriptCallStack.h" 57a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "XMLHttpRequest.h" 58a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include <wtf/text/CString.h> 59a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 60a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochnamespace WebCore { 61a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 62a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochstatic const char* const listenerEventCategoryType = "listener"; 63a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochstatic const char* const instrumentationEventCategoryType = "instrumentation"; 64a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 65a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochstatic const char* const setTimerEventName = "setTimer"; 66a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochstatic const char* const clearTimerEventName = "clearTimer"; 67a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochstatic const char* const timerFiredEventName = "timerFired"; 68a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 692fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockHashMap<Page*, InspectorAgent*>& InspectorInstrumentation::inspectorAgents() 702fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{ 712fc2651226baac27029e38c9d6ef883fa32084dbSteve Block static HashMap<Page*, InspectorAgent*>& agents = *new HashMap<Page*, InspectorAgent*>; 722fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return agents; 732fc2651226baac27029e38c9d6ef883fa32084dbSteve Block} 742fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 75a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochint InspectorInstrumentation::s_frontendCounter = 0; 76a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 776b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerstatic bool eventHasListeners(const AtomicString& eventType, DOMWindow* window, Node* node, const Vector<EventContext>& ancestors) 78a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 79a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (window && window->hasEventListeners(eventType)) 80a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return true; 81a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 82a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (node->hasEventListeners(eventType)) 83a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return true; 84a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 85a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch for (size_t i = 0; i < ancestors.size(); i++) { 866b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner Node* ancestor = ancestors[i].node(); 87a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (ancestor->hasEventListeners(eventType)) 88a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return true; 89a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 90a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 91a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return false; 92a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 93a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 942fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didClearWindowObjectInWorldImpl(InspectorAgent* inspectorAgent, Frame* frame, DOMWrapperWorld* world) 9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 962bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorPageAgent* pageAgent = inspectorAgent->instrumentingAgents()->inspectorPageAgent()) 972bde8e466a4451c7319e3a072d118917957d6554Steve Block pageAgent->didClearWindowObjectInWorld(frame, world); 982fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->didClearWindowObjectInWorld(frame, world); 9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1012fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::inspectedPageDestroyedImpl(InspectorAgent* inspectorAgent) 10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 1032fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->inspectedPageDestroyed(); 10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1062fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::willInsertDOMNodeImpl(InspectorAgent* inspectorAgent, Node* node, Node* parent) 107a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 108a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 10981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorAgent->instrumentingAgents()->inspectorBrowserDebuggerAgent()) 11065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch browserDebuggerAgent->willInsertDOMNode(node, parent); 111a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif 112a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 113a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1142fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didInsertDOMNodeImpl(InspectorAgent* inspectorAgent, Node* node) 115a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 1162fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorDOMAgent* domAgent = inspectorAgent->domAgent()) 117a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch domAgent->didInsertDOMNode(node); 11865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 11981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorAgent->instrumentingAgents()->inspectorBrowserDebuggerAgent()) 12065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch browserDebuggerAgent->didInsertDOMNode(node); 12165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 122a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 123a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1242fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::willRemoveDOMNodeImpl(InspectorAgent* inspectorAgent, Node* node) 125a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 126a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 12781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorAgent->instrumentingAgents()->inspectorBrowserDebuggerAgent()) 12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch browserDebuggerAgent->willRemoveDOMNode(node); 129a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif 130a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 131a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1322fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didRemoveDOMNodeImpl(InspectorAgent* inspectorAgent, Node* node) 133a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 13581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorAgent->instrumentingAgents()->inspectorBrowserDebuggerAgent()) 13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch browserDebuggerAgent->didRemoveDOMNode(node); 13765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 1382fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorDOMAgent* domAgent = inspectorAgent->domAgent()) 139a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch domAgent->didRemoveDOMNode(node); 140a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 141a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1422fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::willModifyDOMAttrImpl(InspectorAgent* inspectorAgent, Element* element) 143a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 144a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 14581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorAgent->instrumentingAgents()->inspectorBrowserDebuggerAgent()) 14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch browserDebuggerAgent->willModifyDOMAttr(element); 147a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif 148a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 149a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1502fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didModifyDOMAttrImpl(InspectorAgent* inspectorAgent, Element* element) 151a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 1522fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorDOMAgent* domAgent = inspectorAgent->domAgent()) 153a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch domAgent->didModifyDOMAttr(element); 154a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 155a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 15681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochvoid InspectorInstrumentation::didInvalidateStyleAttrImpl(InspectorAgent* inspectorAgent, Node* node) 15781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch{ 15881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorDOMAgent* domAgent = inspectorAgent->domAgent()) 15981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch domAgent->didInvalidateStyleAttr(node); 16081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch} 16181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 1622fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::mouseDidMoveOverElementImpl(InspectorAgent* inspectorAgent, const HitTestResult& result, unsigned modifierFlags) 16365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 1642bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorDOMAgent* domAgent = inspectorAgent->instrumentingAgents()->inspectorDOMAgent()) 1652bde8e466a4451c7319e3a072d118917957d6554Steve Block domAgent->mouseDidMoveOverElement(result, modifierFlags); 16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 16765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1682fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockbool InspectorInstrumentation::handleMousePressImpl(InspectorAgent* inspectorAgent) 16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 1702bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorDOMAgent* domAgent = inspectorAgent->instrumentingAgents()->inspectorDOMAgent()) 1712bde8e466a4451c7319e3a072d118917957d6554Steve Block return domAgent->handleMousePress(); 1722bde8e466a4451c7319e3a072d118917957d6554Steve Block return false; 17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1752fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::characterDataModifiedImpl(InspectorAgent* inspectorAgent, CharacterData* characterData) 176a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 1772fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorDOMAgent* domAgent = inspectorAgent->domAgent()) 178a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch domAgent->characterDataModified(characterData); 179a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 180a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1812fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::willSendXMLHttpRequestImpl(InspectorAgent* inspectorAgent, const String& url) 182a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 183a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 18481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorAgent->instrumentingAgents()->inspectorBrowserDebuggerAgent()) 18565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch browserDebuggerAgent->willSendXMLHttpRequest(url); 186a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif 187a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 188a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1892fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didScheduleResourceRequestImpl(InspectorAgent* inspectorAgent, const String& url) 190a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 1912fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent)) 192a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didScheduleResourceRequest(url); 193a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 194a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1952fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didInstallTimerImpl(InspectorAgent* inspectorAgent, int timerId, int timeout, bool singleShot) 196a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 1972fc2651226baac27029e38c9d6ef883fa32084dbSteve Block pauseOnNativeEventIfNeeded(inspectorAgent, instrumentationEventCategoryType, setTimerEventName, true); 1982fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent)) 199a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didInstallTimer(timerId, timeout, singleShot); 200a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 201a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 2022fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didRemoveTimerImpl(InspectorAgent* inspectorAgent, int timerId) 203a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 2042fc2651226baac27029e38c9d6ef883fa32084dbSteve Block pauseOnNativeEventIfNeeded(inspectorAgent, instrumentationEventCategoryType, clearTimerEventName, true); 2052fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent)) 206a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didRemoveTimer(timerId); 207a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 208a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 2092fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willCallFunctionImpl(InspectorAgent* inspectorAgent, const String& scriptName, int scriptLine) 210a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 211a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 2122fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 213a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 214a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willCallFunction(scriptName, scriptLine); 215a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 216a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 2172fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 218a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 219a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 220a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didCallFunctionImpl(const InspectorInstrumentationCookie& cookie) 221a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 222a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 223a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didCallFunction(); 224a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 225a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 2262fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willChangeXHRReadyStateImpl(InspectorAgent* inspectorAgent, XMLHttpRequest* request) 227a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 228a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 2292fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 230a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent && request->hasEventListeners(eventNames().readystatechangeEvent)) { 231a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willChangeXHRReadyState(request->url().string(), request->readyState()); 232a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 233a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 2342fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 235a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 236a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 237a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didChangeXHRReadyStateImpl(const InspectorInstrumentationCookie& cookie) 238a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 239a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 240a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didChangeXHRReadyState(); 241a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 242a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 2432fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willDispatchEventImpl(InspectorAgent* inspectorAgent, const Event& event, DOMWindow* window, Node* node, const Vector<EventContext>& ancestors) 244a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 2452fc2651226baac27029e38c9d6ef883fa32084dbSteve Block pauseOnNativeEventIfNeeded(inspectorAgent, listenerEventCategoryType, event.type(), false); 246a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 247a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 2482fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 249a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent && eventHasListeners(event.type(), window, node, ancestors)) { 250a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willDispatchEvent(event); 251a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 252a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 2532fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 254a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 255a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 256a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didDispatchEventImpl(const InspectorInstrumentationCookie& cookie) 257a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 258a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch cancelPauseOnNativeEvent(cookie.first); 259a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 260a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 261a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didDispatchEvent(); 262a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 263a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 2642fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willDispatchEventOnWindowImpl(InspectorAgent* inspectorAgent, const Event& event, DOMWindow* window) 265a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 2662fc2651226baac27029e38c9d6ef883fa32084dbSteve Block pauseOnNativeEventIfNeeded(inspectorAgent, listenerEventCategoryType, event.type(), false); 267a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 268a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 2692fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 270a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent && window->hasEventListeners(event.type())) { 271a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willDispatchEvent(event); 272a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 273a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 2742fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 275a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 276a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 277a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didDispatchEventOnWindowImpl(const InspectorInstrumentationCookie& cookie) 278a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 279a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch cancelPauseOnNativeEvent(cookie.first); 280a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 281a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 282a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didDispatchEvent(); 283a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 284a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 2852fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willEvaluateScriptImpl(InspectorAgent* inspectorAgent, const String& url, int lineNumber) 286a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 287a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 2882fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 289a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 290a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willEvaluateScript(url, lineNumber); 291a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 292a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 2932fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 294a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 295a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 296a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didEvaluateScriptImpl(const InspectorInstrumentationCookie& cookie) 297a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 298a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 299a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didEvaluateScript(); 300a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 301a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 3022fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willFireTimerImpl(InspectorAgent* inspectorAgent, int timerId) 303a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 3042fc2651226baac27029e38c9d6ef883fa32084dbSteve Block pauseOnNativeEventIfNeeded(inspectorAgent, instrumentationEventCategoryType, timerFiredEventName, false); 305a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 306a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 3072fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 308a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 309a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willFireTimer(timerId); 310a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 311a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 3122fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 313a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 314a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 315a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didFireTimerImpl(const InspectorInstrumentationCookie& cookie) 316a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 317a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch cancelPauseOnNativeEvent(cookie.first); 318a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 319a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 320a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didFireTimer(); 321a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 322a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 3232fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willLayoutImpl(InspectorAgent* inspectorAgent) 324a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 325a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 3262fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 327a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 328a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willLayout(); 329a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 330a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 3312fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 332a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 333a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 334a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didLayoutImpl(const InspectorInstrumentationCookie& cookie) 335a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 336a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 337a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didLayout(); 338a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 339a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 3402fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willLoadXHRImpl(InspectorAgent* inspectorAgent, XMLHttpRequest* request) 341a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 342a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 3432fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 344a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent && request->hasEventListeners(eventNames().loadEvent)) { 345a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willLoadXHR(request->url()); 346a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 347a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 3482fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 349a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 350a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 351a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didLoadXHRImpl(const InspectorInstrumentationCookie& cookie) 352a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 353a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 354a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didLoadXHR(); 355a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 356a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 3572fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willPaintImpl(InspectorAgent* inspectorAgent, const IntRect& rect) 358a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 359a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 3602fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 361a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 362a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willPaint(rect); 363a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 364a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 3652fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 366a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 367a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 368a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didPaintImpl(const InspectorInstrumentationCookie& cookie) 369a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 370a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 371a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didPaint(); 372a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 373a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 3742fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willRecalculateStyleImpl(InspectorAgent* inspectorAgent) 375a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 376a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 3772fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 378a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 379a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willRecalculateStyle(); 380a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 381a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 3822fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 383a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 384a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 385a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didRecalculateStyleImpl(const InspectorInstrumentationCookie& cookie) 386a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 387a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 388a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didRecalculateStyle(); 389a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 390a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 3912fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::applyUserAgentOverrideImpl(InspectorAgent* inspectorAgent, String* userAgent) 39265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 3932bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorPageAgent* pageAgent = retrievePageAgent(inspectorAgent)) 3942bde8e466a4451c7319e3a072d118917957d6554Steve Block pageAgent->applyUserAgentOverride(userAgent); 3952fc2651226baac27029e38c9d6ef883fa32084dbSteve Block} 3962fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 3972bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid InspectorInstrumentation::willSendRequestImpl(InspectorAgent* inspectorAgent, unsigned long identifier, DocumentLoader* loader, ResourceRequest& request, const ResourceResponse& redirectResponse) 3982fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{ 3992fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent)) 40065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch timelineAgent->willSendResourceRequest(identifier, request); 4012fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 4022bde8e466a4451c7319e3a072d118917957d6554Steve Block resourceAgent->willSendRequest(identifier, loader, request, redirectResponse); 40365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 40465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4052fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::markResourceAsCachedImpl(InspectorAgent* inspectorAgent, unsigned long identifier) 40665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 4072fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 40865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch resourceAgent->markResourceAsCached(identifier); 40965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 41065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4112fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl(InspectorAgent* inspectorAgent, DocumentLoader* loader, const CachedResource* cachedResource) 41265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 4132fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (!inspectorAgent->enabled()) 41465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 4152fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 41665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch resourceAgent->didLoadResourceFromMemoryCache(loader, cachedResource); 41765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 41865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4192fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceDataImpl(InspectorAgent* inspectorAgent, unsigned long identifier) 420a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 421a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 4222fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 423a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 424a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willReceiveResourceData(identifier); 425a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 426a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 4272fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 428a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 429a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 430a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didReceiveResourceDataImpl(const InspectorInstrumentationCookie& cookie) 431a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 432a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 433a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didReceiveResourceData(); 434a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 435a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 4362fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceResponseImpl(InspectorAgent* inspectorAgent, unsigned long identifier, const ResourceResponse& response) 437a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 438a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 4392fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 440a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 441a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willReceiveResourceResponse(identifier, response); 442a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 443a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 4442fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 445a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 446a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 44765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InspectorInstrumentation::didReceiveResourceResponseImpl(const InspectorInstrumentationCookie& cookie, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response) 448a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 449a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 450a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didReceiveResourceResponse(); 4512bde8e466a4451c7319e3a072d118917957d6554Steve Block if (!loader) 4522bde8e466a4451c7319e3a072d118917957d6554Steve Block return; 4532bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorAgent* inspectorAgent = inspectorAgentForFrame(loader->frame())) { 4542bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 4552bde8e466a4451c7319e3a072d118917957d6554Steve Block resourceAgent->didReceiveResponse(identifier, loader, response); 4562bde8e466a4451c7319e3a072d118917957d6554Steve Block inspectorAgent->consoleAgent()->didReceiveResponse(identifier, response); // This should come AFTER resource notification, front-end relies on this. 4572bde8e466a4451c7319e3a072d118917957d6554Steve Block } 458a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 459a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 4602daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochvoid InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r) 4612daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 4622daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(frame, identifier, r); 4632daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch InspectorInstrumentation::didReceiveResourceResponse(cookie, identifier, loader, r); 4642daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 4652daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4662daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochvoid InspectorInstrumentation::continueAfterXFrameOptionsDeniedImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r) 4672daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 4682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch didReceiveResourceResponseButCanceledImpl(frame, loader, identifier, r); 4692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 4702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochvoid InspectorInstrumentation::continueWithPolicyDownloadImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r) 4722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 4732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch didReceiveResourceResponseButCanceledImpl(frame, loader, identifier, r); 4742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 4752daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4762daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochvoid InspectorInstrumentation::continueWithPolicyIgnoreImpl(Frame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r) 4772daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 4782daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch didReceiveResourceResponseButCanceledImpl(frame, loader, identifier, r); 4792daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 4802daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4812daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochvoid InspectorInstrumentation::didReceiveContentLengthImpl(InspectorAgent* inspectorAgent, unsigned long identifier, int dataLength, int encodedDataLength) 48265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 4832fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 4842daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch resourceAgent->didReceiveContentLength(identifier, dataLength, encodedDataLength); 48565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 48665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4872fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didFinishLoadingImpl(InspectorAgent* inspectorAgent, unsigned long identifier, double finishTime) 48865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 4892fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent)) 49065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch timelineAgent->didFinishLoadingResource(identifier, false, finishTime); 4912fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 49265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch resourceAgent->didFinishLoading(identifier, finishTime); 49365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 49465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4952fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didFailLoadingImpl(InspectorAgent* inspectorAgent, unsigned long identifier, const ResourceError& error) 49665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 4972fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent)) 49865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch timelineAgent->didFinishLoadingResource(identifier, true, 0); 4992fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 50065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch resourceAgent->didFailLoading(identifier, error); 5012bde8e466a4451c7319e3a072d118917957d6554Steve Block inspectorAgent->consoleAgent()->didFailLoading(identifier, error); // This should come AFTER resource notification, front-end relies on this. 50265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 50365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5042fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl(InspectorAgent* inspectorAgent, unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber) 50565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 5062fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->consoleAgent()->resourceRetrievedByXMLHttpRequest(url, sendURL, sendLineNumber); 5072fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 5082daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch resourceAgent->setInitialXHRContent(identifier, sourceString); 50965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 51065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5112fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::scriptImportedImpl(InspectorAgent* inspectorAgent, unsigned long identifier, const String& sourceString) 51265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 5132fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 5142daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch resourceAgent->setInitialScriptContent(identifier, sourceString); 51565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 51665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5172fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::domContentLoadedEventFiredImpl(InspectorAgent* inspectorAgent, Frame* frame, const KURL& url) 51865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 5192bde8e466a4451c7319e3a072d118917957d6554Steve Block DocumentLoader* documentLoader = frame->loader()->documentLoader(); 5202bde8e466a4451c7319e3a072d118917957d6554Steve Block ASSERT(documentLoader); 5212bde8e466a4451c7319e3a072d118917957d6554Steve Block 5222bde8e466a4451c7319e3a072d118917957d6554Steve Block if (frame->page()->mainFrame() != frame || url != documentLoader->requestURL()) 5232bde8e466a4451c7319e3a072d118917957d6554Steve Block return; 5242bde8e466a4451c7319e3a072d118917957d6554Steve Block 5252bde8e466a4451c7319e3a072d118917957d6554Steve Block inspectorAgent->domContentLoadedEventFired(); 5262bde8e466a4451c7319e3a072d118917957d6554Steve Block 5272bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorDOMAgent* domAgent = inspectorAgent->instrumentingAgents()->inspectorDOMAgent()) 5282bde8e466a4451c7319e3a072d118917957d6554Steve Block domAgent->mainFrameDOMContentLoaded(); 5292bde8e466a4451c7319e3a072d118917957d6554Steve Block 5302bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorTimelineAgent* timelineAgent = inspectorAgent->instrumentingAgents()->inspectorTimelineAgent()) 5312bde8e466a4451c7319e3a072d118917957d6554Steve Block timelineAgent->didMarkDOMContentEvent(); 5322bde8e466a4451c7319e3a072d118917957d6554Steve Block 5332daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch if (InspectorResourceAgent* resourceAgent = inspectorAgent->instrumentingAgents()->inspectorResourceAgent()) 5342daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch resourceAgent->domContentEventFired(); 5352daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5362bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorPageAgent* pageAgent = inspectorAgent->instrumentingAgents()->inspectorPageAgent()) 5372bde8e466a4451c7319e3a072d118917957d6554Steve Block pageAgent->domContentEventFired(); 53865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 53965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5402fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::loadEventFiredImpl(InspectorAgent* inspectorAgent, Frame* frame, const KURL& url) 54165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 5422bde8e466a4451c7319e3a072d118917957d6554Steve Block DocumentLoader* documentLoader = frame->loader()->documentLoader(); 5432bde8e466a4451c7319e3a072d118917957d6554Steve Block ASSERT(documentLoader); 5442bde8e466a4451c7319e3a072d118917957d6554Steve Block 5452bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorDOMAgent* domAgent = inspectorAgent->instrumentingAgents()->inspectorDOMAgent()) 5462bde8e466a4451c7319e3a072d118917957d6554Steve Block domAgent->loadEventFired(documentLoader->frame()->document()); 5472bde8e466a4451c7319e3a072d118917957d6554Steve Block 5482bde8e466a4451c7319e3a072d118917957d6554Steve Block if (frame->page()->mainFrame() != frame || url != documentLoader->requestURL()) 5492bde8e466a4451c7319e3a072d118917957d6554Steve Block return; 5502bde8e466a4451c7319e3a072d118917957d6554Steve Block 5512bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorTimelineAgent* timelineAgent = inspectorAgent->instrumentingAgents()->inspectorTimelineAgent()) 5522bde8e466a4451c7319e3a072d118917957d6554Steve Block timelineAgent->didMarkLoadEvent(); 5532bde8e466a4451c7319e3a072d118917957d6554Steve Block 5542daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch if (InspectorResourceAgent* resourceAgent = inspectorAgent->instrumentingAgents()->inspectorResourceAgent()) 5552daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch resourceAgent->loadEventFired(); 5562daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5572bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorPageAgent* pageAgent = inspectorAgent->instrumentingAgents()->inspectorPageAgent()) 5582bde8e466a4451c7319e3a072d118917957d6554Steve Block pageAgent->loadEventFired(); 55965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 56065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5612fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::frameDetachedFromParentImpl(InspectorAgent* inspectorAgent, Frame* frame) 56265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 5632fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 56465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch resourceAgent->frameDetachedFromParent(frame); 56565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 56665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 56781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochvoid InspectorInstrumentation::didCommitLoadImpl(Page* page, InspectorAgent* inspectorAgent, DocumentLoader* loader) 56865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 56981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (!inspectorAgent->enabled()) 57081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return; 57181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 57281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch InstrumentingAgents* instrumentingAgents = inspectorAgent->instrumentingAgents(); 57381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorResourceAgent* resourceAgent = instrumentingAgents->inspectorResourceAgent()) 57481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch resourceAgent->didCommitLoad(loader); 57581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 57681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch Frame* mainFrame = page->mainFrame(); 57781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (loader->frame() != mainFrame) 57881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return; 57981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 58081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorConsoleAgent* consoleAgent = instrumentingAgents->inspectorConsoleAgent()) 58181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch consoleAgent->reset(); 58281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 58381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents->inspectorDebuggerAgent()) { 58481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch KURL url = inspectorAgent->inspectedURLWithoutFragment(); 58581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch debuggerAgent->inspectedURLChanged(url); 58681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch } 58781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 58881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) && USE(JSC) 58981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorProfilerAgent* profilerAgent = instrumentingAgents->inspectorProfilerAgent()) { 59081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch profilerAgent->stopUserInitiatedProfiling(true); 59181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch profilerAgent->resetState(); 59281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch } 59381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 59481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorCSSAgent* cssAgent = instrumentingAgents->inspectorCSSAgent()) 59581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch cssAgent->reset(); 59681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if ENABLE(DATABASE) 59781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorDatabaseAgent* databaseAgent = instrumentingAgents->inspectorDatabaseAgent()) 59881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch databaseAgent->clearResources(); 59981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 60081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if ENABLE(DOM_STORAGE) 60181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorDOMStorageAgent* domStorageAgent = instrumentingAgents->inspectorDOMStorageAgent()) 60281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch domStorageAgent->clearResources(); 60381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 60481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorDOMAgent* domAgent = instrumentingAgents->inspectorDOMAgent()) 60581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch domAgent->setDocument(mainFrame->document()); 6062bde8e466a4451c7319e3a072d118917957d6554Steve Block 6072bde8e466a4451c7319e3a072d118917957d6554Steve Block if (InspectorPageAgent* pageAgent = instrumentingAgents->inspectorPageAgent()) 6082bde8e466a4451c7319e3a072d118917957d6554Steve Block pageAgent->inspectedURLChanged(loader->url().string()); 6092bde8e466a4451c7319e3a072d118917957d6554Steve Block 6102bde8e466a4451c7319e3a072d118917957d6554Steve Block inspectorAgent->didCommitLoad(); 61165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 61265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6132fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorInstrumentationCookie InspectorInstrumentation::willWriteHTMLImpl(InspectorAgent* inspectorAgent, unsigned int length, unsigned int startLine) 614a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 615a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch int timelineAgentId = 0; 6162fc2651226baac27029e38c9d6ef883fa32084dbSteve Block InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent); 617a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent) { 618a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->willWriteHTML(length, startLine); 619a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgentId = timelineAgent->id(); 620a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 6212fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return InspectorInstrumentationCookie(inspectorAgent, timelineAgentId); 622a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 623a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 624a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InspectorInstrumentation::didWriteHTMLImpl(const InspectorInstrumentationCookie& cookie, unsigned int endLine) 625a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 626a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie)) 627a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch timelineAgent->didWriteHTML(endLine); 628a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 629a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 6302fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::addMessageToConsoleImpl(InspectorAgent* inspectorAgent, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack) 63165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6322fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->consoleAgent()->addMessageToConsole(source, type, level, message, arguments, callStack); 63365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 63465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6352fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::addMessageToConsoleImpl(InspectorAgent* inspectorAgent, MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID) 63665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6372fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->consoleAgent()->addMessageToConsole(source, type, level, message, lineNumber, sourceID); 63865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 63965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6402fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::consoleCountImpl(InspectorAgent* inspectorAgent, PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> stack) 64165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6422fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->consoleAgent()->count(arguments, stack); 64365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 64465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6452fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::startConsoleTimingImpl(InspectorAgent* inspectorAgent, const String& title) 64665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6472fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->consoleAgent()->startTiming(title); 64865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 64965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6502fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::stopConsoleTimingImpl(InspectorAgent* inspectorAgent, const String& title, PassRefPtr<ScriptCallStack> stack) 65165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6522fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->consoleAgent()->stopTiming(title, stack); 65365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 65465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6552fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::consoleMarkTimelineImpl(InspectorAgent* inspectorAgent, PassRefPtr<ScriptArguments> arguments) 65665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6572fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorAgent)) { 65865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch String message; 65965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch arguments->getFirstArgumentAsString(message); 66065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch timelineAgent->didMarkTimeline(message); 6612fc2651226baac27029e38c9d6ef883fa32084dbSteve Block } 66265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 66365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 66465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 6652fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::addStartProfilingMessageToConsoleImpl(InspectorAgent* inspectorAgent, const String& title, unsigned lineNumber, const String& sourceURL) 66665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6672fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorProfilerAgent* profilerAgent = inspectorAgent->profilerAgent()) 66865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch profilerAgent->addStartProfilingMessageToConsole(title, lineNumber, sourceURL); 66965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 670ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 6712fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::addProfileImpl(InspectorAgent* inspectorAgent, RefPtr<ScriptProfile> profile, PassRefPtr<ScriptCallStack> callStack) 672ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 6732fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorProfilerAgent* profilerAgent = inspectorAgent->profilerAgent()) { 674ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch const ScriptCallFrame& lastCaller = callStack->at(0); 675ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch profilerAgent->addProfile(profile, lastCaller.lineNumber(), lastCaller.sourceURL()); 676ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch } 677ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 678ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 6792fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockString InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl(InspectorAgent* inspectorAgent, bool incrementProfileNumber) 680ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 6812fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorProfilerAgent* profilerAgent = inspectorAgent->profilerAgent()) 6822fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return profilerAgent->getCurrentUserInitiatedProfileName(incrementProfileNumber); 6832fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return ""; 684ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 685ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 6862fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockbool InspectorInstrumentation::profilerEnabledImpl(InspectorAgent* inspectorAgent) 687ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 6882bde8e466a4451c7319e3a072d118917957d6554Steve Block return inspectorAgent->instrumentingAgents()->inspectorProfilerAgent()->enabled(); 689ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 69065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 69165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 69265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(DATABASE) 6932fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didOpenDatabaseImpl(InspectorAgent* inspectorAgent, PassRefPtr<Database> database, const String& domain, const String& name, const String& version) 69465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 69581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (!inspectorAgent->enabled()) 69681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return; 69781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorDatabaseAgent* dbAgent = inspectorAgent->instrumentingAgents()->inspectorDatabaseAgent()) 69881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch dbAgent->didOpenDatabase(database, domain, name, version); 69965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 70065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 70165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 70265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(DOM_STORAGE) 7032fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didUseDOMStorageImpl(InspectorAgent* inspectorAgent, StorageArea* storageArea, bool isLocalStorage, Frame* frame) 70465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 70581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (!inspectorAgent->enabled()) 70681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return; 70781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorDOMStorageAgent* domStorageAgent = inspectorAgent->instrumentingAgents()->inspectorDOMStorageAgent()) 70881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch domStorageAgent->didUseDOMStorage(storageArea, isLocalStorage, frame); 70965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 71065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 71165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 71265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(WORKERS) 7132fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didCreateWorkerImpl(InspectorAgent* inspectorAgent, intptr_t id, const String& url, bool isSharedWorker) 71465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 7152fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->didCreateWorker(id, url, isSharedWorker); 71665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 71765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 7182fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didDestroyWorkerImpl(InspectorAgent* inspectorAgent, intptr_t id) 71965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 7202fc2651226baac27029e38c9d6ef883fa32084dbSteve Block inspectorAgent->didDestroyWorker(id); 72165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 72265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 72365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 724e14391e94c850b8bd03680c23b38978db68687a8John Reck#if ENABLE(WEB_SOCKETS) 72581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochvoid InspectorInstrumentation::didCreateWebSocketImpl(InspectorAgent* inspectorAgent, unsigned long identifier, const KURL& requestURL, const KURL&) 726e14391e94c850b8bd03680c23b38978db68687a8John Reck{ 72781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (!inspectorAgent->enabled()) 72881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return; 72981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 73081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch resourceAgent->didCreateWebSocket(identifier, requestURL); 731e14391e94c850b8bd03680c23b38978db68687a8John Reck} 732e14391e94c850b8bd03680c23b38978db68687a8John Reck 7332fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl(InspectorAgent* inspectorAgent, unsigned long identifier, const WebSocketHandshakeRequest& request) 734e14391e94c850b8bd03680c23b38978db68687a8John Reck{ 73581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 73681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch resourceAgent->willSendWebSocketHandshakeRequest(identifier, request); 737e14391e94c850b8bd03680c23b38978db68687a8John Reck} 738e14391e94c850b8bd03680c23b38978db68687a8John Reck 7392fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl(InspectorAgent* inspectorAgent, unsigned long identifier, const WebSocketHandshakeResponse& response) 740e14391e94c850b8bd03680c23b38978db68687a8John Reck{ 74181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 74281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch resourceAgent->didReceiveWebSocketHandshakeResponse(identifier, response); 743e14391e94c850b8bd03680c23b38978db68687a8John Reck} 744e14391e94c850b8bd03680c23b38978db68687a8John Reck 7452fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::didCloseWebSocketImpl(InspectorAgent* inspectorAgent, unsigned long identifier) 746e14391e94c850b8bd03680c23b38978db68687a8John Reck{ 74781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorAgent)) 74881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch resourceAgent->didCloseWebSocket(identifier); 749e14391e94c850b8bd03680c23b38978db68687a8John Reck} 750e14391e94c850b8bd03680c23b38978db68687a8John Reck#endif 751e14391e94c850b8bd03680c23b38978db68687a8John Reck 75265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(OFFLINE_WEB_APPLICATIONS) 7532fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::networkStateChangedImpl(InspectorAgent* inspectorAgent) 75465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 75581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorApplicationCacheAgent* applicationCacheAgent = inspectorAgent->instrumentingAgents()->inspectorApplicationCacheAgent()) 75665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch applicationCacheAgent->networkStateChanged(); 75765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 75865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 7592fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::updateApplicationCacheStatusImpl(InspectorAgent* inspectorAgent, Frame* frame) 76065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 76181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorApplicationCacheAgent* applicationCacheAgent = inspectorAgent->instrumentingAgents()->inspectorApplicationCacheAgent()) 76265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch applicationCacheAgent->updateApplicationCacheStatus(frame); 76365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 76465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 76565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 7662fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockbool InspectorInstrumentation::hasFrontend(InspectorAgent* inspectorAgent) 767a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 7682fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return inspectorAgent->hasFrontend(); 769a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 770a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 7712fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::pauseOnNativeEventIfNeeded(InspectorAgent* inspectorAgent, const String& categoryType, const String& eventName, bool synchronous) 772a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 773a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 77481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorAgent->instrumentingAgents()->inspectorBrowserDebuggerAgent()) 77565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch browserDebuggerAgent->pauseOnNativeEventIfNeeded(categoryType, eventName, synchronous); 776a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif 777a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 778a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 7792fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InspectorInstrumentation::cancelPauseOnNativeEvent(InspectorAgent* inspectorAgent) 780a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 781a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if ENABLE(JAVASCRIPT_DEBUGGER) 7822fc2651226baac27029e38c9d6ef883fa32084dbSteve Block if (InspectorDebuggerAgent* debuggerAgent = inspectorAgent->debuggerAgent()) 783a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch debuggerAgent->cancelPauseOnNextStatement(); 784a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif 785a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 786a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 7872fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorTimelineAgent* InspectorInstrumentation::retrieveTimelineAgent(InspectorAgent* inspectorAgent) 788a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 78981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return inspectorAgent->instrumentingAgents()->inspectorTimelineAgent(); 790a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 791a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 792a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochInspectorTimelineAgent* InspectorInstrumentation::retrieveTimelineAgent(const InspectorInstrumentationCookie& cookie) 793a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 7942bde8e466a4451c7319e3a072d118917957d6554Steve Block if (!cookie.first) 7952bde8e466a4451c7319e3a072d118917957d6554Steve Block return 0; 796a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie.first); 797a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch if (timelineAgent && timelineAgent->id() == cookie.second) 798a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return timelineAgent; 799a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return 0; 800a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 801a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 8022fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockInspectorResourceAgent* InspectorInstrumentation::retrieveResourceAgent(InspectorAgent* inspectorAgent) 80365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 80481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch return inspectorAgent->instrumentingAgents()->inspectorResourceAgent(); 80565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 80665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 8072bde8e466a4451c7319e3a072d118917957d6554Steve BlockInspectorPageAgent* InspectorInstrumentation::retrievePageAgent(InspectorAgent* inspectorAgent) 8082bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 8092bde8e466a4451c7319e3a072d118917957d6554Steve Block return inspectorAgent->instrumentingAgents()->inspectorPageAgent(); 8102bde8e466a4451c7319e3a072d118917957d6554Steve Block} 8112bde8e466a4451c7319e3a072d118917957d6554Steve Block 812a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} // namespace WebCore 813a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 814a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif // !ENABLE(INSPECTOR) 815