templates/crashstack.html (96 lines of code) (raw):

<!-- This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this file, - You can obtain one at http://mozilla.org/MPL/2.0/. --> <!DOCTYPE html> <html lang="en-us"> <head> <link rel="shortcut icon" href="/clouseau.ico"> <link rel="stylesheet" href="/clouseau.css?v=1"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Crash Stack &mdash; {{ uuid_info['uuid'] }}</title> <script src="/clouseau.js"></script> <script> const NODE = "{{ uuid_info['node'] }}"; const UUID = "{{ uuid_info['uuid'] }}"; const REPOURL = "{{ repo_url }}"; const CHANNEL = "{{ channel }}"; </script> </head> <body> <header> <nav> <ul class="nav"> <li> <a href="https://www.mozilla.org/" class="brand">mozilla</a> </li> <li style="float:right;"> <a href="https://github.com/mozilla/crash-clouseau"><span class="github"></span></a> </li> </ul> </nav> </header> <div id="changeset-menu"> <ul> <li><a id="openChangeset">Open the changeset</a></li> <li><a id="openDiff">Open the diff for the file</a></li> <li><a id="openFileDiff">Open file|diff</a></li> <li><a id="openAnnotateDiff">Open annotate|diff</a></li> <li><a id="reportBug">Report a bug</a></li> </ul> </div> <p>Open the crash report on crash-stats: <a href="https://crash-stats.mozilla.org/report/index/{{ uuid_info['uuid'] }}">{{ uuid_info['uuid'] }}</a>.</p> <p>The crash signature is <a href="{{ sgn_url }}">{{ uuid_info['signature']|e }}</a>.</p> {% if stack -%} <table> <thead> <tr> <th style="width:2%;">Frame</th> <th>Signature</th> <th style="width:25%;">Source</th> <th style="width:23%;">Changesets</th> </tr> </thead> <tbody> {% for pos, info in enumerate(stack['frames']) -%} {% if info['line'] != -1 -%} <tr> <td>{{ pos }}</td> <td>{{ info['function']|e }}</td> <td> {% if info['url'] -%} <a href="{{ info['url'] }}"><span id="filename-{{ pos }}">{{ info['filename']|e }}</span>:<span id="line-{{ pos }}">{{ info['line'] }}</span></a> {% else -%} {{ info['original']|e }}{% if info['line'] -%}:{{ info['line'] }}{% endif -%} {% endif -%} </td> <td> {% for chgset, i in info['changesets'].items() -%} <div style="display:table;width:100%;"> <div style="display:table-row;"> <div class="cell" style="width:25%"> <span> <a href="{{ repo_url }}/rev?node={{ chgset }}">{{ chgset }}</a> <a onclick="javascript: showChangesetMenu(event);"><span id="cset-{{ chgset }}-{{ pos }}" class="glass"></span></a> </span> </div> <div style="background-color:{{ colors[i['score']] }};width:15%;" class="cell"> <span>{{ i['score'] }}</span> </div> <div class="cell" style="width:20%"> <span>{{ i['pushdate'].strftime('%Y-%m-%d') }}</span> </div> <div class="cell" style="width:20%"> <span>{% if i['bugid'] > 0 %}<a href="https://bugzilla.mozilla.org/{{ i['bugid'] }}">{{ i['bugid'] }}</a>{% endif %}</span> </div> <div class="cell" style="width:25%"> <span>backout: {{ i['backedout'] }}</span> </div> </div> </div> {% endfor -%} </td> </tr> {% endif -%} {% endfor -%} </table> {% endif -%} </body> </html>