diff options
author | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-06 08:41:41 +0000 |
---|---|---|
committer | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-06 08:41:41 +0000 |
commit | a62409e6e6c29e79eae30340ae7a18370b770007 (patch) | |
tree | 09f9af6604b880d060fc7bd67611cd136d5c1d3b /chrome/test | |
parent | 3ca01de32c4b1e40d45d2daeedcb841429ce4704 (diff) | |
download | chromium_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-x | chrome/test/pyautolib/remote_inspector_client.py | 51 |
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. |