Chromium Code Reviews| 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_serviceworker | |
| 19 from telemetry.internal.backends.chrome_inspector import inspector_storage | 20 from telemetry.internal.backends.chrome_inspector import inspector_storage |
| 20 from telemetry.internal.backends.chrome_inspector import inspector_websocket | 21 from telemetry.internal.backends.chrome_inspector import inspector_websocket |
| 21 from telemetry.internal.backends.chrome_inspector import websocket | 22 from telemetry.internal.backends.chrome_inspector import websocket |
| 22 from telemetry.util import js_template | 23 from telemetry.util import js_template |
| 23 | 24 |
| 24 import py_utils | 25 import py_utils |
| 25 | 26 |
| 26 | 27 |
| 27 def _HandleInspectorWebSocketExceptions(func): | 28 def _HandleInspectorWebSocketExceptions(func): |
| 28 """Decorator for converting inspector_websocket exceptions. | 29 """Decorator for converting inspector_websocket exceptions. |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 65 self._context = context | 66 self._context = context |
| 66 | 67 |
| 67 logging.debug('InspectorBackend._Connect() to %s', self.debugger_url) | 68 logging.debug('InspectorBackend._Connect() to %s', self.debugger_url) |
| 68 try: | 69 try: |
| 69 self._websocket.Connect(self.debugger_url, timeout) | 70 self._websocket.Connect(self.debugger_url, timeout) |
| 70 self._console = inspector_console.InspectorConsole(self._websocket) | 71 self._console = inspector_console.InspectorConsole(self._websocket) |
| 71 self._memory = inspector_memory.InspectorMemory(self._websocket) | 72 self._memory = inspector_memory.InspectorMemory(self._websocket) |
| 72 self._page = inspector_page.InspectorPage( | 73 self._page = inspector_page.InspectorPage( |
| 73 self._websocket, timeout=timeout) | 74 self._websocket, timeout=timeout) |
| 74 self._runtime = inspector_runtime.InspectorRuntime(self._websocket) | 75 self._runtime = inspector_runtime.InspectorRuntime(self._websocket) |
| 76 self._serviceworker = inspector_serviceworker.InspectorServiceWorker( | |
| 77 self._websocket) | |
| 75 self._storage = inspector_storage.InspectorStorage(self._websocket) | 78 self._storage = inspector_storage.InspectorStorage(self._websocket) |
| 76 except (websocket.WebSocketException, exceptions.TimeoutException, | 79 except (websocket.WebSocketException, exceptions.TimeoutException, |
| 77 py_utils.TimeoutException) as e: | 80 py_utils.TimeoutException) as e: |
| 78 self._ConvertExceptionFromInspectorWebsocket(e) | 81 self._ConvertExceptionFromInspectorWebsocket(e) |
| 79 | 82 |
| 83 self._serviceworker.Enable(timeout) | |
|
kouhei (in TOK)
2017/09/25 02:29:25
This enables ServiceWorker backend for all Inspect
yukiy
2017/09/25 04:57:13
Done.
| |
| 84 | |
| 80 def Disconnect(self): | 85 def Disconnect(self): |
| 81 """Disconnects the inspector websocket. | 86 """Disconnects the inspector websocket. |
| 82 | 87 |
| 83 This method intentionally leaves the self._websocket object around, so that | 88 This method intentionally leaves the self._websocket object around, so that |
| 84 future calls it to it will fail with a relevant error. | 89 future calls it to it will fail with a relevant error. |
| 85 """ | 90 """ |
| 86 if self._websocket: | 91 if self._websocket: |
| 87 self._websocket.Disconnect() | 92 self._websocket.Disconnect() |
| 88 | 93 |
| 89 def __del__(self): | 94 def __del__(self): |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 103 return self._devtools_client.GetUrl(self.id) | 108 return self._devtools_client.GetUrl(self.id) |
| 104 | 109 |
| 105 @property | 110 @property |
| 106 def id(self): # pylint: disable=invalid-name | 111 def id(self): # pylint: disable=invalid-name |
| 107 return self._context['id'] | 112 return self._context['id'] |
| 108 | 113 |
| 109 @property | 114 @property |
| 110 def debugger_url(self): | 115 def debugger_url(self): |
| 111 return self._context['webSocketDebuggerUrl'] | 116 return self._context['webSocketDebuggerUrl'] |
| 112 | 117 |
| 118 def StopAllServiceWorkers(self, timeout): | |
| 119 self._serviceworker.StopAllWorkers(timeout) | |
| 120 | |
| 113 def ClearDataForOrigin(self, url, timeout): | 121 def ClearDataForOrigin(self, url, timeout): |
| 114 self._storage.ClearDataForOrigin(url, timeout) | 122 self._storage.ClearDataForOrigin(url, timeout) |
| 115 | 123 |
| 116 def GetWebviewInspectorBackends(self): | 124 def GetWebviewInspectorBackends(self): |
| 117 """Returns a list of InspectorBackend instances associated with webviews. | 125 """Returns a list of InspectorBackend instances associated with webviews. |
| 118 | 126 |
| 119 Raises: | 127 Raises: |
| 120 devtools_http.DevToolsClientConnectionError | 128 devtools_http.DevToolsClientConnectionError |
| 121 """ | 129 """ |
| 122 inspector_backends = [] | 130 inspector_backends = [] |
| (...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 507 error.AddDebuggingMessage(msg) | 515 error.AddDebuggingMessage(msg) |
| 508 error.AddDebuggingMessage('Debugger url: %s' % self.debugger_url) | 516 error.AddDebuggingMessage('Debugger url: %s' % self.debugger_url) |
| 509 | 517 |
| 510 @_HandleInspectorWebSocketExceptions | 518 @_HandleInspectorWebSocketExceptions |
| 511 def _EvaluateJavaScript(self, expression, context_id, timeout): | 519 def _EvaluateJavaScript(self, expression, context_id, timeout): |
| 512 return self._runtime.Evaluate(expression, context_id, timeout) | 520 return self._runtime.Evaluate(expression, context_id, timeout) |
| 513 | 521 |
| 514 @_HandleInspectorWebSocketExceptions | 522 @_HandleInspectorWebSocketExceptions |
| 515 def CollectGarbage(self): | 523 def CollectGarbage(self): |
| 516 self._page.CollectGarbage() | 524 self._page.CollectGarbage() |
| OLD | NEW |