OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 { | 182 { |
183 } | 183 } |
184 RefPtr<TimelineEvent> record; | 184 RefPtr<TimelineEvent> record; |
185 RefPtr<JSONObject> data; | 185 RefPtr<JSONObject> data; |
186 RefPtr<TypeBuilder::Array<TimelineEvent> > children; | 186 RefPtr<TypeBuilder::Array<TimelineEvent> > children; |
187 String type; | 187 String type; |
188 bool skipWhenUnbalanced; | 188 bool skipWhenUnbalanced; |
189 }; | 189 }; |
190 | 190 |
191 class TimelineRecordStack { | 191 class TimelineRecordStack { |
| 192 DISALLOW_ALLOCATION(); |
192 private: | 193 private: |
193 struct Entry { | 194 struct Entry { |
194 Entry(PassRefPtr<TimelineEvent> record, const String& type) | 195 Entry(PassRefPtr<TimelineEvent> record, const String& type) |
195 : record(record) | 196 : record(record) |
196 , children(TypeBuilder::Array<TimelineEvent>::create()) | 197 , children(TypeBuilder::Array<TimelineEvent>::create()) |
197 #if ENABLE(ASSERT) | 198 #if ENABLE(ASSERT) |
198 , type(type) | 199 , type(type) |
199 #endif | 200 #endif |
200 { | 201 { |
201 } | 202 } |
202 | 203 |
203 RefPtr<TimelineEvent> record; | 204 RefPtr<TimelineEvent> record; |
204 RefPtr<TypeBuilder::Array<TimelineEvent> > children; | 205 RefPtr<TypeBuilder::Array<TimelineEvent> > children; |
205 #if ENABLE(ASSERT) | 206 #if ENABLE(ASSERT) |
206 String type; | 207 String type; |
207 #endif | 208 #endif |
208 }; | 209 }; |
209 | 210 |
210 public: | 211 public: |
211 TimelineRecordStack() : m_timelineAgent(0) { } | 212 TimelineRecordStack() : m_timelineAgent(nullptr) { } |
212 TimelineRecordStack(InspectorTimelineAgent*); | 213 explicit TimelineRecordStack(InspectorTimelineAgent*); |
213 | 214 |
214 void addScopedRecord(PassRefPtr<TimelineEvent> record, const String& type); | 215 void addScopedRecord(PassRefPtr<TimelineEvent> record, const String& type); |
215 void closeScopedRecord(double endTime); | 216 void closeScopedRecord(double endTime); |
216 void addInstantRecord(PassRefPtr<TimelineEvent> record); | 217 void addInstantRecord(PassRefPtr<TimelineEvent> record); |
217 | 218 |
218 #if ENABLE(ASSERT) | 219 #if ENABLE(ASSERT) |
219 bool isOpenRecordOfType(const String& type); | 220 bool isOpenRecordOfType(const String& type); |
220 #endif | 221 #endif |
221 | 222 |
| 223 void trace(Visitor*); |
| 224 |
222 private: | 225 private: |
223 void send(PassRefPtr<JSONObject>); | 226 void send(PassRefPtr<JSONObject>); |
224 | 227 |
225 InspectorTimelineAgent* m_timelineAgent; | 228 RawPtrWillBeMember<InspectorTimelineAgent> m_timelineAgent; |
226 Vector<Entry> m_stack; | 229 Vector<Entry> m_stack; |
227 }; | 230 }; |
228 | 231 |
229 struct TimelineThreadState { | 232 struct TimelineThreadState { |
| 233 ALLOW_ONLY_INLINE_ALLOCATION(); |
| 234 public: |
230 TimelineThreadState() { } | 235 TimelineThreadState() { } |
231 | 236 |
232 TimelineThreadState(InspectorTimelineAgent* timelineAgent) | 237 TimelineThreadState(InspectorTimelineAgent* timelineAgent) |
233 : recordStack(timelineAgent) | 238 : recordStack(timelineAgent) |
234 , inKnownLayerTask(false) | 239 , inKnownLayerTask(false) |
235 , decodedPixelRefId(0) | 240 , decodedPixelRefId(0) |
236 { | 241 { |
237 } | 242 } |
238 | 243 |
| 244 void trace(Visitor*); |
| 245 |
239 TimelineRecordStack recordStack; | 246 TimelineRecordStack recordStack; |
240 bool inKnownLayerTask; | 247 bool inKnownLayerTask; |
241 unsigned long long decodedPixelRefId; | 248 unsigned long long decodedPixelRefId; |
242 }; | 249 }; |
243 | 250 |
244 struct TimelineImageInfo { | 251 struct TimelineImageInfo { |
245 int backendNodeId; | 252 int backendNodeId; |
246 String url; | 253 String url; |
247 | 254 |
248 TimelineImageInfo() : backendNodeId(0) { } | 255 TimelineImageInfo() : backendNodeId(0) { } |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 } | 296 } |
290 | 297 |
291 InspectorTimelineAgent::~InspectorTimelineAgent() | 298 InspectorTimelineAgent::~InspectorTimelineAgent() |
292 { | 299 { |
293 } | 300 } |
294 | 301 |
295 void InspectorTimelineAgent::trace(Visitor* visitor) | 302 void InspectorTimelineAgent::trace(Visitor* visitor) |
296 { | 303 { |
297 visitor->trace(m_pageAgent); | 304 visitor->trace(m_pageAgent); |
298 visitor->trace(m_layerTreeAgent); | 305 visitor->trace(m_layerTreeAgent); |
| 306 #if ENABLE(OILPAN) |
| 307 visitor->trace(m_threadStates); |
| 308 #endif |
299 InspectorBaseAgent::trace(visitor); | 309 InspectorBaseAgent::trace(visitor); |
300 } | 310 } |
301 | 311 |
302 void InspectorTimelineAgent::setFrontend(InspectorFrontend* frontend) | 312 void InspectorTimelineAgent::setFrontend(InspectorFrontend* frontend) |
303 { | 313 { |
304 m_frontend = frontend->timeline(); | 314 m_frontend = frontend->timeline(); |
305 } | 315 } |
306 | 316 |
307 void InspectorTimelineAgent::clearFrontend() | 317 void InspectorTimelineAgent::clearFrontend() |
308 { | 318 { |
(...skipping 1030 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1339 m_stack.last().children->addItem(record); | 1349 m_stack.last().children->addItem(record); |
1340 } | 1350 } |
1341 | 1351 |
1342 #if ENABLE(ASSERT) | 1352 #if ENABLE(ASSERT) |
1343 bool TimelineRecordStack::isOpenRecordOfType(const String& type) | 1353 bool TimelineRecordStack::isOpenRecordOfType(const String& type) |
1344 { | 1354 { |
1345 return !m_stack.isEmpty() && m_stack.last().type == type; | 1355 return !m_stack.isEmpty() && m_stack.last().type == type; |
1346 } | 1356 } |
1347 #endif | 1357 #endif |
1348 | 1358 |
| 1359 void TimelineRecordStack::trace(Visitor* visitor) |
| 1360 { |
| 1361 visitor->trace(m_timelineAgent); |
| 1362 } |
| 1363 |
| 1364 void TimelineThreadState::trace(Visitor* visitor) |
| 1365 { |
| 1366 visitor->trace(recordStack); |
| 1367 } |
| 1368 |
1349 } // namespace blink | 1369 } // namespace blink |
1350 | 1370 |
OLD | NEW |