Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: telemetry/telemetry/internal/backends/chrome_inspector/inspector_runtime.py

Issue 3017573002: Make sure snap_page combined iframe serialized dom
Patch Set: . Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 from telemetry.core import exceptions 4 from telemetry.core import exceptions
5 5
6 6
7 class InspectorRuntime(object): 7 class InspectorRuntime(object):
8 def __init__(self, inspector_websocket): 8 def __init__(self, inspector_websocket):
9 self._inspector_websocket = inspector_websocket 9 self._inspector_websocket = inspector_websocket
10 self._inspector_websocket.RegisterDomain('Runtime', self._OnNotification) 10 self._inspector_websocket.RegisterDomain('Runtime', self._OnNotification)
11 self._contexts_enabled = False 11 self._contexts_enabled = False
12 self._max_context_id = None 12 self._all_context_ids = None
13 13
14 def _OnNotification(self, msg): 14 def _OnNotification(self, msg):
15 if (self._contexts_enabled and 15 if (self._contexts_enabled and
16 msg['method'] == 'Runtime.executionContextCreated'): 16 msg['method'] == 'Runtime.executionContextCreated'):
17 self._max_context_id = max(self._max_context_id, 17 self._all_context_ids.add(msg['params']['context']['id'])
18 msg['params']['context']['id'])
19 18
20 def Execute(self, expr, context_id, timeout): 19 def Execute(self, expr, context_id, timeout):
21 self.Evaluate(expr + '; 0;', context_id, timeout) 20 self.Evaluate(expr + '; 0;', context_id, timeout)
22 21
23 def Evaluate(self, expr, context_id, timeout): 22 def Evaluate(self, expr, context_id, timeout):
24 """Evaluates a javascript expression and returns the result. 23 """Evaluates a javascript expression and returns the result.
25 24
26 |context_id| can refer to an iframe. The main page has context_id=1, the 25 |context_id| can refer to an iframe. The main page has context_id=1, the
27 first iframe context_id=2, etc. 26 first iframe context_id=2, etc.
28 27
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 def EnableAllContexts(self): 59 def EnableAllContexts(self):
61 """Allow access to iframes. 60 """Allow access to iframes.
62 61
63 Raises: 62 Raises:
64 exceptions.WebSocketDisconnected 63 exceptions.WebSocketDisconnected
65 websocket.WebSocketException 64 websocket.WebSocketException
66 socket.error 65 socket.error
67 """ 66 """
68 if not self._contexts_enabled: 67 if not self._contexts_enabled:
69 self._contexts_enabled = True 68 self._contexts_enabled = True
69 self._all_context_ids = set()
70 self._inspector_websocket.SyncRequest({'method': 'Runtime.enable'}, 70 self._inspector_websocket.SyncRequest({'method': 'Runtime.enable'},
71 timeout=30) 71 timeout=30)
72 return self._max_context_id 72 return self._all_context_ids
73 73
74 def RunInspectorCommand(self, command, timeout): 74 def RunInspectorCommand(self, command, timeout):
75 """Runs an inspector command. 75 """Runs an inspector command.
76 76
77 Raises: 77 Raises:
78 exceptions.WebSocketDisconnected 78 exceptions.WebSocketDisconnected
79 websocket.WebSocketException 79 websocket.WebSocketException
80 socket.error 80 socket.error
81 """ 81 """
82 res = self._inspector_websocket.SyncRequest(command, timeout) 82 res = self._inspector_websocket.SyncRequest(command, timeout)
83 return res 83 return res
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698