OLD | NEW |
---|---|
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 import json | 4 import json |
5 import logging | 5 import logging |
6 import socket | 6 import socket |
7 import sys | 7 import sys |
8 | 8 |
9 from telemetry import inspector_console | 9 from telemetry import inspector_console |
10 from telemetry import inspector_page | 10 from telemetry import inspector_page |
11 from telemetry import inspector_runtime | 11 from telemetry import inspector_runtime |
12 from telemetry import inspector_timeline | 12 from telemetry import inspector_timeline |
13 from telemetry import png_bitmap | 13 from telemetry import png_bitmap |
14 from telemetry import tab_crash_exception | 14 from telemetry import tab_crash_exception |
15 from telemetry import user_agent | |
15 from telemetry import util | 16 from telemetry import util |
16 from telemetry import websocket | 17 from telemetry import websocket |
17 | 18 |
18 class InspectorException(Exception): | 19 class InspectorException(Exception): |
19 pass | 20 pass |
20 | 21 |
21 class TabBackend(object): | 22 class TabBackend(object): |
22 def __init__(self, browser, browser_backend, debugger_url): | 23 def __init__(self, browser, browser_backend, debugger_url): |
23 assert debugger_url | 24 assert debugger_url |
24 self._browser = browser | 25 self._browser = browser |
25 self._browser_backend = browser_backend | 26 self._browser_backend = browser_backend |
26 self._debugger_url = debugger_url | 27 self._debugger_url = debugger_url |
27 self._socket = None | 28 self._socket = None |
28 self._domain_handlers = {} | 29 self._domain_handlers = {} |
29 self._cur_socket_timeout = 0 | 30 self._cur_socket_timeout = 0 |
30 self._next_request_id = 0 | 31 self._next_request_id = 0 |
31 | 32 |
32 self._console = inspector_console.InspectorConsole(self) | 33 self._console = inspector_console.InspectorConsole(self) |
33 self._page = inspector_page.InspectorPage(self) | 34 self._page = inspector_page.InspectorPage(self) |
34 self._runtime = inspector_runtime.InspectorRuntime(self) | 35 self._runtime = inspector_runtime.InspectorRuntime(self) |
35 self._timeline = inspector_timeline.InspectorTimeline(self) | 36 self._timeline = inspector_timeline.InspectorTimeline(self) |
36 | 37 |
37 def __del__(self): | 38 def __del__(self): |
38 self.Disconnect() | 39 self.Disconnect() |
39 | 40 |
40 def _Connect(self): | 41 def _Connect(self): |
nduca
2013/01/22 21:46:03
hmmm... what if connect happens after we've naviga
| |
41 if self._socket: | 42 if self._socket: |
42 return | 43 return |
43 self._socket = websocket.create_connection(self._debugger_url) | 44 self._socket = websocket.create_connection(self._debugger_url) |
44 self._cur_socket_timeout = 0 | 45 self._cur_socket_timeout = 0 |
45 self._next_request_id = 0 | 46 self._next_request_id = 0 |
46 | 47 |
48 user_agent_string = user_agent.GetUserAgentFromType( | |
49 self._browser_backend.options.browser_user_agent_type) | |
50 if user_agent_string is not None: | |
bulach
2013/01/18 20:44:04
nit: s/is not None//
| |
51 self._page.SetUserAgent(user_agent_string) | |
52 | |
47 def Disconnect(self): | 53 def Disconnect(self): |
48 for _, handlers in self._domain_handlers.items(): | 54 for _, handlers in self._domain_handlers.items(): |
49 _, will_close_handler = handlers | 55 _, will_close_handler = handlers |
50 will_close_handler() | 56 will_close_handler() |
51 self._domain_handlers = {} | 57 self._domain_handlers = {} |
52 | 58 |
53 if self._socket: | 59 if self._socket: |
54 self._socket.close() | 60 self._socket.close() |
55 self._socket = None | 61 self._socket = None |
56 | 62 |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
286 OnConsoleNotification, OnConsoleClose) | 292 OnConsoleNotification, OnConsoleClose) |
287 """ | 293 """ |
288 assert domain_name not in self._domain_handlers | 294 assert domain_name not in self._domain_handlers |
289 self._domain_handlers[domain_name] = (notification_handler, | 295 self._domain_handlers[domain_name] = (notification_handler, |
290 will_close_handler) | 296 will_close_handler) |
291 | 297 |
292 def UnregisterDomain(self, domain_name): | 298 def UnregisterDomain(self, domain_name): |
293 """Unregisters a previously registered domain.""" | 299 """Unregisters a previously registered domain.""" |
294 assert domain_name in self._domain_handlers | 300 assert domain_name in self._domain_handlers |
295 self._domain_handlers.pop(domain_name) | 301 self._domain_handlers.pop(domain_name) |
OLD | NEW |