Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / deep_memory_profiler / visualizer / template.py
1 #!/usr/bin/env python
2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import os
7 import subprocess
8 import sys
9 import tempfile
10
11 from string import Template
12
13
14 _TEMPLATE = """<!DOCTYPE html>
15 <meta charset="utf-8">
16 <link rel="stylesheet" href="../visualizer/static/index.css">
17 <link rel="stylesheet"
18   href="../visualizer/static/third_party/jqTree/jqtree.css">
19
20 <script src="../../../third_party/flot/jquery.min.js"></script>
21 <script src="../../../third_party/flot/jquery.flot.min.js"></script>
22 <script src="../../../third_party/flot/jquery.flot.stack.min.js"></script>
23 <script src="../visualizer/static/third_party/jqTree/tree.jquery.js"></script>
24 <script src="../visualizer/static/utility.js"></script>
25 <script src="../visualizer/static/profiler.js"></script>
26 <script src="../visualizer/static/graph-view.js"></script>
27 <script src="../visualizer/static/dropdown-view.js"></script>
28 <script src="../visualizer/static/menu-view.js"></script>
29 <script type="text/javascript">
30   $(function() {
31   var data = $DATA;
32   var profiler = new Profiler(data);
33   var graphView = new GraphView(profiler);
34   var dropdownView = new DropdownView(profiler);
35   var menuView = new MenuView(profiler);
36
37   profiler.reparse();
38 });
39 </script>
40
41 <body>
42   <h2>Deep Memory Profiler Visualizer</h2>
43   <div id="graph-div"></div>
44   <div id="info-div">
45     <div id="category-menu"></div>
46     <div id="subs-dropdown"></div>
47   </div>
48 </body>
49 """
50
51
52 def main(argv):
53   # Read json data.
54   with open(argv[1]) as data_file:
55     data = data_file.read()
56
57   # Fill in the template of index.js.
58   dmprof_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
59   html_dir = os.path.join(dmprof_path, 'graphs')
60   if not os.path.exists(html_dir):
61     os.mkdir(html_dir)
62
63   html_handle, html_path = tempfile.mkstemp('.html', 'graph', html_dir)
64   html_file = os.fdopen(html_handle, 'w')
65   html_file.write(Template(_TEMPLATE).safe_substitute({ 'DATA': data }))
66   html_file.close()
67
68   # Open index page in chrome automatically if permitted.
69   if sys.platform.startswith('linux'):
70     try:
71       subprocess.call(['xdg-open', html_path])
72     except OSError, exception:
73       print >> sys.stderr, 'xdg-open failed:', exception
74       print 'generated html file is at ' + html_path
75   else:
76     print 'generated html file is at ' + html_path
77
78
79 if __name__ == '__main__':
80   sys.exit(main(sys.argv))