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::stopUserInitiatedProfiling(bool ignoreProfile) { if (!m_recordingUserInitiatedProfile) return; m_recordingUserInitiatedProfile = false; String title = getCurrentUserInitiatedProfileName(); #if USE(JSC) JSC::ExecState* scriptState = toJSDOMWindow(m_inspectorController->inspectedPage()->mainFrame(), debuggerWorld())->globalExec(); #else // Use null script state to avoid filtering by context security token. // All functions from all iframes should be visible from Inspector UI. ScriptState* scriptState = 0; #endif RefPtr<ScriptProfile> profile = ScriptProfiler::stop(scriptState, title); if (profile) { if (!ignoreProfile) addProfile(profile, 0, String()); else addProfileFinishedMessageToConsole(profile, 0, String()); } toggleRecordButton(false); }