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

Unified Diff: tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_backend.py

Issue 962443002: Revert of Telemetry: Refactor inspector_websocket to create cleaner interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_page.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_backend.py
diff --git a/tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_backend.py b/tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_backend.py
index ceff8d735824618ccfc8bbd3e634ecb3f9c9e6ca..55c7f7bf2b9b678b634af20a33b9c2281190774b 100644
--- a/tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_backend.py
+++ b/tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_backend.py
@@ -4,7 +4,6 @@
import logging
import os
-import socket
import sys
from telemetry import decorators
@@ -29,7 +28,7 @@
class InspectorBackend(object):
def __init__(self, app, devtools_client, context, timeout=60):
- self._websocket = inspector_websocket.InspectorWebsocket()
+ self._websocket = inspector_websocket.InspectorWebsocket(self._HandleError)
self._websocket.RegisterDomain(
'Inspector', self._HandleInspectorDomainNotification)
@@ -95,10 +94,7 @@
def Screenshot(self, timeout):
assert self.screenshot_supported, 'Browser does not support screenshotting'
- try:
- return self._page.CaptureScreenshot(timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ return self._page.CaptureScreenshot(timeout)
# Console public methods.
@@ -113,10 +109,7 @@
# Memory public methods.
def GetDOMStats(self, timeout):
- try:
- dom_counters = self._memory.GetDOMCounters(timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ dom_counters = self._memory.GetDOMCounters(timeout)
return {
'document_count': dom_counters['documents'],
'node_count': dom_counters['nodes'],
@@ -126,42 +119,24 @@
# Page public methods.
def WaitForNavigate(self, timeout):
- try:
- self._page.WaitForNavigate(timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ self._page.WaitForNavigate(timeout)
def Navigate(self, url, script_to_evaluate_on_commit, timeout):
- try:
- self._page.Navigate(url, script_to_evaluate_on_commit, timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ self._page.Navigate(url, script_to_evaluate_on_commit, timeout)
def GetCookieByName(self, name, timeout):
- try:
- return self._page.GetCookieByName(name, timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ return self._page.GetCookieByName(name, timeout)
# Runtime public methods.
def ExecuteJavaScript(self, expr, context_id=None, timeout=60):
- try:
- self._runtime.Execute(expr, context_id, timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ self._runtime.Execute(expr, context_id, timeout)
def EvaluateJavaScript(self, expr, context_id=None, timeout=60):
- try:
- return self._runtime.Evaluate(expr, context_id, timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ return self._runtime.Evaluate(expr, context_id, timeout)
def EnableAllContexts(self):
- try:
- return self._runtime.EnableAllContexts()
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ return self._runtime.EnableAllContexts()
# Timeline public methods.
@@ -170,18 +145,12 @@
return self._timeline_model
def StartTimelineRecording(self):
- try:
- self._network.timeline_recorder.Start()
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ self._network.timeline_recorder.Start()
def StopTimelineRecording(self):
builder = trace_data_module.TraceDataBuilder()
- try:
- data = self._network.timeline_recorder.Stop()
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ data = self._network.timeline_recorder.Stop()
if data:
builder.AddEventsTo(trace_data_module.INSPECTOR_TRACE_PART, data)
self._timeline_model = timeline_model_module.TimelineModel(
@@ -190,10 +159,7 @@
# Network public methods.
def ClearCache(self):
- try:
- self._network.ClearCache()
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ self._network.ClearCache()
# Methods used internally by other backends.
@@ -205,15 +171,15 @@
if res['method'] == 'Inspector.targetCrashed':
raise exceptions.DevtoolsTargetCrashException(self.app)
- def _HandleError(self, error):
+ def _HandleError(self, elapsed_time):
if self.IsInspectable():
raise exceptions.DevtoolsTargetCrashException(self.app,
'Received a socket error in the browser connection and the tab '
'still exists, assuming it timed out. '
- 'Error=%s' % error)
+ 'Elapsed=%ds Error=%s' % (elapsed_time, sys.exc_info()[1]))
raise exceptions.DevtoolsTargetCrashException(self.app,
'Received a socket error in the browser connection and the tab no '
- 'longer exists, assuming it crashed. Error=%s' % error)
+ 'longer exists, assuming it crashed. Error=%s' % sys.exc_info()[1])
def _WaitForInspectorToGoAwayAndReconnect(self):
sys.stderr.write('The connection to Chrome was lost to the Inspector UI.\n')
@@ -236,10 +202,7 @@
sys.stderr.write('Inspector\'s UI closed. Telemetry will now resume.\n')
def CollectGarbage(self):
- try:
- self._page.CollectGarbage()
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
+ self._page.CollectGarbage()
def TakeJSHeapSnapshot(self, timeout=120):
snapshot = []
@@ -248,16 +211,12 @@
if res['method'] == 'HeapProfiler.addHeapSnapshotChunk':
snapshot.append(res['params']['chunk'])
- try:
- self._websocket.RegisterDomain('HeapProfiler', OnNotification)
-
- self._websocket.SyncRequest({'method': 'Page.getResourceTree'}, timeout)
- self._websocket.SyncRequest({'method': 'Debugger.enable'}, timeout)
- self._websocket.SyncRequest(
- {'method': 'HeapProfiler.takeHeapSnapshot'}, timeout)
- except (socket.error, websocket.WebSocketException) as e:
- self._HandleError(e)
-
+ self._websocket.RegisterDomain('HeapProfiler', OnNotification)
+
+ self._websocket.SyncRequest({'method': 'Page.getResourceTree'}, timeout)
+ self._websocket.SyncRequest({'method': 'Debugger.enable'}, timeout)
+ self._websocket.SyncRequest(
+ {'method': 'HeapProfiler.takeHeapSnapshot'}, timeout)
snapshot = ''.join(snapshot)
self.UnregisterDomain('HeapProfiler')
« no previous file with comments | « no previous file | tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_page.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698