summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-06 08:41:41 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-06 08:41:41 +0000
commita62409e6e6c29e79eae30340ae7a18370b770007 (patch)
tree09f9af6604b880d060fc7bd67611cd136d5c1d3b /chrome/test
parent3ca01de32c4b1e40d45d2daeedcb841429ce4704 (diff)
downloadchromium_src-a62409e6e6c29e79eae30340ae7a18370b770007.zip
chromium_src-a62409e6e6c29e79eae30340ae7a18370b770007.tar.gz
chromium_src-a62409e6e6c29e79eae30340ae7a18370b770007.tar.bz2
Switch remote_inspector_client.py from Memory.getDOMNodeCount to more simple Memory.getDOMCounters command. Memory.getDOMNodeCount is going to be removed from the protocol soon.
Related WebKit bugs: https://bugs.webkit.org/show_bug.cgi?id=108821 https://bugs.webkit.org/show_bug.cgi?id=108822 BUG= Review URL: https://codereview.chromium.org/12197010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180937 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rwxr-xr-xchrome/test/pyautolib/remote_inspector_client.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/chrome/test/pyautolib/remote_inspector_client.py b/chrome/test/pyautolib/remote_inspector_client.py
index 442f53b..81c3af37 100755
--- a/chrome/test/pyautolib/remote_inspector_client.py
+++ b/chrome/test/pyautolib/remote_inspector_client.py
@@ -1034,6 +1034,10 @@ class RemoteInspectorClient(object):
'EventListenerCount': integer, # Total number of event listeners.
}
"""
+ # TODO(yurys): Remove this hack after M27 is released.
+ if self._IsWebkitVersionNotOlderThan(537, 31):
+ return self._GetMemoryObjectCountsNew()
+
MEMORY_COUNT_MESSAGES = [
('Memory.getDOMNodeCount', {})
]
@@ -1081,6 +1085,53 @@ class RemoteInspectorClient(object):
'EventListenerCount': self._event_listener_count,
}
+ def _GetMemoryObjectCountsNew(self):
+ """Retrieves memory object count information.
+
+ Returns:
+ A dictionary containing the memory object count information:
+ {
+ 'DOMNodeCount': integer, # Total number of DOM nodes.
+ 'EventListenerCount': integer, # Total number of event listeners.
+ }
+ """
+ MEMORY_COUNT_MESSAGES = [
+ ('Memory.getDOMCounters', {})
+ ]
+
+ self._event_listener_count = None
+ self._dom_node_count = None
+
+ done_condition = threading.Condition()
+ def HandleReply(reply_dict):
+ """Processes a reply message received from the remote Chrome instance.
+
+ Args:
+ reply_dict: A dictionary object representing the reply message received
+ from the remote Chrome instance.
+ """
+ if 'result' in reply_dict:
+ self._event_listener_count = reply_dict['result']['jsEventListeners']
+ self._dom_node_count = reply_dict['result']['nodes']
+
+ done_condition.acquire()
+ done_condition.notify()
+ done_condition.release()
+
+ # Tell the remote inspector to collect memory count info, then wait until
+ # that information is available to return.
+ self._remote_inspector_thread.PerformAction(MEMORY_COUNT_MESSAGES,
+ HandleReply)
+
+ done_condition.acquire()
+ done_condition.wait()
+ done_condition.release()
+
+ return {
+ 'DOMNodeCount': self._dom_node_count,
+ 'EventListenerCount': self._event_listener_count,
+ }
+
def GetProcessMemoryDistribution(self):
"""Retrieves info about memory distribution between renderer components.