Move core/backends to internal, and remove chrome_proxy usage of *browser_finder.
[chromium-blink-merge.git] / tools / telemetry / telemetry / internal / backends / chrome_inspector / inspector_console.py
blobebd8aef10952bfd002d8e0b09d45827e743dc239
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
3 # found in the LICENSE file.
6 class InspectorConsole(object):
7 def __init__(self, inspector_websocket):
8 self._inspector_websocket = inspector_websocket
9 self._inspector_websocket.RegisterDomain('Console', self._OnNotification)
10 self._message_output_stream = None
11 self._last_message = None
12 self._console_enabled = False
14 def _OnNotification(self, msg):
15 if msg['method'] == 'Console.messageAdded':
16 if msg['params']['message']['url'] == 'chrome://newtab/':
17 return
18 self._last_message = 'At %s:%i: %s' % (
19 msg['params']['message']['url'],
20 msg['params']['message']['line'],
21 msg['params']['message']['text'])
22 if self._message_output_stream:
23 self._message_output_stream.write(
24 '%s\n' % self._last_message)
26 elif msg['method'] == 'Console.messageRepeatCountUpdated':
27 if self._message_output_stream:
28 self._message_output_stream.write(
29 '%s\n' % self._last_message)
31 # False positive in PyLint 0.25.1: http://www.logilab.org/89092
32 @property
33 def message_output_stream(self): # pylint: disable=E0202
34 return self._message_output_stream
36 @message_output_stream.setter
37 def message_output_stream(self, stream): # pylint: disable=E0202
38 self._message_output_stream = stream
39 self._UpdateConsoleEnabledState()
41 def _UpdateConsoleEnabledState(self):
42 enabled = self._message_output_stream != None
43 if enabled == self._console_enabled:
44 return
46 if enabled:
47 method_name = 'enable'
48 else:
49 method_name = 'disable'
50 self._inspector_websocket.SyncRequest({
51 'method': 'Console.%s' % method_name
53 self._console_enabled = enabled