void InspectorProfilerAgent::addProfile(PassRefPtr<ScriptProfile> prpProfile, unsigned lineNumber, unsigned columnNumber, const String& sourceURL) { RefPtr<ScriptProfile> profile = prpProfile; m_profiles.add(profile->uid(), profile); if (m_frontendDispatcher && m_profileHeadersRequested) m_frontendDispatcher->addProfileHeader(createProfileHeader(*profile)); addProfileFinishedMessageToConsole(profile, lineNumber, columnNumber, sourceURL); }
void InspectorProfilerAgent::addProfile(PassRefPtr<ScriptProfile> prpProfile, unsigned lineNumber, const String& sourceURL) { RefPtr<ScriptProfile> profile = prpProfile; m_profiles.add(profile->uid(), profile); if (m_frontend && m_state->getBoolean(ProfilerAgentState::profileHeadersRequested)) m_frontend->addProfileHeader(createProfileHeader(*profile)); addProfileFinishedMessageToConsole(profile, lineNumber, sourceURL); }
void InspectorProfilerAgent::getProfileHeaders(ErrorString*, RefPtr<TypeBuilder::Array<TypeBuilder::Profiler::ProfileHeader> >& headers) { m_state->setBoolean(ProfilerAgentState::profileHeadersRequested, true); headers = TypeBuilder::Array<TypeBuilder::Profiler::ProfileHeader>::create(); ProfilesMap::iterator profilesEnd = m_profiles.end(); for (ProfilesMap::iterator it = m_profiles.begin(); it != profilesEnd; ++it) headers->addItem(createProfileHeader(*it->value)); }
void InspectorProfilerAgent::getProfileHeaders(ErrorString*, RefPtr<InspectorArray>* headers) { ProfilesMap::iterator profilesEnd = m_profiles.end(); for (ProfilesMap::iterator it = m_profiles.begin(); it != profilesEnd; ++it) (*headers)->pushObject(createProfileHeader(*it->second)); HeapSnapshotsMap::iterator snapshotsEnd = m_snapshots.end(); for (HeapSnapshotsMap::iterator it = m_snapshots.begin(); it != snapshotsEnd; ++it) (*headers)->pushObject(createSnapshotHeader(*it->second)); }
void InspectorProfilerAgent::getProfileHeaders(ErrorString*, RefPtr<TypeBuilder::Array<InspectorObject> >& headers) { headers = TypeBuilder::Array<InspectorObject>::create(); ProfilesMap::iterator profilesEnd = m_profiles.end(); for (ProfilesMap::iterator it = m_profiles.begin(); it != profilesEnd; ++it) headers->addItem(createProfileHeader(*it->second)); HeapSnapshotsMap::iterator snapshotsEnd = m_snapshots.end(); for (HeapSnapshotsMap::iterator it = m_snapshots.begin(); it != snapshotsEnd; ++it) headers->addItem(createSnapshotHeader(*it->second)); }
void InspectorProfilerAgent::getProfileHeaders(ErrorString*, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::ProfileHeader>>& headers) { m_profileHeadersRequested = true; headers = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::ProfileHeader>::create(); ProfilesMap::iterator profilesEnd = m_profiles.end(); for (ProfilesMap::iterator it = m_profiles.begin(); it != profilesEnd; ++it) headers->addItem(createProfileHeader(*it->value)); HeapSnapshotsMap::iterator snapshotsEnd = m_snapshots.end(); for (HeapSnapshotsMap::iterator it = m_snapshots.begin(); it != snapshotsEnd; ++it) headers->addItem(createSnapshotHeader(*it->value)); }
void InspectorProfilerAgent::getProfile(const String& type, unsigned uid, RefPtr<InspectorObject>* profileObject) { if (type == CPUProfileType) { ProfilesMap::iterator it = m_profiles.find(uid); if (it != m_profiles.end()) { *profileObject = createProfileHeader(*it->second); (*profileObject)->setObject("head", it->second->buildInspectorObjectForHead()); } } else if (type == HeapProfileType) { HeapSnapshotsMap::iterator it = m_snapshots.find(uid); if (it != m_snapshots.end()) { *profileObject = createSnapshotHeader(*it->second); (*profileObject)->setObject("head", it->second->buildInspectorObjectForHead()); } } }
PassRefPtr<TypeBuilder::Profiler::ProfileHeader> InspectorProfilerAgent::stop(ErrorString* errorString) { if (!m_recordingCPUProfile) return 0; m_recordingCPUProfile = false; String title = getCurrentUserInitiatedProfileName(); RefPtr<ScriptProfile> profile = stopProfiling(title); RefPtr<TypeBuilder::Profiler::ProfileHeader> profileHeader; if (profile) { addProfile(profile, 0, String()); profileHeader = createProfileHeader(*profile); } else if (errorString) *errorString = "Profile wasn't found"; toggleRecordButton(false); m_state->setBoolean(ProfilerAgentState::userInitiatedProfiling, false); return profileHeader; }
void InspectorProfilerAgent::getProfile(const String& type, unsigned uid, RefPtr<InspectorObject>* profileObject) { if (type == CPUProfileType) { ProfilesMap::iterator it = m_profiles.find(uid); if (it != m_profiles.end()) { *profileObject = createProfileHeader(*it->second); (*profileObject)->setObject("head", it->second->buildInspectorObjectForHead()); } } else if (type == HeapProfileType) { HeapSnapshotsMap::iterator it = m_snapshots.find(uid); if (it != m_snapshots.end()) { RefPtr<ScriptHeapSnapshot> snapshot = it->second; *profileObject = createSnapshotHeader(*snapshot); if (m_frontend) { OutputStream stream(m_frontend, uid); snapshot->writeJSON(&stream); } } } }
PassRefPtr<TypeBuilder::Profiler::ProfileHeader> InspectorProfilerAgent::stop(ErrorString* errorString) { if (!m_recordingCPUProfile) { if (errorString) *errorString = "No recording profiles found"; return 0; } m_recordingCPUProfile = false; if (m_overlay) m_overlay->finishedRecordingProfile(); String title = getCurrentUserInitiatedProfileName(); RefPtr<ScriptProfile> profile = ScriptProfiler::stop(title); RefPtr<TypeBuilder::Profiler::ProfileHeader> profileHeader; if (profile) { addProfile(profile, 0, String()); profileHeader = createProfileHeader(*profile); } else if (errorString) *errorString = "Profile wasn't found"; m_state->setBoolean(ProfilerAgentState::userInitiatedProfiling, false); return profileHeader; }
void InspectorProfilerAgent::getProfile(ErrorString*, const String& type, int rawUid, RefPtr<InspectorObject>& profileObject) { unsigned uid = static_cast<unsigned>(rawUid); if (type == CPUProfileType) { ProfilesMap::iterator it = m_profiles.find(uid); if (it != m_profiles.end()) { profileObject = createProfileHeader(*it->second); profileObject->setObject("head", it->second->buildInspectorObjectForHead()); if (it->second->bottomUpHead()) profileObject->setObject("bottomUpHead", it->second->buildInspectorObjectForBottomUpHead()); } } else if (type == HeapProfileType) { HeapSnapshotsMap::iterator it = m_snapshots.find(uid); if (it != m_snapshots.end()) { RefPtr<ScriptHeapSnapshot> snapshot = it->second; profileObject = createSnapshotHeader(*snapshot); if (m_frontend) { OutputStream stream(m_frontend, uid); snapshot->writeJSON(&stream); } } } }