De-dup PrefixSet code in SafeBrowsingDatabaseManager.
[chromium-blink-merge.git] / tools / deep_memory_profiler / visualizer / index.html
blob1e4d96fc3ad731c1d638485e51674eddea577e45
1 <!DOCTYPE html>
2 <!--
3 Copyright 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7 <meta charset="utf-8">
8 <link rel="stylesheet" href="static/third_party/jqTree/jqtree.css">
9 <link rel="stylesheet" href="static/index.css">
11 <script src="static/third_party/flot/jquery.min.js"></script>
12 <script src="static/third_party/flot/jquery.flot.min.js"></script>
13 <script src="static/third_party/flot/jquery.flot.stack.min.js"></script>
14 <script src="static/third_party/jqTree/tree.jquery.js"></script>
15 <script src="static/utility.js"></script>
16 <script src="static/profiler.js"></script>
17 <script src="static/graph-view.js"></script>
18 <script src="static/dropdown-view.js"></script>
19 <script src="static/menu-view.js"></script>
20 <script>
21 $(function() {
22 {% if json is defined and template is defined %}
23 // Create model.
24 var profiler = new Profiler({{ json|safe }}, {{ template|safe }});
25 // Create views subscribing model events.
26 var graphView = new GraphView(profiler);
27 var dropdownView = new DropdownView(profiler);
28 var menuView = new MenuView(profiler);
30 // initialize categories according to roots information.
31 profiler.reparse();
33 // Share feature only appears in server version, so it should be written
34 // here where the unique file different against local version, rather than
35 // written as a view which is shared with local version.
36 $('#share-btn').click(function() {
37 // Get run_id and current breakdown template and send them to server.
38 // Post data will be decoded weirdly at app engine side if content isn't
39 // encoded.
40 var req_data = {
41 run_id: profiler.getRunId(),
42 content: JSON.stringify(profiler.getTemplate())
45 $.ajax({
46 type: 'POST',
47 url: '/share',
48 data: req_data,
49 success: function(url) {
50 $('.url').val(url);
51 $('.url').select();
53 });
54 });
55 {% endif %}
56 });
57 </script>
59 <body>
60 <h1>Deep Memory Profiler Visualizer</h1>
61 <div>
62 <form enctype="multipart/form-data" action="{{ upload_url }}" method="post">
63 <input type="file" name="file"/>
64 <input class="btn" type="submit" value="Upload"/>
65 </form>
66 <p class="error-message">
67 {{ upload_msg }}
68 </p>
69 </div>
70 <div>
71 <button class="btn" id="share-btn">Share</button>
72 <input type="text" class="url">
73 </div>
74 <div id="view-div">
75 <div id="graph-div"></div>
76 <div id="info-div">
77 <div id="category-menu"></div>
78 <div id="subs-dropdown"></div>
79 </div>
80 </div>
81 </body>