Index: tools/telemetry/telemetry/page/actions/media_action.py |
diff --git a/tools/telemetry/telemetry/page/actions/media_action.py b/tools/telemetry/telemetry/page/actions/media_action.py |
index 5baf023f0b9cf8c15c1170362309d475d87e2956..cb563acdc7c2788882987e524922018a88a42eef 100644 |
--- a/tools/telemetry/telemetry/page/actions/media_action.py |
+++ b/tools/telemetry/telemetry/page/actions/media_action.py |
@@ -4,6 +4,7 @@ |
"""Common media action functions.""" |
+import logging |
import os |
from telemetry.core import util |
@@ -33,9 +34,17 @@ class MediaAction(page_action.PageAction): |
event_name: Name of the event to check if fired or not. |
timeout: Timeout to check for event, throws an exception if not fired. |
""" |
- util.WaitFor(lambda: self.HasEventCompleted(tab, selector, event_name), |
+ util.WaitFor(lambda: |
+ self.HasEventCompletedOrError(tab, selector, event_name), |
timeout=timeout) |
- def HasEventCompleted(self, tab, selector, event_name): |
- return tab.EvaluateJavaScript( |
- 'window.__hasEventCompleted("%s", "%s");' % (selector, event_name)) |
+ def HasEventCompletedOrError(self, tab, selector, event_name): |
+ if tab.EvaluateJavaScript( |
+ 'window.__hasEventCompleted("%s", "%s");' % (selector, event_name)): |
+ return True |
+ error = tab.EvaluateJavaScript('window.__error') |
+ if error: |
+ logging.error('Detected media error while waiting for %s: %s', event_name, |
+ error) |
+ return True |
+ return False |