Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(621)

Side by Side Diff: tools/telemetry/telemetry/internal/backends/chrome_inspector/devtools_client_backend.py

Issue 1224083015: [telemetry] Add support for requesting memory dumps via DevTools API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Final adjustments Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import logging 5 import logging
6 import re 6 import re
7 import sys 7 import sys
8 8
9 from telemetry.core import exceptions 9 from telemetry.core import exceptions
10 from telemetry import decorators 10 from telemetry import decorators
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 "console.timeEnd('" + backend.id + "');" + 207 "console.timeEnd('" + backend.id + "');" +
208 "console.time.toString().indexOf('[native code]') != -1;") 208 "console.time.toString().indexOf('[native code]') != -1;")
209 if not success: 209 if not success:
210 raise Exception('Page stomped on console.time') 210 raise Exception('Page stomped on console.time')
211 trace_data_builder.AddEventsTo( 211 trace_data_builder.AddEventsTo(
212 trace_data_module.TAB_ID_PART, [backend.id]) 212 trace_data_module.TAB_ID_PART, [backend.id])
213 213
214 assert self._tracing_backend 214 assert self._tracing_backend
215 return self._tracing_backend.StopTracing(trace_data_builder, timeout) 215 return self._tracing_backend.StopTracing(trace_data_builder, timeout)
216 216
217 def DumpMemory(self, timeout=30):
218 """Dumps memory.
219
220 Returns:
221 GUID of the generated dump if successful, None otherwise.
222
223 Raises:
224 TracingTimeoutException: If more than |timeout| seconds has passed
225 since the last time any data is received.
226 TracingUnrecoverableException: If there is a websocket error.
227 TracingUnexpectedResponseException: If the response contains an error
228 or does not contain the expected result.
229 """
230 self._CreateTracingBackendIfNeeded()
231 return self._tracing_backend.DumpMemory(timeout)
232
217 233
218 class _DevToolsContextMapBackend(object): 234 class _DevToolsContextMapBackend(object):
219 def __init__(self, app_backend, devtools_client): 235 def __init__(self, app_backend, devtools_client):
220 self._app_backend = app_backend 236 self._app_backend = app_backend
221 self._devtools_client = devtools_client 237 self._devtools_client = devtools_client
222 self._contexts = None 238 self._contexts = None
223 self._inspector_backends_dict = {} 239 self._inspector_backends_dict = {}
224 240
225 @property 241 @property
226 def contexts(self): 242 def contexts(self):
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 # If an InspectorBackend is already created for the tab, 284 # If an InspectorBackend is already created for the tab,
269 # webSocketDebuggerUrl will be missing, and this is expected. 285 # webSocketDebuggerUrl will be missing, and this is expected.
270 context_id = context['id'] 286 context_id = context['id']
271 if context_id not in self._inspector_backends_dict: 287 if context_id not in self._inspector_backends_dict:
272 if 'webSocketDebuggerUrl' not in context: 288 if 'webSocketDebuggerUrl' not in context:
273 logging.debug('webSocketDebuggerUrl missing, removing %s' 289 logging.debug('webSocketDebuggerUrl missing, removing %s'
274 % context_id) 290 % context_id)
275 continue 291 continue
276 valid_contexts.append(context) 292 valid_contexts.append(context)
277 self._contexts = valid_contexts 293 self._contexts = valid_contexts
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698