rack-mini-profiler 1.0.2 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +138 -21
  3. data/README.md +201 -94
  4. data/lib/enable_rails_patches.rb +5 -0
  5. data/lib/generators/rack_mini_profiler/USAGE +9 -0
  6. data/lib/generators/rack_mini_profiler/install_generator.rb +13 -0
  7. data/lib/generators/{rack_profiler/templates/rack_profiler.rb → rack_mini_profiler/templates/rack_mini_profiler.rb} +1 -1
  8. data/lib/generators/rack_profiler/install_generator.rb +6 -3
  9. data/lib/html/dot.1.1.2.min.js +2 -0
  10. data/lib/html/includes.css +144 -45
  11. data/lib/html/includes.js +1423 -1009
  12. data/lib/html/includes.scss +538 -441
  13. data/lib/html/includes.tmpl +231 -148
  14. data/lib/html/pretty-print.js +810 -0
  15. data/lib/html/profile_handler.js +1 -1
  16. data/lib/html/rack-mini-profiler.css +3 -0
  17. data/lib/html/rack-mini-profiler.js +2 -0
  18. data/lib/html/share.html +0 -1
  19. data/lib/html/speedscope/LICENSE +21 -0
  20. data/lib/html/speedscope/README.md +3 -0
  21. data/lib/html/speedscope/demangle-cpp.1768f4cc.js +4 -0
  22. data/lib/html/speedscope/favicon-16x16.f74b3187.png +0 -0
  23. data/lib/html/speedscope/favicon-32x32.bc503437.png +0 -0
  24. data/lib/html/speedscope/file-format-schema.json +324 -0
  25. data/lib/html/speedscope/fonts/source-code-pro-regular.css +8 -0
  26. data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff +0 -0
  27. data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff2 +0 -0
  28. data/lib/html/speedscope/import.cf0fa83f.js +115 -0
  29. data/lib/html/speedscope/index.html +2 -0
  30. data/lib/html/speedscope/release.txt +3 -0
  31. data/lib/html/speedscope/reset.8c46b7a1.css +2 -0
  32. data/lib/html/speedscope/source-map.438fa06b.js +24 -0
  33. data/lib/html/speedscope/speedscope.44364064.js +200 -0
  34. data/lib/html/vendor.js +848 -0
  35. data/lib/mini_profiler/asset_version.rb +3 -2
  36. data/lib/mini_profiler/client_settings.rb +15 -7
  37. data/lib/mini_profiler/config.rb +51 -5
  38. data/lib/mini_profiler/gc_profiler.rb +1 -1
  39. data/lib/mini_profiler/profiling_methods.rb +13 -8
  40. data/lib/mini_profiler/snapshots_transporter.rb +109 -0
  41. data/lib/mini_profiler/storage/abstract_store.rb +52 -1
  42. data/lib/mini_profiler/storage/file_store.rb +7 -3
  43. data/lib/mini_profiler/storage/memcache_store.rb +13 -7
  44. data/lib/mini_profiler/storage/memory_store.rb +98 -5
  45. data/lib/mini_profiler/storage/redis_store.rb +226 -3
  46. data/lib/mini_profiler/storage.rb +7 -0
  47. data/lib/mini_profiler/timer_struct/base.rb +2 -0
  48. data/lib/mini_profiler/timer_struct/custom.rb +1 -0
  49. data/lib/mini_profiler/timer_struct/page.rb +60 -4
  50. data/lib/mini_profiler/timer_struct/request.rb +53 -11
  51. data/lib/mini_profiler/timer_struct/sql.rb +6 -2
  52. data/lib/mini_profiler/timer_struct.rb +8 -0
  53. data/lib/mini_profiler/version.rb +2 -1
  54. data/lib/{mini_profiler/profiler.rb → mini_profiler.rb} +394 -82
  55. data/lib/mini_profiler_rails/railtie.rb +88 -7
  56. data/lib/mini_profiler_rails/railtie_methods.rb +61 -0
  57. data/lib/patches/db/activerecord.rb +1 -12
  58. data/lib/patches/db/mongo.rb +1 -1
  59. data/lib/patches/db/moped.rb +1 -1
  60. data/lib/patches/db/mysql2/alias_method.rb +30 -0
  61. data/lib/patches/db/mysql2/prepend.rb +34 -0
  62. data/lib/patches/db/mysql2.rb +4 -27
  63. data/lib/patches/db/plucky.rb +4 -4
  64. data/lib/patches/db/riak.rb +1 -1
  65. data/lib/patches/net_patches.rb +21 -10
  66. data/lib/patches/sql_patches.rb +13 -5
  67. data/lib/prepend_mysql2_patch.rb +5 -0
  68. data/lib/prepend_net_http_patch.rb +5 -0
  69. data/lib/rack-mini-profiler.rb +1 -24
  70. data/rack-mini-profiler.gemspec +17 -8
  71. metadata +156 -32
  72. data/lib/html/jquery.1.7.1.js +0 -4
  73. data/lib/html/jquery.tmpl.js +0 -486
  74. data/lib/html/list.css +0 -9
  75. data/lib/html/list.js +0 -38
  76. data/lib/html/list.tmpl +0 -34
@@ -1,545 +1,642 @@
1
1
  @mixin box-shadow($dx, $dy, $radius, $color) {
2
- -moz-box-shadow: $dx $dy $radius $color;
3
- -webkit-box-shadow: $dx $dy $radius $color;
4
- box-shadow: $dx $dy $radius $color;
2
+ box-shadow: $dx $dy $radius $color;
5
3
  }
6
4
 
7
- $anchorColor: #0077CC;
5
+ $anchorColor: #0077cc;
8
6
  $buttonBorderColor: #888;
9
7
  $numberColor: #111;
10
8
  $textColor: #555;
11
9
  $mutedColor: #767676;
12
10
  $normalFonts: Helvetica, Arial, sans-serif;
13
11
  $codeFonts: Consolas, monospace, serif;
14
- $zindex:2147483640; // near 32bit max 2147483647
12
+ $zindex: 2147483640; // near 32bit max 2147483647
15
13
 
16
14
  // do some resets
17
- .profiler-result, .profiler-queries {
18
- color:#555;
19
- line-height:1;
20
- font-size:12px;
21
-
22
- pre, code, label, table, tbody, thead, tfoot, tr, th, td {
23
- margin:0;
24
- padding:0;
25
- border:0;
26
- font-size:100%;
27
- font:inherit;
28
- vertical-align:baseline;
29
- background-color:transparent;
30
- overflow:visible;
31
- max-height:none;
32
- }
33
- table {
34
- border-collapse:collapse;
35
- border-spacing:0;
36
- }
37
- a, a:hover {
38
- cursor:pointer;
39
- color:$anchorColor;
40
- }
41
- a {
42
- text-decoration:none;
43
- &:hover {
44
- text-decoration:underline;
45
- }
15
+ .mp-snapshots,
16
+ .profiler-result,
17
+ .profiler-queries {
18
+ color: $textColor;
19
+ line-height: 1;
20
+ font-size: 12px;
21
+
22
+ pre,
23
+ code,
24
+ label,
25
+ table,
26
+ tbody,
27
+ thead,
28
+ tfoot,
29
+ tr,
30
+ th,
31
+ td {
32
+ margin: 0;
33
+ padding: 0;
34
+ border: 0;
35
+ font-size: 100%;
36
+ font: inherit;
37
+ vertical-align: baseline;
38
+ background-color: transparent;
39
+ overflow: visible;
40
+ max-height: none;
41
+ }
42
+ table {
43
+ border-collapse: collapse;
44
+ border-spacing: 0;
45
+ }
46
+ a,
47
+ a:hover {
48
+ cursor: pointer;
49
+ color: $anchorColor;
50
+ }
51
+ a {
52
+ text-decoration: none;
53
+ &:hover {
54
+ text-decoration: underline;
46
55
  }
56
+ }
57
+ .custom-fields-title {
58
+ color: $textColor;
59
+ font-family: $normalFonts;
60
+ font-size: 14px;
61
+ }
62
+ .ta-left { text-align: left; }
63
+ .ta-right { text-align: right; }
47
64
  }
48
65
 
49
66
  // styles shared between popup view and full view
50
- .profiler-result
51
- {
52
-
53
- .profiler-toggle-duration-with-children
54
- {
55
- float: right;
67
+ .profiler-result {
68
+ .profiler-toggle-duration-with-children {
69
+ float: right;
70
+ }
71
+ .profiler-snapshots-page-link {
72
+ float: left;
73
+ }
74
+ table.profiler-client-timings {
75
+ margin-top: 10px;
76
+ }
77
+ font-family: $normalFonts;
78
+
79
+ .profiler-label {
80
+ color: $textColor;
81
+ overflow: hidden;
82
+ text-overflow: ellipsis;
83
+ }
84
+
85
+ .profiler-unit {
86
+ color: $mutedColor;
87
+ }
88
+
89
+ .profiler-trivial {
90
+ display: none;
91
+ td,
92
+ td * {
93
+ color: $mutedColor !important;
56
94
  }
57
- table.profiler-client-timings
58
- {
59
- margin-top: 10px;
95
+ }
96
+
97
+ pre,
98
+ code,
99
+ .profiler-number,
100
+ .profiler-unit {
101
+ font-family: $codeFonts;
102
+ }
103
+
104
+ .profiler-number {
105
+ color: $numberColor;
106
+ }
107
+
108
+ .profiler-info {
109
+ text-align: right;
110
+ .profiler-name {
111
+ float: left;
60
112
  }
61
- font-family:$normalFonts;
62
-
63
- .profiler-label {
64
- color:$textColor;
65
- overflow:hidden;
66
- text-overflow: ellipsis;
113
+ .profiler-server-time {
114
+ white-space: nowrap;
67
115
  }
116
+ }
68
117
 
69
- .profiler-unit {
70
- color:$mutedColor;
118
+ .profiler-timings {
119
+ th {
120
+ background-color: #fff;
121
+ color: $mutedColor;
122
+ text-align: right;
71
123
  }
72
-
73
- .profiler-trivial {
74
- display:none;
75
- td, td * {
76
- color:$mutedColor !important;
77
- }
124
+ th,
125
+ td {
126
+ white-space: nowrap;
78
127
  }
79
-
80
- pre, code, .profiler-number, .profiler-unit {
81
- font-family:$codeFonts;
128
+ .profiler-duration-with-children {
129
+ display: none;
82
130
  }
83
-
84
- .profiler-number {
85
- color:$numberColor;
131
+ .profiler-duration {
132
+ color: $numberColor;
133
+ text-align: right;
86
134
  }
87
-
88
- .profiler-info {
89
- text-align:right;
90
- .profiler-name {
91
- float:left;
92
- }
93
- .profiler-server-time {
94
- white-space:nowrap;
95
- }
135
+ .profiler-indent {
136
+ letter-spacing: 4px;
137
+ }
138
+ .profiler-queries-show {
139
+ .profiler-number,
140
+ .profiler-unit {
141
+ color: $anchorColor;
142
+ }
143
+ }
144
+ .profiler-queries-duration {
145
+ padding-left: 6px;
146
+ }
147
+ .profiler-percent-in-sql {
148
+ white-space: nowrap;
149
+ text-align: right;
96
150
  }
97
151
 
98
- .profiler-timings {
99
- th {
100
- background-color:#fff;
101
- color:$mutedColor;
102
- text-align:right;
103
- }
104
- th, td {
105
- white-space:nowrap;
106
- }
107
- .profiler-duration-with-children {
108
- display:none;
109
- }
110
- .profiler-duration {
111
- color:$numberColor;
112
- text-align:right;
113
- }
114
- .profiler-indent {
115
- letter-spacing:4px;
116
- }
117
- .profiler-queries-show {
118
- .profiler-number, .profiler-unit {
119
- color:$anchorColor;
120
- }
121
- }
122
- .profiler-queries-duration {
123
- padding-left:6px;
124
- }
125
- .profiler-percent-in-sql {
126
- white-space:nowrap;
127
- text-align:right;
128
- }
152
+ tfoot {
153
+ td {
154
+ padding-top: 10px;
155
+ text-align: right;
156
+
157
+ a {
158
+ font-size: 95%;
159
+ display: inline-block;
160
+ margin-left: 12px;
129
161
 
130
- tfoot {
131
- td {
132
- padding-top:10px;
133
- text-align:right;
134
-
135
- a {
136
- font-size:95%;
137
- display:inline-block;
138
- margin-left:12px;
139
-
140
- &:first-child {
141
- float:left;
142
- margin-left:0px;
143
- }
144
- &.profiler-custom-link {
145
- float:left;
146
- }
147
- }
148
- }
162
+ &:first-child {
163
+ float: left;
164
+ margin-left: 0px;
165
+ }
166
+ &.profiler-custom-link {
167
+ float: left;
168
+ }
149
169
  }
170
+ }
150
171
  }
172
+ }
151
173
 
152
- .profiler-queries {
153
- font-family:$normalFonts;
174
+ .profiler-queries {
175
+ font-family: $normalFonts;
154
176
 
155
- .profiler-stack-trace {
156
- margin-bottom:15px;
157
- }
177
+ .profiler-stack-trace {
178
+ margin-bottom: 15px;
179
+ }
158
180
 
159
- tbody tr {
160
- border-bottom: 1px solid #f1f1f1;
161
- }
181
+ tbody tr {
182
+ border-bottom: 1px solid #f1f1f1;
183
+ }
162
184
 
163
- tr {
164
- background-color: #FFF;
165
- }
185
+ tr {
186
+ background-color: #fff;
187
+ &.higlight-animate {
188
+ animation: highlight-in 3s;
189
+ }
190
+ }
166
191
 
167
- tr.slow {
168
- background-color: #FEE;
169
- }
192
+ tr.slow {
193
+ background-color: #fee;
194
+ }
170
195
 
171
- tr.very-slow {
172
- background-color: #FDD;
173
- }
196
+ tr.very-slow {
197
+ background-color: #fdd;
198
+ }
174
199
 
175
- tr.very-very-slow {
176
- background-color: #FCC;
177
- }
200
+ tr.very-very-slow {
201
+ background-color: #fcc;
202
+ }
178
203
 
179
- pre {
180
- font-family:$codeFonts;
181
- white-space:pre-wrap;
182
- }
204
+ pre {
205
+ font-family: $codeFonts;
206
+ white-space: pre-wrap;
207
+ }
183
208
 
184
- th {
185
- background-color:#fff;
186
- border-bottom:1px solid #555;
187
- font-weight:bold;
188
- padding:15px;
189
- white-space:nowrap;
190
- }
209
+ th {
210
+ background-color: #fff;
211
+ border-bottom: 1px solid $textColor;
212
+ font-weight: bold;
213
+ padding: 15px;
214
+ white-space: nowrap;
215
+ }
191
216
 
192
- td {
193
- padding:15px;
194
- text-align:left;
217
+ td {
218
+ padding: 15px;
219
+ text-align: left;
195
220
 
196
- &:last-child {
197
- padding-right:25px; // compensate for scrollbars
198
- }
199
- }
221
+ &:last-child {
222
+ padding-right: 25px; // compensate for scrollbars
223
+ }
224
+ }
200
225
 
201
- .profiler-since-start, .profiler-duration {
202
- text-align:right;
203
- }
226
+ .profiler-since-start,
227
+ .profiler-duration {
228
+ text-align: right;
229
+ }
204
230
 
205
- .profiler-info div {
206
- text-align:right;
207
- margin-bottom:5px;
208
- }
231
+ .profiler-info div {
232
+ text-align: right;
233
+ margin-bottom: 5px;
234
+ }
209
235
 
210
- .profiler-gap-info, .profiler-gap-info td { background-color: #ccc;}
211
- .profiler-gap-info {
212
- .profiler-unit {color: #777;}
213
- .profiler-info {text-align: right}
214
- &.profiler-trivial-gaps {display: none}
215
- }
236
+ .profiler-gap-info,
237
+ .profiler-gap-info td {
238
+ background-color: #ccc;
239
+ }
240
+ .profiler-gap-info {
241
+ .profiler-unit {
242
+ color: #777;
243
+ }
244
+ .profiler-info {
245
+ text-align: right;
246
+ }
247
+ &.profiler-trivial-gaps {
248
+ display: none;
249
+ }
250
+ }
216
251
 
217
- .profiler-trivial-gap-container { text-align: center;}
218
-
219
- // prettify colors
220
- .str{color:maroon}
221
- .kwd{color:#00008b}
222
- .com{color:gray}
223
- .typ{color:#2b91af}
224
- .lit{color:maroon}
225
- .pun{color:#000}
226
- .pln{color:#000}
227
- .tag{color:maroon}
228
- .atn{color:red}
229
- .atv{color:blue}
230
- .dec{color:purple}
231
- }
232
-
233
- .profiler-warning, .profiler-warning *, .profiler-warning .profiler-queries-show, .profiler-warning .profiler-queries-show .profiler-unit { // i'm no good at css
234
- color:#f00;
235
- &:hover {
236
- color:#f00;
237
- }
252
+ .profiler-trivial-gap-container {
253
+ text-align: center;
238
254
  }
239
255
 
240
- .profiler-nuclear {
241
- color:#f00;
242
- &:hover {
243
- color:#f00;
244
- }
245
- font-weight:bold;
246
- padding-right:2px;
256
+ // prettify colors
257
+ .str {
258
+ color: maroon;
259
+ }
260
+ .kwd {
261
+ color: #00008b;
262
+ }
263
+ .com {
264
+ color: gray;
265
+ }
266
+ .typ {
267
+ color: #2b91af;
268
+ }
269
+ .lit {
270
+ color: maroon;
271
+ }
272
+ .pun {
273
+ color: #000;
274
+ }
275
+ .pln {
276
+ color: #000;
277
+ }
278
+ .tag {
279
+ color: maroon;
247
280
  }
281
+ .atn {
282
+ color: red;
283
+ }
284
+ .atv {
285
+ color: blue;
286
+ }
287
+ .dec {
288
+ color: purple;
289
+ }
290
+ }
291
+
292
+ .profiler-warning,
293
+ .profiler-warning *,
294
+ .profiler-warning .profiler-queries-show,
295
+ .profiler-warning .profiler-queries-show .profiler-unit {
296
+ // i'm no good at css
297
+ color: #f00;
298
+ &:hover {
299
+ color: #f00;
300
+ }
301
+ }
302
+
303
+ .profiler-nuclear {
304
+ color: #f00;
305
+ &:hover {
306
+ color: #f00;
307
+ }
308
+ font-weight: bold;
309
+ padding-right: 2px;
310
+ }
248
311
  }
249
312
 
250
313
  // ajaxed-in results will be appended to this
251
- .profiler-results
252
- {
253
- z-index:$zindex + 3;
254
- position:fixed;
255
-
256
- $radius:10px;
257
-
258
- &.profiler-top {
259
- top:0px;
260
-
261
- &.profiler-left {
262
- left:0px;
263
-
264
- &.profiler-no-controls .profiler-totals, &.profiler-no-controls .profiler-result:last-child .profiler-button, .profiler-controls {
265
- -webkit-border-bottom-right-radius: $radius;
266
- -moz-border-radius-bottomright: $radius;
267
- border-bottom-right-radius: $radius;
268
- }
314
+ .profiler-results {
315
+ z-index: $zindex + 3;
316
+ position: fixed;
269
317
 
270
- .profiler-button, .profiler-controls {
271
- border-right: 1px solid $buttonBorderColor;
272
- }
273
- }
318
+ $radius: 10px;
274
319
 
275
- &.profiler-right {
276
- right:0px;
320
+ &.profiler-top {
321
+ top: 0px;
277
322
 
278
- &.profiler-no-controls .profiler-totals, &.profiler-no-controls .profiler-result:last-child .profiler-button, .profiler-controls {
279
- -webkit-border-bottom-left-radius: $radius;
280
- -moz-border-radius-bottomleft: $radius;
281
- border-bottom-left-radius: $radius;
282
- }
323
+ &.profiler-left {
324
+ left: 0px;
283
325
 
284
- .profiler-button, .profiler-controls {
285
- border-left: 1px solid $buttonBorderColor;
286
- }
326
+ &.profiler-no-controls .profiler-totals,
327
+ &.profiler-no-controls .profiler-result:last-child .profiler-button,
328
+ .profiler-controls {
329
+ border-bottom-right-radius: $radius;
287
330
  }
288
- }
289
331
 
290
- &.profiler-bottom {
291
- bottom:0px;
332
+ .profiler-button,
333
+ .profiler-controls {
334
+ border-right: 1px solid $buttonBorderColor;
335
+ }
336
+ }
292
337
 
293
- &.profiler-left {
294
- left:0px;
338
+ &.profiler-right {
339
+ right: 0px;
295
340
 
296
- &.profiler-no-controls .profiler-totals, &.profiler-no-controls .profiler-result:first-child .profiler-button, .profiler-controls {
297
- -webkit-border-top-right-radius: $radius;
298
- -moz-border-radius-topright: $radius;
299
- border-top-right-radius: $radius;
300
- }
341
+ &.profiler-no-controls .profiler-totals,
342
+ &.profiler-no-controls .profiler-result:last-child .profiler-button,
343
+ .profiler-controls {
344
+ border-bottom-left-radius: $radius;
345
+ }
301
346
 
302
- .profiler-button, .profiler-controls {
303
- border-right: 1px solid $buttonBorderColor;
304
- }
347
+ .profiler-button,
348
+ .profiler-controls {
349
+ border-left: 1px solid $buttonBorderColor;
305
350
  }
351
+ }
352
+ }
306
353
 
307
- &.profiler-right {
308
- right:0px;
354
+ &.profiler-bottom {
355
+ bottom: 0px;
309
356
 
310
- &.profiler-no-controls .profiler-totals, &.profiler-no-controls .profiler-result:first-child .profiler-button, .profiler-controls {
311
- -webkit-border-bottom-top-radius: $radius;
312
- -moz-border-radius-topleft: $radius;
313
- border-top-left-radius: $radius;
314
- }
357
+ &.profiler-left {
358
+ left: 0px;
315
359
 
316
- .profiler-button, .profiler-controls {
317
- border-left: 1px solid $buttonBorderColor;
318
- }
360
+ &.profiler-no-controls .profiler-totals,
361
+ &.profiler-no-controls .profiler-result:first-child .profiler-button,
362
+ .profiler-controls {
363
+ border-top-right-radius: $radius;
319
364
  }
320
- }
321
365
 
322
- .profiler-button, .profiler-controls {
323
- display:none;
324
- z-index:$zindex;
325
- border-bottom: 1px solid $buttonBorderColor;
326
- background-color:#fff;
327
- padding: 4px 7px;
328
- text-align:right;
329
- cursor:pointer;
330
-
331
- &.profiler-button-active {
332
- background-color:maroon;
333
-
334
- .profiler-number, .profiler-nuclear {
335
- color:#fff;
336
- font-weight:bold;
337
- }
338
- .profiler-unit {
339
- color:#fff;
340
- font-weight:normal;
341
- }
342
- }
366
+ .profiler-button,
367
+ .profiler-controls {
368
+ border-right: 1px solid $buttonBorderColor;
369
+ }
343
370
  }
344
371
 
372
+ &.profiler-right {
373
+ right: 0px;
345
374
 
346
- .profiler-totals {
347
- .profiler-reqs {
348
- font-family: $codeFonts;
349
- font-size: 10px;
350
- margin-left: 6px;
351
- &:before {
352
- font-family: $codeFonts;
353
- content: "×";
354
- margin-right: 1px;
355
- }
375
+ &.profiler-no-controls .profiler-totals,
376
+ &.profiler-no-controls .profiler-result:first-child .profiler-button,
377
+ .profiler-controls {
378
+ border-top-left-radius: $radius;
356
379
  }
357
- }
358
380
 
359
- .profiler-controls {
360
- display: block;
361
- font-size:12px;
381
+ .profiler-button,
382
+ .profiler-controls {
383
+ border-left: 1px solid $buttonBorderColor;
384
+ }
385
+ }
386
+ }
387
+
388
+ .profiler-button,
389
+ .profiler-controls {
390
+ display: none;
391
+ z-index: $zindex;
392
+ border-bottom: 1px solid $buttonBorderColor;
393
+ background-color: #fff;
394
+ padding: 4px 7px;
395
+ text-align: right;
396
+ cursor: pointer;
397
+
398
+ &.profiler-button-active {
399
+ background-color: maroon;
400
+
401
+ .profiler-number,
402
+ .profiler-nuclear {
403
+ color: #fff;
404
+ font-weight: bold;
405
+ }
406
+ .profiler-unit {
407
+ color: #fff;
408
+ font-weight: normal;
409
+ }
410
+ }
411
+ }
412
+
413
+ .profiler-totals {
414
+ .profiler-reqs {
415
+ font-family: $codeFonts;
416
+ font-size: 10px;
417
+ margin-left: 6px;
418
+ &:before {
362
419
  font-family: $codeFonts;
363
- cursor:default;
364
- text-align: center;
365
-
366
- span {
367
- border-right: 1px solid $mutedColor;
368
- padding-right: 5px;
369
- margin-right: 5px;
370
- cursor:pointer;
371
- }
372
-
373
- span:last-child {
374
- border-right: none;
375
- }
420
+ content: "×";
421
+ margin-right: 1px;
422
+ }
423
+ }
424
+ }
425
+
426
+ .profiler-controls {
427
+ display: block;
428
+ font-size: 12px;
429
+ font-family: $codeFonts;
430
+ cursor: default;
431
+ text-align: center;
432
+
433
+ span {
434
+ border-right: 1px solid $mutedColor;
435
+ padding-right: 5px;
436
+ margin-right: 5px;
437
+ cursor: pointer;
376
438
  }
377
439
 
378
- .profiler-popup {
379
- display:none;
380
- z-index:$zindex + 1;
381
- position:absolute;
382
- background-color:#fff;
383
- border: 1px solid #aaa;
384
- padding:5px 10px;
385
- text-align:left;
386
- line-height:18px;
387
- overflow:auto;
388
-
389
- @include box-shadow(0px, 1px, 15px, #555);
390
-
391
- .profiler-info {
392
- margin-bottom:3px;
393
- padding-bottom:2px;
394
- border-bottom:1px solid #ddd;
395
-
396
- .profiler-name {
397
- font-size:110%;
398
- font-weight:bold;
399
- .profiler-overall-duration {
400
- display:none;
401
- }
402
- }
403
- .profiler-server-time {
404
- font-size:95%;
405
- }
406
- }
440
+ span:last-child {
441
+ border-right: none;
442
+ }
443
+ }
407
444
 
408
- .profiler-timings {
445
+ .profiler-popup {
446
+ display: none;
447
+ z-index: $zindex + 1;
448
+ position: absolute;
449
+ background-color: #fff;
450
+ border: 1px solid #aaa;
451
+ padding: 5px 10px;
452
+ text-align: left;
453
+ line-height: 18px;
454
+ overflow: auto;
409
455
 
410
- th, td {
411
- padding-left:6px;
412
- padding-right:6px;
413
- }
456
+ @include box-shadow(0px, 1px, 15px, $textColor);
414
457
 
415
- th {
416
- font-size:95%;
417
- padding-bottom:3px;
418
- }
458
+ .profiler-info {
459
+ margin-bottom: 3px;
460
+ padding-bottom: 2px;
461
+ border-bottom: 1px solid #ddd;
419
462
 
420
- .profiler-label {
421
- max-width:275px;
422
- }
463
+ .profiler-name {
464
+ font-size: 110%;
465
+ font-weight: bold;
466
+ .profiler-overall-duration {
467
+ display: none;
423
468
  }
469
+ }
470
+ .profiler-server-time {
471
+ font-size: 95%;
472
+ }
424
473
  }
425
474
 
426
- .profiler-queries {
427
- display:none;
428
- z-index:$zindex + 3;
429
- position:absolute;
430
- overflow-y:auto;
431
- overflow-x:auto;
432
- background-color:#fff;
475
+ .profiler-timings {
476
+ th,
477
+ td {
478
+ padding-left: 6px;
479
+ padding-right: 6px;
480
+ }
433
481
 
434
- th {
435
- font-size:17px;
436
- }
437
- }
482
+ th {
483
+ font-size: 95%;
484
+ padding-bottom: 3px;
485
+ }
438
486
 
439
- &.profiler-min .profiler-result {
440
- display: none;
487
+ .profiler-label {
488
+ max-width: 275px;
489
+ }
441
490
  }
442
-
443
- &.profiler-min .profiler-controls span {
444
- display: none;
491
+ }
492
+
493
+ .profiler-queries {
494
+ display: none;
495
+ z-index: $zindex + 3;
496
+ position: absolute;
497
+ overflow-y: auto;
498
+ overflow-x: auto;
499
+ background-color: #fff;
500
+
501
+ th {
502
+ font-size: 17px;
445
503
  }
504
+ }
446
505
 
447
- &.profiler-min .profiler-controls .profiler-min-max {
448
- border-right: none;
449
- padding: 0px;
450
- margin: 0px;
451
- }
506
+ &.profiler-min .profiler-result {
507
+ display: none;
508
+ }
452
509
 
453
- .profiler-more-actions { float: left; }
510
+ &.profiler-min .profiler-controls span {
511
+ display: none;
512
+ }
454
513
 
455
- @media print {
456
- display: none;
457
- }
514
+ &.profiler-min .profiler-controls .profiler-min-max {
515
+ border-right: none;
516
+ padding: 0px;
517
+ margin: 0px;
518
+ }
519
+
520
+ .profiler-more-actions {
521
+ float: left;
522
+ }
523
+
524
+ @media print {
525
+ display: none;
526
+ }
458
527
  }
459
528
 
460
529
  // popup results' queries will be displayed in front of this
461
530
  .profiler-queries-bg {
462
- z-index:$zindex + 2;
463
- display:none;
464
- background:#000;
465
- opacity:0.7;
466
- position:absolute;
467
- top:0px;
468
- left:0px;
469
- min-width:100%;
531
+ z-index: $zindex + 2;
532
+ display: none;
533
+ background: #000;
534
+ opacity: 0.7;
535
+ position: absolute;
536
+ top: 0px;
537
+ left: 0px;
538
+ min-width: 100%;
470
539
  }
471
540
 
472
-
473
541
  // used when viewing a shared, full page result
474
542
  .profiler-result-full {
475
- .profiler-result {
543
+ .profiler-result {
544
+ width: 950px;
545
+ margin: 30px auto;
476
546
 
477
- width:950px;
478
- margin:30px auto;
547
+ .profiler-button {
548
+ display: none;
549
+ }
550
+
551
+ .profiler-popup {
552
+ .profiler-info {
553
+ font-size: 25px;
554
+ border-bottom: 1px solid $mutedColor;
555
+ padding-bottom: 3px;
556
+ margin-bottom: 25px;
479
557
 
480
- .profiler-button {
481
- display:none;
558
+ .profiler-overall-duration {
559
+ padding-right: 20px;
560
+ font-size: 80%;
561
+ color: #888;
482
562
  }
563
+ }
483
564
 
484
- .profiler-popup {
485
-
486
- .profiler-info {
487
- font-size: 25px;
488
- border-bottom:1px solid $mutedColor;
489
- padding-bottom:3px;
490
- margin-bottom:25px;
491
-
492
- .profiler-overall-duration {
493
- padding-right:20px;
494
- font-size:80%;
495
- color:#888;
496
- }
497
- }
498
-
499
- .profiler-timings {
500
- td, th {
501
- padding-left:8px;
502
- padding-right:8px;
503
- }
504
- th {
505
- padding-bottom:7px;
506
- }
507
- td {
508
- font-size:14px;
509
- padding-bottom:4px;
510
-
511
- &:first-child {
512
- padding-left:10px;
513
- }
514
- }
515
-
516
- .profiler-label {
517
- max-width:550px;
518
- }
519
- }
565
+ .profiler-timings {
566
+ td,
567
+ th {
568
+ padding-left: 8px;
569
+ padding-right: 8px;
520
570
  }
571
+ th {
572
+ padding-bottom: 7px;
573
+ }
574
+ td {
575
+ font-size: 14px;
576
+ padding-bottom: 4px;
521
577
 
522
- .profiler-queries {
523
- margin:25px 0;
524
- table {
525
- width:100%;
526
- }
527
- th {
528
- font-size:16px;
529
- color:#555;
530
- line-height:20px;
531
- }
532
-
533
- td {
534
- padding:15px 10px;
535
- text-align:left;
536
- }
537
-
538
- .profiler-info div {
539
- text-align:right;
540
- margin-bottom:5px;
541
- }
578
+ &:first-child {
579
+ padding-left: 10px;
580
+ }
542
581
  }
582
+
583
+ .profiler-label {
584
+ max-width: 550px;
585
+ }
586
+ }
587
+ }
588
+
589
+ .profiler-queries {
590
+ margin: 25px 0;
591
+ table {
592
+ width: 100%;
593
+ }
594
+ th {
595
+ font-size: 16px;
596
+ color: $textColor;
597
+ line-height: 20px;
598
+ }
599
+
600
+ td {
601
+ padding: 15px 10px;
602
+ text-align: left;
603
+ }
604
+
605
+ .profiler-info div {
606
+ text-align: right;
607
+ margin-bottom: 5px;
608
+ }
543
609
  }
610
+ }
611
+ }
612
+
613
+ @keyframes highlight-in {
614
+ 0% {
615
+ background: #ffffbb;
616
+ }
617
+ 100% {
618
+ background: #fff;
619
+ }
620
+ }
621
+
622
+ .mp-snapshots {
623
+ font-family: $normalFonts;
624
+ font-size: 16px;
544
625
 
626
+ .snapshots-table {
627
+ thead {
628
+ background: #6a737c;
629
+ color: #ffffff;
630
+ }
631
+ th, td {
632
+ padding: 5px 10px;
633
+ box-sizing: border-box;
634
+ &:not(.request-group) {
635
+ text-align: center;
636
+ }
637
+ }
638
+ th {
639
+ border-right: 1px solid #ffffff;
640
+ }
641
+ }
545
642
  }