OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 functools | 5 import functools |
6 import logging | 6 import logging |
7 import socket | 7 import socket |
8 import sys | 8 import sys |
9 | 9 |
10 from py_trace_event import trace_event | 10 from py_trace_event import trace_event |
11 | 11 |
12 from telemetry.core import exceptions | 12 from telemetry.core import exceptions |
13 from telemetry import decorators | 13 from telemetry import decorators |
14 from telemetry.internal.backends.chrome_inspector import devtools_http | 14 from telemetry.internal.backends.chrome_inspector import devtools_http |
15 from telemetry.internal.backends.chrome_inspector import inspector_console | 15 from telemetry.internal.backends.chrome_inspector import inspector_console |
16 from telemetry.internal.backends.chrome_inspector import inspector_memory | 16 from telemetry.internal.backends.chrome_inspector import inspector_memory |
17 from telemetry.internal.backends.chrome_inspector import inspector_page | 17 from telemetry.internal.backends.chrome_inspector import inspector_page |
18 from telemetry.internal.backends.chrome_inspector import inspector_runtime | 18 from telemetry.internal.backends.chrome_inspector import inspector_runtime |
| 19 from telemetry.internal.backends.chrome_inspector import inspector_storage |
19 from telemetry.internal.backends.chrome_inspector import inspector_websocket | 20 from telemetry.internal.backends.chrome_inspector import inspector_websocket |
20 from telemetry.internal.backends.chrome_inspector import websocket | 21 from telemetry.internal.backends.chrome_inspector import websocket |
21 from telemetry.util import js_template | 22 from telemetry.util import js_template |
22 | 23 |
23 import py_utils | 24 import py_utils |
24 | 25 |
25 | 26 |
26 def _HandleInspectorWebSocketExceptions(func): | 27 def _HandleInspectorWebSocketExceptions(func): |
27 """Decorator for converting inspector_websocket exceptions. | 28 """Decorator for converting inspector_websocket exceptions. |
28 | 29 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 self._context = context | 65 self._context = context |
65 | 66 |
66 logging.debug('InspectorBackend._Connect() to %s', self.debugger_url) | 67 logging.debug('InspectorBackend._Connect() to %s', self.debugger_url) |
67 try: | 68 try: |
68 self._websocket.Connect(self.debugger_url, timeout) | 69 self._websocket.Connect(self.debugger_url, timeout) |
69 self._console = inspector_console.InspectorConsole(self._websocket) | 70 self._console = inspector_console.InspectorConsole(self._websocket) |
70 self._memory = inspector_memory.InspectorMemory(self._websocket) | 71 self._memory = inspector_memory.InspectorMemory(self._websocket) |
71 self._page = inspector_page.InspectorPage( | 72 self._page = inspector_page.InspectorPage( |
72 self._websocket, timeout=timeout) | 73 self._websocket, timeout=timeout) |
73 self._runtime = inspector_runtime.InspectorRuntime(self._websocket) | 74 self._runtime = inspector_runtime.InspectorRuntime(self._websocket) |
| 75 self._storage = inspector_storage.InspectorStorage(self._websocket) |
74 except (websocket.WebSocketException, exceptions.TimeoutException, | 76 except (websocket.WebSocketException, exceptions.TimeoutException, |
75 py_utils.TimeoutException) as e: | 77 py_utils.TimeoutException) as e: |
76 self._ConvertExceptionFromInspectorWebsocket(e) | 78 self._ConvertExceptionFromInspectorWebsocket(e) |
77 | 79 |
78 def Disconnect(self): | 80 def Disconnect(self): |
79 """Disconnects the inspector websocket. | 81 """Disconnects the inspector websocket. |
80 | 82 |
81 This method intentionally leaves the self._websocket object around, so that | 83 This method intentionally leaves the self._websocket object around, so that |
82 future calls it to it will fail with a relevant error. | 84 future calls it to it will fail with a relevant error. |
83 """ | 85 """ |
(...skipping 17 matching lines...) Expand all Loading... |
101 return self._devtools_client.GetUrl(self.id) | 103 return self._devtools_client.GetUrl(self.id) |
102 | 104 |
103 @property | 105 @property |
104 def id(self): # pylint: disable=invalid-name | 106 def id(self): # pylint: disable=invalid-name |
105 return self._context['id'] | 107 return self._context['id'] |
106 | 108 |
107 @property | 109 @property |
108 def debugger_url(self): | 110 def debugger_url(self): |
109 return self._context['webSocketDebuggerUrl'] | 111 return self._context['webSocketDebuggerUrl'] |
110 | 112 |
| 113 def ClearDataForOrigin(self, url, timeout): |
| 114 self._storage.ClearDataForOrigin(url, timeout) |
| 115 |
111 def GetWebviewInspectorBackends(self): | 116 def GetWebviewInspectorBackends(self): |
112 """Returns a list of InspectorBackend instances associated with webviews. | 117 """Returns a list of InspectorBackend instances associated with webviews. |
113 | 118 |
114 Raises: | 119 Raises: |
115 devtools_http.DevToolsClientConnectionError | 120 devtools_http.DevToolsClientConnectionError |
116 """ | 121 """ |
117 inspector_backends = [] | 122 inspector_backends = [] |
118 devtools_context_map = self._devtools_client.GetUpdatedInspectableContexts() | 123 devtools_context_map = self._devtools_client.GetUpdatedInspectableContexts() |
119 for context in devtools_context_map.contexts: | 124 for context in devtools_context_map.contexts: |
120 if context['type'] == 'webview': | 125 if context['type'] == 'webview': |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 error.AddDebuggingMessage(msg) | 507 error.AddDebuggingMessage(msg) |
503 error.AddDebuggingMessage('Debugger url: %s' % self.debugger_url) | 508 error.AddDebuggingMessage('Debugger url: %s' % self.debugger_url) |
504 | 509 |
505 @_HandleInspectorWebSocketExceptions | 510 @_HandleInspectorWebSocketExceptions |
506 def _EvaluateJavaScript(self, expression, context_id, timeout): | 511 def _EvaluateJavaScript(self, expression, context_id, timeout): |
507 return self._runtime.Evaluate(expression, context_id, timeout) | 512 return self._runtime.Evaluate(expression, context_id, timeout) |
508 | 513 |
509 @_HandleInspectorWebSocketExceptions | 514 @_HandleInspectorWebSocketExceptions |
510 def CollectGarbage(self): | 515 def CollectGarbage(self): |
511 self._page.CollectGarbage() | 516 self._page.CollectGarbage() |
OLD | NEW |