rack-mini-profiler 1.0.1 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +115 -20
  3. data/README.md +126 -45
  4. data/lib/enable_rails_patches.rb +5 -0
  5. data/lib/html/dot.1.1.2.min.js +2 -0
  6. data/lib/html/includes.css +136 -35
  7. data/lib/html/includes.js +1400 -1009
  8. data/lib/html/includes.scss +546 -441
  9. data/lib/html/includes.tmpl +231 -148
  10. data/lib/html/pretty-print.js +810 -0
  11. data/lib/html/profile_handler.js +1 -1
  12. data/lib/html/rack-mini-profiler.css +3 -0
  13. data/lib/html/rack-mini-profiler.js +2 -0
  14. data/lib/html/share.html +0 -1
  15. data/lib/html/speedscope/LICENSE +21 -0
  16. data/lib/html/speedscope/README.md +3 -0
  17. data/lib/html/speedscope/demangle-cpp.1768f4cc.js +4 -0
  18. data/lib/html/speedscope/favicon-16x16.f74b3187.png +0 -0
  19. data/lib/html/speedscope/favicon-32x32.bc503437.png +0 -0
  20. data/lib/html/speedscope/file-format-schema.json +324 -0
  21. data/lib/html/speedscope/fonts/source-code-pro-regular.css +8 -0
  22. data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff +0 -0
  23. data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff2 +0 -0
  24. data/lib/html/speedscope/import.cf0fa83f.js +115 -0
  25. data/lib/html/speedscope/index.html +2 -0
  26. data/lib/html/speedscope/release.txt +3 -0
  27. data/lib/html/speedscope/reset.8c46b7a1.css +2 -0
  28. data/lib/html/speedscope/source-map.438fa06b.js +24 -0
  29. data/lib/html/speedscope/speedscope.44364064.js +200 -0
  30. data/lib/html/vendor.js +848 -0
  31. data/lib/mini_profiler/asset_version.rb +3 -2
  32. data/lib/mini_profiler/client_settings.rb +13 -5
  33. data/lib/mini_profiler/config.rb +43 -5
  34. data/lib/mini_profiler/gc_profiler.rb +1 -1
  35. data/lib/mini_profiler/profiler.rb +310 -42
  36. data/lib/mini_profiler/profiling_methods.rb +13 -8
  37. data/lib/mini_profiler/snapshots_transporter.rb +109 -0
  38. data/lib/mini_profiler/storage/abstract_store.rb +79 -1
  39. data/lib/mini_profiler/storage/file_store.rb +3 -3
  40. data/lib/mini_profiler/storage/memcache_store.rb +2 -0
  41. data/lib/mini_profiler/storage/memory_store.rb +54 -5
  42. data/lib/mini_profiler/storage/redis_store.rb +136 -2
  43. data/lib/mini_profiler/timer_struct/custom.rb +1 -0
  44. data/lib/mini_profiler/timer_struct/page.rb +60 -4
  45. data/lib/mini_profiler/timer_struct/request.rb +53 -11
  46. data/lib/mini_profiler/timer_struct/sql.rb +4 -2
  47. data/lib/mini_profiler/version.rb +1 -1
  48. data/lib/mini_profiler_rails/railtie.rb +88 -7
  49. data/lib/mini_profiler_rails/railtie_methods.rb +61 -0
  50. data/lib/patches/db/activerecord.rb +1 -12
  51. data/lib/patches/db/mongo.rb +1 -1
  52. data/lib/patches/db/moped.rb +1 -1
  53. data/lib/patches/db/mysql2.rb +4 -27
  54. data/lib/patches/db/mysql2/alias_method.rb +30 -0
  55. data/lib/patches/db/mysql2/prepend.rb +34 -0
  56. data/lib/patches/db/plucky.rb +4 -4
  57. data/lib/patches/net_patches.rb +18 -8
  58. data/lib/patches/sql_patches.rb +13 -5
  59. data/lib/prepend_mysql2_patch.rb +5 -0
  60. data/lib/prepend_net_http_patch.rb +5 -0
  61. data/lib/rack-mini-profiler.rb +1 -1
  62. data/rack-mini-profiler.gemspec +15 -6
  63. metadata +150 -31
  64. data/lib/html/jquery.1.7.1.js +0 -4
  65. data/lib/html/jquery.tmpl.js +0 -486
  66. data/lib/html/list.css +0 -9
  67. data/lib/html/list.js +0 -38
  68. data/lib/html/list.tmpl +0 -34
@@ -1,545 +1,650 @@
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
+ -moz-box-shadow: $dx $dy $radius $color;
3
+ -webkit-box-shadow: $dx $dy $radius $color;
4
+ box-shadow: $dx $dy $radius $color;
5
5
  }
6
6
 
7
- $anchorColor: #0077CC;
7
+ $anchorColor: #0077cc;
8
8
  $buttonBorderColor: #888;
9
9
  $numberColor: #111;
10
10
  $textColor: #555;
11
11
  $mutedColor: #767676;
12
12
  $normalFonts: Helvetica, Arial, sans-serif;
13
13
  $codeFonts: Consolas, monospace, serif;
14
- $zindex:2147483640; // near 32bit max 2147483647
14
+ $zindex: 2147483640; // near 32bit max 2147483647
15
15
 
16
16
  // 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
- }
17
+ .mp-snapshots,
18
+ .profiler-result,
19
+ .profiler-queries {
20
+ color: $textColor;
21
+ line-height: 1;
22
+ font-size: 12px;
23
+
24
+ pre,
25
+ code,
26
+ label,
27
+ table,
28
+ tbody,
29
+ thead,
30
+ tfoot,
31
+ tr,
32
+ th,
33
+ td {
34
+ margin: 0;
35
+ padding: 0;
36
+ border: 0;
37
+ font-size: 100%;
38
+ font: inherit;
39
+ vertical-align: baseline;
40
+ background-color: transparent;
41
+ overflow: visible;
42
+ max-height: none;
43
+ }
44
+ table {
45
+ border-collapse: collapse;
46
+ border-spacing: 0;
47
+ }
48
+ a,
49
+ a:hover {
50
+ cursor: pointer;
51
+ color: $anchorColor;
52
+ }
53
+ a {
54
+ text-decoration: none;
55
+ &:hover {
56
+ text-decoration: underline;
46
57
  }
58
+ }
59
+ .custom-fields-title {
60
+ color: $textColor;
61
+ font: $normalFonts;
62
+ font-size: 14px;
63
+ }
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
+ -webkit-border-bottom-right-radius: $radius;
330
+ -moz-border-radius-bottomright: $radius;
331
+ border-bottom-right-radius: $radius;
287
332
  }
288
- }
289
333
 
290
- &.profiler-bottom {
291
- bottom:0px;
334
+ .profiler-button,
335
+ .profiler-controls {
336
+ border-right: 1px solid $buttonBorderColor;
337
+ }
338
+ }
292
339
 
293
- &.profiler-left {
294
- left:0px;
340
+ &.profiler-right {
341
+ right: 0px;
295
342
 
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
- }
343
+ &.profiler-no-controls .profiler-totals,
344
+ &.profiler-no-controls .profiler-result:last-child .profiler-button,
345
+ .profiler-controls {
346
+ -webkit-border-bottom-left-radius: $radius;
347
+ -moz-border-radius-bottomleft: $radius;
348
+ border-bottom-left-radius: $radius;
349
+ }
301
350
 
302
- .profiler-button, .profiler-controls {
303
- border-right: 1px solid $buttonBorderColor;
304
- }
351
+ .profiler-button,
352
+ .profiler-controls {
353
+ border-left: 1px solid $buttonBorderColor;
305
354
  }
355
+ }
356
+ }
306
357
 
307
- &.profiler-right {
308
- right:0px;
358
+ &.profiler-bottom {
359
+ bottom: 0px;
309
360
 
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
- }
361
+ &.profiler-left {
362
+ left: 0px;
315
363
 
316
- .profiler-button, .profiler-controls {
317
- border-left: 1px solid $buttonBorderColor;
318
- }
364
+ &.profiler-no-controls .profiler-totals,
365
+ &.profiler-no-controls .profiler-result:first-child .profiler-button,
366
+ .profiler-controls {
367
+ -webkit-border-top-right-radius: $radius;
368
+ -moz-border-radius-topright: $radius;
369
+ border-top-right-radius: $radius;
319
370
  }
320
- }
321
371
 
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
- }
372
+ .profiler-button,
373
+ .profiler-controls {
374
+ border-right: 1px solid $buttonBorderColor;
375
+ }
343
376
  }
344
377
 
378
+ &.profiler-right {
379
+ right: 0px;
345
380
 
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
- }
381
+ &.profiler-no-controls .profiler-totals,
382
+ &.profiler-no-controls .profiler-result:first-child .profiler-button,
383
+ .profiler-controls {
384
+ -webkit-border-bottom-top-radius: $radius;
385
+ -moz-border-radius-topleft: $radius;
386
+ border-top-left-radius: $radius;
356
387
  }
357
- }
358
388
 
359
- .profiler-controls {
360
- display: block;
361
- font-size:12px;
389
+ .profiler-button,
390
+ .profiler-controls {
391
+ border-left: 1px solid $buttonBorderColor;
392
+ }
393
+ }
394
+ }
395
+
396
+ .profiler-button,
397
+ .profiler-controls {
398
+ display: none;
399
+ z-index: $zindex;
400
+ border-bottom: 1px solid $buttonBorderColor;
401
+ background-color: #fff;
402
+ padding: 4px 7px;
403
+ text-align: right;
404
+ cursor: pointer;
405
+
406
+ &.profiler-button-active {
407
+ background-color: maroon;
408
+
409
+ .profiler-number,
410
+ .profiler-nuclear {
411
+ color: #fff;
412
+ font-weight: bold;
413
+ }
414
+ .profiler-unit {
415
+ color: #fff;
416
+ font-weight: normal;
417
+ }
418
+ }
419
+ }
420
+
421
+ .profiler-totals {
422
+ .profiler-reqs {
423
+ font-family: $codeFonts;
424
+ font-size: 10px;
425
+ margin-left: 6px;
426
+ &:before {
362
427
  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
- }
428
+ content: "×";
429
+ margin-right: 1px;
430
+ }
431
+ }
432
+ }
433
+
434
+ .profiler-controls {
435
+ display: block;
436
+ font-size: 12px;
437
+ font-family: $codeFonts;
438
+ cursor: default;
439
+ text-align: center;
440
+
441
+ span {
442
+ border-right: 1px solid $mutedColor;
443
+ padding-right: 5px;
444
+ margin-right: 5px;
445
+ cursor: pointer;
376
446
  }
377
447
 
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
- }
448
+ span:last-child {
449
+ border-right: none;
450
+ }
451
+ }
407
452
 
408
- .profiler-timings {
453
+ .profiler-popup {
454
+ display: none;
455
+ z-index: $zindex + 1;
456
+ position: absolute;
457
+ background-color: #fff;
458
+ border: 1px solid #aaa;
459
+ padding: 5px 10px;
460
+ text-align: left;
461
+ line-height: 18px;
462
+ overflow: auto;
409
463
 
410
- th, td {
411
- padding-left:6px;
412
- padding-right:6px;
413
- }
464
+ @include box-shadow(0px, 1px, 15px, $textColor);
414
465
 
415
- th {
416
- font-size:95%;
417
- padding-bottom:3px;
418
- }
466
+ .profiler-info {
467
+ margin-bottom: 3px;
468
+ padding-bottom: 2px;
469
+ border-bottom: 1px solid #ddd;
419
470
 
420
- .profiler-label {
421
- max-width:275px;
422
- }
471
+ .profiler-name {
472
+ font-size: 110%;
473
+ font-weight: bold;
474
+ .profiler-overall-duration {
475
+ display: none;
423
476
  }
477
+ }
478
+ .profiler-server-time {
479
+ font-size: 95%;
480
+ }
424
481
  }
425
482
 
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;
483
+ .profiler-timings {
484
+ th,
485
+ td {
486
+ padding-left: 6px;
487
+ padding-right: 6px;
488
+ }
433
489
 
434
- th {
435
- font-size:17px;
436
- }
437
- }
490
+ th {
491
+ font-size: 95%;
492
+ padding-bottom: 3px;
493
+ }
438
494
 
439
- &.profiler-min .profiler-result {
440
- display: none;
495
+ .profiler-label {
496
+ max-width: 275px;
497
+ }
441
498
  }
442
-
443
- &.profiler-min .profiler-controls span {
444
- display: none;
499
+ }
500
+
501
+ .profiler-queries {
502
+ display: none;
503
+ z-index: $zindex + 3;
504
+ position: absolute;
505
+ overflow-y: auto;
506
+ overflow-x: auto;
507
+ background-color: #fff;
508
+
509
+ th {
510
+ font-size: 17px;
445
511
  }
512
+ }
446
513
 
447
- &.profiler-min .profiler-controls .profiler-min-max {
448
- border-right: none;
449
- padding: 0px;
450
- margin: 0px;
451
- }
514
+ &.profiler-min .profiler-result {
515
+ display: none;
516
+ }
452
517
 
453
- .profiler-more-actions { float: left; }
518
+ &.profiler-min .profiler-controls span {
519
+ display: none;
520
+ }
454
521
 
455
- @media print {
456
- display: none;
457
- }
522
+ &.profiler-min .profiler-controls .profiler-min-max {
523
+ border-right: none;
524
+ padding: 0px;
525
+ margin: 0px;
526
+ }
527
+
528
+ .profiler-more-actions {
529
+ float: left;
530
+ }
531
+
532
+ @media print {
533
+ display: none;
534
+ }
458
535
  }
459
536
 
460
537
  // popup results' queries will be displayed in front of this
461
538
  .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%;
539
+ z-index: $zindex + 2;
540
+ display: none;
541
+ background: #000;
542
+ opacity: 0.7;
543
+ position: absolute;
544
+ top: 0px;
545
+ left: 0px;
546
+ min-width: 100%;
470
547
  }
471
548
 
472
-
473
549
  // used when viewing a shared, full page result
474
550
  .profiler-result-full {
475
- .profiler-result {
551
+ .profiler-result {
552
+ width: 950px;
553
+ margin: 30px auto;
476
554
 
477
- width:950px;
478
- margin:30px auto;
555
+ .profiler-button {
556
+ display: none;
557
+ }
558
+
559
+ .profiler-popup {
560
+ .profiler-info {
561
+ font-size: 25px;
562
+ border-bottom: 1px solid $mutedColor;
563
+ padding-bottom: 3px;
564
+ margin-bottom: 25px;
479
565
 
480
- .profiler-button {
481
- display:none;
566
+ .profiler-overall-duration {
567
+ padding-right: 20px;
568
+ font-size: 80%;
569
+ color: #888;
482
570
  }
571
+ }
483
572
 
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
- }
573
+ .profiler-timings {
574
+ td,
575
+ th {
576
+ padding-left: 8px;
577
+ padding-right: 8px;
520
578
  }
579
+ th {
580
+ padding-bottom: 7px;
581
+ }
582
+ td {
583
+ font-size: 14px;
584
+ padding-bottom: 4px;
521
585
 
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
- }
586
+ &:first-child {
587
+ padding-left: 10px;
588
+ }
542
589
  }
590
+
591
+ .profiler-label {
592
+ max-width: 550px;
593
+ }
594
+ }
595
+ }
596
+
597
+ .profiler-queries {
598
+ margin: 25px 0;
599
+ table {
600
+ width: 100%;
601
+ }
602
+ th {
603
+ font-size: 16px;
604
+ color: $textColor;
605
+ line-height: 20px;
606
+ }
607
+
608
+ td {
609
+ padding: 15px 10px;
610
+ text-align: left;
611
+ }
612
+
613
+ .profiler-info div {
614
+ text-align: right;
615
+ margin-bottom: 5px;
616
+ }
543
617
  }
618
+ }
619
+ }
620
+
621
+ @keyframes highlight-in {
622
+ 0% {
623
+ background: #ffffbb;
624
+ }
625
+ 100% {
626
+ background: #fff;
627
+ }
628
+ }
629
+
630
+ .mp-snapshots {
631
+ font-family: $normalFonts;
632
+ font-size: 16px;
544
633
 
634
+ .snapshots-table {
635
+ thead {
636
+ background: #6a737c;
637
+ color: #ffffff;
638
+ }
639
+ th, td {
640
+ padding: 5px 10px;
641
+ box-sizing: border-box;
642
+ &:not(.request-group) {
643
+ text-align: center;
644
+ }
645
+ }
646
+ th {
647
+ border-right: 1px solid #ffffff;
648
+ }
649
+ }
545
650
  }