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 |