{% comment %}
Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.

This template describes the overall page structure for the birds-eye overview
perf graph webpages.
{% endcomment %}

<html>
  <head>
    <title>{% block title %}{% endblock %}</title>
    <script src="ui/js/common.js"></script>
    <script language="javascript">
      function DisplayGraph(name, header) {
        document.write('<td><iframe scrolling="no" height="270" width="400" ' +
                       'src="data/');
        document.write(name);
        document.write('/report.html?history=100')
        if (header != null) {
          document.write('&header=');
          document.write(escape(header));
        }
        document.write('&lookout=1"></iframe></td>');
      }

      function DisplayStub(branch, platform, test_name) {
        document.write('<td height="270" width="400"><center>NO DATA<br>' +
                       test_name + '<br>' + branch + ' ' + platform +
                       '</center></td>');
      }
    </script>
  </head>

  <body>
  <center>
  {% block content %}{% endblock %}
  </center>
  </body>
</html>
