diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 08:15:24 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-05-25 08:15:24 -0700 |
commit | fa91a01aee5d4a80ca6c80f722116b850f09996c (patch) | |
tree | f72740e60d3c3d4f0ab144e88c03d1f134944ce3 /Source/WebCore/inspector/InspectorTimelineAgent.cpp | |
parent | 96f37d6d1b390f6690858789706ee6ec25bc1677 (diff) | |
parent | feebf8e7a79ad68b04a1a948e2b8078d6e5f0048 (diff) | |
download | external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.zip external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.tar.gz external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.tar.bz2 |
Merge changes I78ff6a85,Ic85c6405,Ibf903baa,I3a0459db,I35140385,I54790419,I6bfe5d24,Ia9f39b83,I5bcecd5a,I1de96683,I543c6810,I8a5b0878,I0ae670bf,Ide4d58dc,I28ebaf3d,I499d6631,Ie5090e0d,I6d3e5f1f
* changes:
Merge WebKit at r78450: Update ThirdPartyProject.prop
Merge WebKit at r78450: Add new Font::canExpandAroundIdeographsInComplexText()
Merge WebKit at r78450: Add new ChromeClient::selectItemAlignmentFollowsMenuWritingDirection()
Merge WebKit at r78450: FrameLoaderClient::didRunInsecureContent() signature changed
Merge WebKit at r78450: HTMLAreaElement::getRect() renamed
Merge WebKit at r78450: FrameLoader::url() removed
Merge WebKit at r78450: HTMLParserQuirks removed
Merge WebKit at r78450: TextRun::padding() renamed
Merge WebKit at r78450: Use new FontMetrics
Merge WebKit at r78450: GraphicsContext current path removed
Merge WebKit at r78450: TransformationMatrix multiply methods renamed and meaning changed
Merge WebKit at r78450: FontCustomPlatformData::fontPlatformData() signature changed
Merge WebKit at r78450: IntRect::bottom()/right() renamed
Merge WebKit at r78450: Fix remaining conflicts
Merge WebKit at r78450: Fix conflicts due to new ENABLE_WEB_ARCHIVE guard
Merge WebKit at r78450: Fix conflicts in media controls
Merge WebKit at r78450: Fix Makefiles
Merge WebKit at r78450: Initial merge by git.
Diffstat (limited to 'Source/WebCore/inspector/InspectorTimelineAgent.cpp')
-rw-r--r-- | Source/WebCore/inspector/InspectorTimelineAgent.cpp | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/Source/WebCore/inspector/InspectorTimelineAgent.cpp b/Source/WebCore/inspector/InspectorTimelineAgent.cpp index 081a5f0..dd0a119 100644 --- a/Source/WebCore/inspector/InspectorTimelineAgent.cpp +++ b/Source/WebCore/inspector/InspectorTimelineAgent.cpp @@ -35,6 +35,7 @@ #include "Event.h" #include "InspectorFrontend.h" +#include "InspectorState.h" #include "IntRect.h" #include "ResourceRequest.h" #include "ResourceResponse.h" @@ -44,14 +45,17 @@ namespace WebCore { +namespace TimelineAgentState { +static const char timelineAgentEnabled[] = "timelineAgentEnabled"; +} + int InspectorTimelineAgent::s_id = 0; -InspectorTimelineAgent::InspectorTimelineAgent(InspectorFrontend* frontend) - : m_frontend(frontend) - , m_id(++s_id) +PassOwnPtr<InspectorTimelineAgent> InspectorTimelineAgent::restore(InspectorState* state, InspectorFrontend* frontend) { - ScriptGCEvent::addEventListener(this); - ASSERT(m_frontend); + if (state->getBoolean(TimelineAgentState::timelineAgentEnabled)) + return create(state, frontend); + return 0; } void InspectorTimelineAgent::pushGCEventRecords() @@ -76,7 +80,9 @@ void InspectorTimelineAgent::didGC(double startTime, double endTime, size_t coll InspectorTimelineAgent::~InspectorTimelineAgent() { + m_frontend->timelineProfilerWasStopped(); ScriptGCEvent::removeEventListener(this); + m_state->setBoolean(TimelineAgentState::timelineAgentEnabled, false); } void InspectorTimelineAgent::willCallFunction(const String& scriptName, int scriptLine) @@ -272,15 +278,15 @@ void InspectorTimelineAgent::didMarkLoadEvent() addRecordToTimeline(record.release(), MarkLoadEventType); } -void InspectorTimelineAgent::reset() +void InspectorTimelineAgent::didCommitLoad() { m_recordStack.clear(); } -void InspectorTimelineAgent::resetFrontendProxyObject(InspectorFrontend* frontend) +void InspectorTimelineAgent::setFrontend(InspectorFrontend* frontend) { ASSERT(frontend); - reset(); + m_recordStack.clear(); m_frontend = frontend; } @@ -301,7 +307,8 @@ void InspectorTimelineAgent::setHeapSizeStatistic(InspectorObject* record) { size_t usedHeapSize = 0; size_t totalHeapSize = 0; - ScriptGCEvent::getHeapSize(usedHeapSize, totalHeapSize); + size_t heapSizeLimit = 0; + ScriptGCEvent::getHeapSize(usedHeapSize, totalHeapSize, heapSizeLimit); record->setNumber("usedHeapSize", usedHeapSize); record->setNumber("totalHeapSize", totalHeapSize); } @@ -322,6 +329,16 @@ void InspectorTimelineAgent::didCompleteCurrentRecord(TimelineRecordType type) } } +InspectorTimelineAgent::InspectorTimelineAgent(InspectorState* state, InspectorFrontend* frontend) + : m_state(state) + , m_frontend(frontend) + , m_id(++s_id) +{ + ScriptGCEvent::addEventListener(this); + m_frontend->timelineProfilerWasStarted(); + m_state->setBoolean(TimelineAgentState::timelineAgentEnabled, true); +} + void InspectorTimelineAgent::pushCurrentRecord(PassRefPtr<InspectorObject> data, TimelineRecordType type) { pushGCEventRecords(); |