Commit 2eb914f
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: #29123
PR-URL: #29122
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>1 parent 76a7ada commit 2eb914fCopy full SHA for 2eb914f
File tree
Expand file treeCollapse file tree
4 files changed
+161
-8
lines changedOpen diff view settings
Filter options
- lib/internal/http2
- src
Expand file treeCollapse file tree
4 files changed
+161
-8
lines changedOpen diff view settings
Collapse file
+112-7Lines changed: 112 additions & 7 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
167 | 167 | |
168 | 168 | |
169 | 169 | |
| 170 | + |
170 | 171 | |
171 | 172 | |
172 | 173 | |
| ||
188 | 189 | |
189 | 190 | |
190 | 191 | |
191 | | - |
| 192 | + |
| 193 | + |
| 194 | + |
| 195 | + |
| 196 | + |
| 197 | + |
| 198 | + |
| 199 | + |
| 200 | + |
192 | 201 | |
193 | 202 | |
194 | 203 | |
| ||
364 | 373 | |
365 | 374 | |
366 | 375 | |
| 376 | + |
| 377 | + |
| 378 | + |
| 379 | + |
| 380 | + |
| 381 | + |
| 382 | + |
| 383 | + |
| 384 | + |
| 385 | + |
| 386 | + |
| 387 | + |
| 388 | + |
| 389 | + |
| 390 | + |
| 391 | + |
| 392 | + |
| 393 | + |
| 394 | + |
| 395 | + |
| 396 | + |
| 397 | + |
| 398 | + |
| 399 | + |
| 400 | + |
| 401 | + |
| 402 | + |
| 403 | + |
| 404 | + |
| 405 | + |
| 406 | + |
| 407 | + |
| 408 | + |
| 409 | + |
| 410 | + |
| 411 | + |
| 412 | + |
| 413 | + |
| 414 | + |
| 415 | + |
| 416 | + |
| 417 | + |
| 418 | + |
| 419 | + |
| 420 | + |
| 421 | + |
| 422 | + |
| 423 | + |
| 424 | + |
| 425 | + |
| 426 | + |
| 427 | + |
| 428 | + |
| 429 | + |
| 430 | + |
| 431 | + |
| 432 | + |
| 433 | + |
| 434 | + |
| 435 | + |
| 436 | + |
| 437 | + |
| 438 | + |
| 439 | + |
| 440 | + |
| 441 | + |
| 442 | + |
| 443 | + |
| 444 | + |
| 445 | + |
367 | 446 | |
368 | 447 | |
369 | 448 | |
| ||
421 | 500 | |
422 | 501 | |
423 | 502 | |
424 | | - |
425 | 503 | |
426 | 504 | |
427 | 505 | |
| ||
863 | 941 | |
864 | 942 | |
865 | 943 | |
| 944 | + |
| 945 | + |
| 946 | + |
| 947 | + |
866 | 948 | |
867 | 949 | |
868 | 950 | |
| ||
904 | 986 | |
905 | 987 | |
906 | 988 | |
| 989 | + |
907 | 990 | |
908 | 991 | |
909 | 992 | |
| ||
982 | 1065 | |
983 | 1066 | |
984 | 1067 | |
| 1068 | + |
985 | 1069 | |
986 | 1070 | |
987 | 1071 | |
| ||
1000 | 1084 | |
1001 | 1085 | |
1002 | 1086 | |
| 1087 | + |
| 1088 | + |
| 1089 | + |
| 1090 | + |
| 1091 | + |
1003 | 1092 | |
1004 | 1093 | |
1005 | 1094 | |
| ||
1154 | 1243 | |
1155 | 1244 | |
1156 | 1245 | |
1157 | | - |
1158 | | - |
1159 | | - |
| 1246 | + |
| 1247 | + |
| 1248 | + |
| 1249 | + |
| 1250 | + |
| 1251 | + |
| 1252 | + |
1160 | 1253 | |
1161 | 1254 | |
1162 | 1255 | |
1163 | 1256 | |
| 1257 | + |
1164 | 1258 | |
1165 | 1259 | |
1166 | 1260 | |
| ||
1343 | 1437 | |
1344 | 1438 | |
1345 | 1439 | |
| 1440 | + |
| 1441 | + |
| 1442 | + |
| 1443 | + |
| 1444 | + |
| 1445 | + |
1346 | 1446 | |
1347 | 1447 | |
1348 | 1448 | |
| ||
1660 | 1760 | |
1661 | 1761 | |
1662 | 1762 | |
| 1763 | + |
| 1764 | + |
| 1765 | + |
1663 | 1766 | |
1664 | 1767 | |
1665 | 1768 | |
| ||
2633 | 2736 | |
2634 | 2737 | |
2635 | 2738 | |
2636 | | - |
| 2739 | + |
2637 | 2740 | |
2638 | 2741 | |
2639 | 2742 | |
| ||
2682 | 2785 | |
2683 | 2786 | |
2684 | 2787 | |
2685 | | - |
2686 | 2788 | |
| 2789 | + |
| 2790 | + |
| 2791 | + |
2687 | 2792 | |
2688 | 2793 | |
2689 | 2794 | |
|
Collapse file
+1Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
173 | 173 | |
174 | 174 | |
175 | 175 | |
| 176 | + |
176 | 177 | |
177 | 178 | |
178 | 179 | |
|
Collapse file
+28-1Lines changed: 28 additions & 1 deletion
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
24 | 24 | |
25 | 25 | |
26 | 26 | |
| 27 | + |
27 | 28 | |
28 | 29 | |
29 | 30 | |
| ||
631 | 632 | |
632 | 633 | |
633 | 634 | |
| 635 | + |
| 636 | + |
| 637 | + |
| 638 | + |
| 639 | + |
| 640 | + |
| 641 | + |
| 642 | + |
| 643 | + |
634 | 644 | |
635 | 645 | |
636 | 646 | |
| ||
1032 | 1042 | |
1033 | 1043 | |
1034 | 1044 | |
1035 | | - |
| 1045 | + |
| 1046 | + |
1036 | 1047 | |
1037 | 1048 | |
1038 | 1049 | |
| ||
1337 | 1348 | |
1338 | 1349 | |
1339 | 1350 | |
| 1351 | + |
1340 | 1352 | |
1341 | 1353 | |
1342 | 1354 | |
| ||
1399 | 1411 | |
1400 | 1412 | |
1401 | 1413 | |
| 1414 | + |
1402 | 1415 | |
1403 | 1416 | |
1404 | 1417 | |
| ||
1484 | 1497 | |
1485 | 1498 | |
1486 | 1499 | |
| 1500 | + |
1487 | 1501 | |
1488 | 1502 | |
1489 | 1503 | |
| ||
1495 | 1509 | |
1496 | 1510 | |
1497 | 1511 | |
| 1512 | + |
| 1513 | + |
| 1514 | + |
1498 | 1515 | |
1499 | 1516 | |
1500 | 1517 | |
| ||
2980 | 2997 | |
2981 | 2998 | |
2982 | 2999 | |
| 3000 | + |
| 3001 | + |
| 3002 | + |
| 3003 | + |
| 3004 | + |
| 3005 | + |
| 3006 | + |
| 3007 | + |
| 3008 | + |
| 3009 | + |
2983 | 3010 | |
2984 | 3011 | |
2985 | 3012 | |
|
Collapse file
+20Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
675 | 675 | |
676 | 676 | |
677 | 677 | |
| 678 | + |
| 679 | + |
| 680 | + |
| 681 | + |
| 682 | + |
| 683 | + |
| 684 | + |
| 685 | + |
| 686 | + |
| 687 | + |
| 688 | + |
| 689 | + |
| 690 | + |
| 691 | + |
| 692 | + |
| 693 | + |
| 694 | + |
678 | 695 | |
679 | 696 | |
680 | 697 | |
| ||
961 | 978 | |
962 | 979 | |
963 | 980 | |
| 981 | + |
| 982 | + |
| 983 | + |
964 | 984 | |
965 | 985 | |
966 | 986 | |
|
0 commit comments