Commit dd60d35
http2: only call into JS when necessary for session events
For some JS events, it only makes sense to call into JS when there
are listeners for the event in question.
The overhead is noticeable if a lot of these events are emitted during
the lifetime of a session. To reduce this overhead, keep track of
whether any/how many JS listeners are present, and if there are none,
skip calls into JS altogether.
This is part of performance improvements to mitigate CVE-2019-9513.
Backport-PR-URL: #29124
PR-URL: #29122
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>1 parent 00f6846 commit dd60d35Copy full SHA for dd60d35
File tree
Expand file treeCollapse file tree
4 files changed
+163
-10
lines changedOpen diff view settings
Filter options
- lib/internal/http2
- src
Expand file treeCollapse file tree
4 files changed
+163
-10
lines changedOpen diff view settings
Collapse file
+112-7Lines changed: 112 additions & 7 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
108 | 108 | |
109 | 109 | |
110 | 110 | |
| 111 | + |
111 | 112 | |
112 | 113 | |
113 | 114 | |
| ||
130 | 131 | |
131 | 132 | |
132 | 133 | |
133 | | - |
| 134 | + |
| 135 | + |
| 136 | + |
| 137 | + |
| 138 | + |
| 139 | + |
| 140 | + |
| 141 | + |
| 142 | + |
134 | 143 | |
135 | 144 | |
136 | 145 | |
| ||
305 | 314 | |
306 | 315 | |
307 | 316 | |
| 317 | + |
| 318 | + |
| 319 | + |
| 320 | + |
| 321 | + |
| 322 | + |
| 323 | + |
| 324 | + |
| 325 | + |
| 326 | + |
| 327 | + |
| 328 | + |
| 329 | + |
| 330 | + |
| 331 | + |
| 332 | + |
| 333 | + |
| 334 | + |
| 335 | + |
| 336 | + |
| 337 | + |
| 338 | + |
| 339 | + |
| 340 | + |
| 341 | + |
| 342 | + |
| 343 | + |
| 344 | + |
| 345 | + |
| 346 | + |
| 347 | + |
| 348 | + |
| 349 | + |
| 350 | + |
| 351 | + |
| 352 | + |
| 353 | + |
| 354 | + |
| 355 | + |
| 356 | + |
| 357 | + |
| 358 | + |
| 359 | + |
| 360 | + |
| 361 | + |
| 362 | + |
| 363 | + |
| 364 | + |
| 365 | + |
| 366 | + |
| 367 | + |
| 368 | + |
| 369 | + |
| 370 | + |
| 371 | + |
| 372 | + |
| 373 | + |
| 374 | + |
| 375 | + |
| 376 | + |
| 377 | + |
| 378 | + |
| 379 | + |
| 380 | + |
| 381 | + |
| 382 | + |
| 383 | + |
| 384 | + |
| 385 | + |
| 386 | + |
308 | 387 | |
309 | 388 | |
310 | 389 | |
| ||
394 | 473 | |
395 | 474 | |
396 | 475 | |
397 | | - |
398 | 476 | |
399 | 477 | |
400 | 478 | |
| ||
845 | 923 | |
846 | 924 | |
847 | 925 | |
| 926 | + |
| 927 | + |
| 928 | + |
| 929 | + |
848 | 930 | |
849 | 931 | |
850 | 932 | |
| ||
886 | 968 | |
887 | 969 | |
888 | 970 | |
| 971 | + |
889 | 972 | |
890 | 973 | |
891 | 974 | |
| ||
963 | 1046 | |
964 | 1047 | |
965 | 1048 | |
| 1049 | + |
966 | 1050 | |
967 | 1051 | |
968 | 1052 | |
| ||
981 | 1065 | |
982 | 1066 | |
983 | 1067 | |
| 1068 | + |
| 1069 | + |
| 1070 | + |
| 1071 | + |
| 1072 | + |
984 | 1073 | |
985 | 1074 | |
986 | 1075 | |
| ||
1136 | 1225 | |
1137 | 1226 | |
1138 | 1227 | |
1139 | | - |
1140 | | - |
1141 | | - |
| 1228 | + |
| 1229 | + |
| 1230 | + |
| 1231 | + |
| 1232 | + |
| 1233 | + |
| 1234 | + |
1142 | 1235 | |
1143 | 1236 | |
1144 | 1237 | |
1145 | 1238 | |
| 1239 | + |
1146 | 1240 | |
1147 | 1241 | |
1148 | 1242 | |
| ||
1330 | 1424 | |
1331 | 1425 | |
1332 | 1426 | |
| 1427 | + |
| 1428 | + |
| 1429 | + |
| 1430 | + |
| 1431 | + |
| 1432 | + |
1333 | 1433 | |
1334 | 1434 | |
1335 | 1435 | |
| ||
1668 | 1768 | |
1669 | 1769 | |
1670 | 1770 | |
| 1771 | + |
| 1772 | + |
| 1773 | + |
1671 | 1774 | |
1672 | 1775 | |
1673 | 1776 | |
| ||
2620 | 2723 | |
2621 | 2724 | |
2622 | 2725 | |
2623 | | - |
| 2726 | + |
2624 | 2727 | |
2625 | 2728 | |
2626 | 2729 | |
| ||
2669 | 2772 | |
2670 | 2773 | |
2671 | 2774 | |
2672 | | - |
2673 | 2775 | |
| 2776 | + |
| 2777 | + |
| 2778 | + |
2674 | 2779 | |
2675 | 2780 | |
2676 | 2781 | |
|
Collapse file
+1Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
161 | 161 | |
162 | 162 | |
163 | 163 | |
| 164 | + |
164 | 165 | |
165 | 166 | |
166 | 167 | |
|
Collapse file
+30-3Lines changed: 30 additions & 3 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
20 | 20 | |
21 | 21 | |
22 | 22 | |
| 23 | + |
23 | 24 | |
24 | 25 | |
25 | 26 | |
| ||
667 | 668 | |
668 | 669 | |
669 | 670 | |
| 671 | + |
| 672 | + |
| 673 | + |
| 674 | + |
| 675 | + |
| 676 | + |
| 677 | + |
| 678 | + |
| 679 | + |
670 | 680 | |
671 | 681 | |
672 | 682 | |
| ||
1090 | 1100 | |
1091 | 1101 | |
1092 | 1102 | |
1093 | | - |
| 1103 | + |
| 1104 | + |
1094 | 1105 | |
1095 | 1106 | |
1096 | 1107 | |
| ||
1346 | 1357 | |
1347 | 1358 | |
1348 | 1359 | |
1349 | | - |
| 1360 | + |
| 1361 | + |
1350 | 1362 | |
1351 | 1363 | |
1352 | 1364 | |
| ||
1413 | 1425 | |
1414 | 1426 | |
1415 | 1427 | |
1416 | | - |
| 1428 | + |
| 1429 | + |
1417 | 1430 | |
1418 | 1431 | |
1419 | 1432 | |
| ||
1499 | 1512 | |
1500 | 1513 | |
1501 | 1514 | |
| 1515 | + |
1502 | 1516 | |
1503 | 1517 | |
1504 | 1518 | |
| ||
1510 | 1524 | |
1511 | 1525 | |
1512 | 1526 | |
| 1527 | + |
| 1528 | + |
| 1529 | + |
1513 | 1530 | |
1514 | 1531 | |
1515 | 1532 | |
| ||
3135 | 3152 | |
3136 | 3153 | |
3137 | 3154 | |
| 3155 | + |
| 3156 | + |
| 3157 | + |
| 3158 | + |
| 3159 | + |
| 3160 | + |
| 3161 | + |
| 3162 | + |
| 3163 | + |
| 3164 | + |
3138 | 3165 | |
3139 | 3166 | |
3140 | 3167 | |
|
Collapse file
+20Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
735 | 735 | |
736 | 736 | |
737 | 737 | |
| 738 | + |
| 739 | + |
| 740 | + |
| 741 | + |
| 742 | + |
| 743 | + |
| 744 | + |
| 745 | + |
| 746 | + |
| 747 | + |
| 748 | + |
| 749 | + |
| 750 | + |
| 751 | + |
| 752 | + |
| 753 | + |
| 754 | + |
738 | 755 | |
739 | 756 | |
740 | 757 | |
| ||
1016 | 1033 | |
1017 | 1034 | |
1018 | 1035 | |
| 1036 | + |
| 1037 | + |
| 1038 | + |
1019 | 1039 | |
1020 | 1040 | |
1021 | 1041 | |
|
0 commit comments