Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2010 Google Inc. All rights reserved. | 3 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 { | 57 { |
| 58 RefPtr<TypeBuilder::Profiler::CPUProfile> profile = TypeBuilder::Profiler::C PUProfile::create() | 58 RefPtr<TypeBuilder::Profiler::CPUProfile> profile = TypeBuilder::Profiler::C PUProfile::create() |
| 59 .setHead(scriptProfile.buildInspectorObjectForHead()) | 59 .setHead(scriptProfile.buildInspectorObjectForHead()) |
| 60 .setStartTime(scriptProfile.startTime()) | 60 .setStartTime(scriptProfile.startTime()) |
| 61 .setEndTime(scriptProfile.endTime()); | 61 .setEndTime(scriptProfile.endTime()); |
| 62 profile->setSamples(scriptProfile.buildInspectorObjectForSamples()); | 62 profile->setSamples(scriptProfile.buildInspectorObjectForSamples()); |
| 63 profile->setTimestamps(scriptProfile.buildInspectorObjectForTimestamps()); | 63 profile->setTimestamps(scriptProfile.buildInspectorObjectForTimestamps()); |
| 64 return profile.release(); | 64 return profile.release(); |
| 65 } | 65 } |
| 66 | 66 |
| 67 static PassRefPtr<TypeBuilder::Debugger::Location> currentDebugLocation(ScriptSt ate* scriptState) | 67 static PassRefPtr<TypeBuilder::Debugger::Location> currentDebugLocation() |
| 68 { | 68 { |
| 69 RefPtrWillBeRawPtr<ScriptCallStack> callStack(createScriptCallStackForConsol e(scriptState, 1)); | 69 RefPtrWillBeRawPtr<ScriptCallStack> callStack(createScriptCallStackForConsol e(1)); |
|
vsevik
2014/08/11 15:52:03
You could simply call createScriptCallStack(1) her
kozyatinskiy1
2014/08/11 16:05:34
Done.
| |
| 70 const ScriptCallFrame& lastCaller = callStack->at(0); | 70 const ScriptCallFrame& lastCaller = callStack->at(0); |
| 71 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo cation::create() | 71 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo cation::create() |
| 72 .setScriptId(lastCaller.scriptId()) | 72 .setScriptId(lastCaller.scriptId()) |
| 73 .setLineNumber(lastCaller.lineNumber()); | 73 .setLineNumber(lastCaller.lineNumber()); |
| 74 location->setColumnNumber(lastCaller.columnNumber()); | 74 location->setColumnNumber(lastCaller.columnNumber()); |
| 75 return location.release(); | 75 return location.release(); |
| 76 } | 76 } |
| 77 | 77 |
| 78 class InspectorProfilerAgent::ProfileDescriptor { | 78 class InspectorProfilerAgent::ProfileDescriptor { |
| 79 public: | 79 public: |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 97 , m_profileNameIdleTimeMap(ScriptProfiler::currentProfileNameIdleTimeMap()) | 97 , m_profileNameIdleTimeMap(ScriptProfiler::currentProfileNameIdleTimeMap()) |
| 98 , m_idleStartTime(0.0) | 98 , m_idleStartTime(0.0) |
| 99 , m_overlay(overlay) | 99 , m_overlay(overlay) |
| 100 { | 100 { |
| 101 } | 101 } |
| 102 | 102 |
| 103 InspectorProfilerAgent::~InspectorProfilerAgent() | 103 InspectorProfilerAgent::~InspectorProfilerAgent() |
| 104 { | 104 { |
| 105 } | 105 } |
| 106 | 106 |
| 107 void InspectorProfilerAgent::consoleProfile(ExecutionContext* context, const Str ing& title, ScriptState* scriptState) | 107 void InspectorProfilerAgent::consoleProfile(ExecutionContext* context, const Str ing& title) |
| 108 { | 108 { |
| 109 UseCounter::count(context, UseCounter::DevToolsConsoleProfile); | 109 UseCounter::count(context, UseCounter::DevToolsConsoleProfile); |
| 110 ASSERT(m_frontend && enabled()); | 110 ASSERT(m_frontend && enabled()); |
| 111 String id = nextProfileId(); | 111 String id = nextProfileId(); |
| 112 m_startedProfiles.append(ProfileDescriptor(id, title)); | 112 m_startedProfiles.append(ProfileDescriptor(id, title)); |
| 113 ScriptProfiler::start(id); | 113 ScriptProfiler::start(id); |
| 114 m_frontend->consoleProfileStarted(id, currentDebugLocation(scriptState), tit le.isNull() ? 0 : &title); | 114 m_frontend->consoleProfileStarted(id, currentDebugLocation(), title.isNull() ? 0 : &title); |
| 115 } | 115 } |
| 116 | 116 |
| 117 void InspectorProfilerAgent::consoleProfileEnd(const String& title, ScriptState* scriptState) | 117 void InspectorProfilerAgent::consoleProfileEnd(const String& title) |
| 118 { | 118 { |
| 119 ASSERT(m_frontend && enabled()); | 119 ASSERT(m_frontend && enabled()); |
| 120 String id; | 120 String id; |
| 121 String resolvedTitle; | 121 String resolvedTitle; |
| 122 // Take last started profile if no title was passed. | 122 // Take last started profile if no title was passed. |
| 123 if (title.isNull()) { | 123 if (title.isNull()) { |
| 124 if (m_startedProfiles.isEmpty()) | 124 if (m_startedProfiles.isEmpty()) |
| 125 return; | 125 return; |
| 126 id = m_startedProfiles.last().m_id; | 126 id = m_startedProfiles.last().m_id; |
| 127 resolvedTitle = m_startedProfiles.last().m_title; | 127 resolvedTitle = m_startedProfiles.last().m_title; |
| 128 m_startedProfiles.removeLast(); | 128 m_startedProfiles.removeLast(); |
| 129 } else { | 129 } else { |
| 130 for (size_t i = 0; i < m_startedProfiles.size(); i++) { | 130 for (size_t i = 0; i < m_startedProfiles.size(); i++) { |
| 131 if (m_startedProfiles[i].m_title == title) { | 131 if (m_startedProfiles[i].m_title == title) { |
| 132 resolvedTitle = title; | 132 resolvedTitle = title; |
| 133 id = m_startedProfiles[i].m_id; | 133 id = m_startedProfiles[i].m_id; |
| 134 m_startedProfiles.remove(i); | 134 m_startedProfiles.remove(i); |
| 135 break; | 135 break; |
| 136 } | 136 } |
| 137 } | 137 } |
| 138 if (id.isEmpty()) | 138 if (id.isEmpty()) |
| 139 return; | 139 return; |
| 140 } | 140 } |
| 141 RefPtrWillBeRawPtr<ScriptProfile> profile = ScriptProfiler::stop(id); | 141 RefPtrWillBeRawPtr<ScriptProfile> profile = ScriptProfiler::stop(id); |
| 142 if (!profile) | 142 if (!profile) |
| 143 return; | 143 return; |
| 144 RefPtr<TypeBuilder::Debugger::Location> location = currentDebugLocation(scri ptState); | 144 RefPtr<TypeBuilder::Debugger::Location> location = currentDebugLocation(); |
| 145 m_frontend->consoleProfileFinished(id, location, createCPUProfile(*profile), resolvedTitle.isNull() ? 0 : &resolvedTitle); | 145 m_frontend->consoleProfileFinished(id, location, createCPUProfile(*profile), resolvedTitle.isNull() ? 0 : &resolvedTitle); |
| 146 } | 146 } |
| 147 | 147 |
| 148 void InspectorProfilerAgent::enable(ErrorString*) | 148 void InspectorProfilerAgent::enable(ErrorString*) |
| 149 { | 149 { |
| 150 m_state->setBoolean(ProfilerAgentState::profilerEnabled, true); | 150 m_state->setBoolean(ProfilerAgentState::profilerEnabled, true); |
| 151 doEnable(); | 151 doEnable(); |
| 152 } | 152 } |
| 153 | 153 |
| 154 void InspectorProfilerAgent::doEnable() | 154 void InspectorProfilerAgent::doEnable() |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 298 } | 298 } |
| 299 | 299 |
| 300 void InspectorProfilerAgent::trace(Visitor* visitor) | 300 void InspectorProfilerAgent::trace(Visitor* visitor) |
| 301 { | 301 { |
| 302 visitor->trace(m_injectedScriptManager); | 302 visitor->trace(m_injectedScriptManager); |
| 303 InspectorBaseAgent::trace(visitor); | 303 InspectorBaseAgent::trace(visitor); |
| 304 } | 304 } |
| 305 | 305 |
| 306 } // namespace blink | 306 } // namespace blink |
| 307 | 307 |
| OLD | NEW |