| Index: tools/android/loading/sandwich_runner.py
 | 
| diff --git a/tools/android/loading/sandwich_runner.py b/tools/android/loading/sandwich_runner.py
 | 
| index 640b068a39b3335286a83ce4e7cb6a555995a098..5c3bb94947f0fe3b548c5acffc4475257c292cbc 100644
 | 
| --- a/tools/android/loading/sandwich_runner.py
 | 
| +++ b/tools/android/loading/sandwich_runner.py
 | 
| @@ -47,6 +47,7 @@ _TRACING_CATEGORIES = [
 | 
|    'blink.user_timing',
 | 
|    'devtools.timeline',
 | 
|    'java',
 | 
| +  'navigation',
 | 
|    'toplevel',
 | 
|    'v8',
 | 
|    '-cc',  # A lot of unnecessary events are enabled by default in "cc".
 | 
| @@ -79,6 +80,10 @@ class CacheOperation(object):
 | 
|    CLEAR, SAVE, PUSH = range(3)
 | 
|  
 | 
|  
 | 
| +class SandwichRunnerError(Exception):
 | 
| +  pass
 | 
| +
 | 
| +
 | 
|  class SandwichRunner(object):
 | 
|    """Sandwich runner.
 | 
|  
 | 
| @@ -209,6 +214,12 @@ class SandwichRunner(object):
 | 
|              trace = RecordTrace()
 | 
|          else:
 | 
|            trace = RecordTrace()
 | 
| +        for event in trace.request_track.GetEvents():
 | 
| +          if event.failed:
 | 
| +            logging.warning(
 | 
| +                'request to %s failed: %s', event.url, event.error_text)
 | 
| +        if not trace.tracing_track.HasLoadingSucceeded():
 | 
| +          raise SandwichRunnerError('Page load has failed.')
 | 
|      if run_path is not None:
 | 
|        trace_path = os.path.join(run_path, TRACE_FILENAME)
 | 
|        trace.ToJsonFile(trace_path)
 | 
| 
 |