Commit 602daa6
committed
Script Loader: Fix transitive leaks and improve diagnostics for scoped modules.
Address review feedback for the scoped script modules feature:
- Stop import-map traversal at modules registered with empty scopes so their
public transitive dependencies don't leak into top-level `imports`.
- Warn when a classic script's `module_dependencies` reference a module
registered with empty scopes; such a dependency cannot be resolved via bare
specifier from the classic script.
- Warn when a `module_id` scope resolves to a URL with no path separator
(which cannot be reduced to a directory).
- Improve register-time validation messages to include the module identifier
and received type, and avoid PHP syntax in translatable strings.
- Correct the docblock claim that only static dependencies on empty-scoped
modules fail; declared dependencies (static or dynamic) are treated like
missing dependencies, mirroring existing missing-dep semantics.
- Tighten test assertions and wrap a filter in `try/finally` to prevent leaks
between tests; add coverage for the transitive-leak fix, the classic-script
empty-scoped warning, and the `module_id` no-slash diagnostic.1 parent 86da535 commit 602daa6
3 files changed
Lines changed: 210 additions & 19 deletions
File tree
- src/wp-includes
- tests/phpunit/tests/script-modules
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | | - | |
138 | | - | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
139 | 140 | | |
140 | 141 | | |
141 | 142 | | |
| |||
209 | 210 | | |
210 | 211 | | |
211 | 212 | | |
212 | | - | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
213 | 219 | | |
214 | 220 | | |
215 | 221 | | |
| |||
219 | 225 | | |
220 | 226 | | |
221 | 227 | | |
222 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
223 | 233 | | |
224 | 234 | | |
225 | 235 | | |
| |||
236 | 246 | | |
237 | 247 | | |
238 | 248 | | |
239 | | - | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
240 | 254 | | |
241 | 255 | | |
242 | 256 | | |
| |||
730 | 744 | | |
731 | 745 | | |
732 | 746 | | |
733 | | - | |
| 747 | + | |
| 748 | + | |
734 | 749 | | |
735 | 750 | | |
736 | 751 | | |
| |||
744 | 759 | | |
745 | 760 | | |
746 | 761 | | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
747 | 767 | | |
748 | 768 | | |
749 | 769 | | |
| |||
762 | 782 | | |
763 | 783 | | |
764 | 784 | | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
765 | 799 | | |
766 | 800 | | |
767 | 801 | | |
| |||
772 | 806 | | |
773 | 807 | | |
774 | 808 | | |
775 | | - | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
776 | 846 | | |
777 | 847 | | |
778 | 848 | | |
779 | | - | |
| 849 | + | |
780 | 850 | | |
781 | 851 | | |
782 | 852 | | |
| |||
1179 | 1249 | | |
1180 | 1250 | | |
1181 | 1251 | | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
1182 | 1263 | | |
1183 | 1264 | | |
1184 | 1265 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
75 | | - | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2956 | 2956 | | |
2957 | 2957 | | |
2958 | 2958 | | |
| 2959 | + | |
| 2960 | + | |
2959 | 2961 | | |
2960 | 2962 | | |
2961 | 2963 | | |
| |||
3029 | 3031 | | |
3030 | 3032 | | |
3031 | 3033 | | |
| 3034 | + | |
3032 | 3035 | | |
| 3036 | + | |
| 3037 | + | |
3033 | 3038 | | |
3034 | 3039 | | |
3035 | 3040 | | |
| |||
3282 | 3287 | | |
3283 | 3288 | | |
3284 | 3289 | | |
3285 | | - | |
3286 | | - | |
3287 | | - | |
3288 | | - | |
3289 | | - | |
3290 | | - | |
| 3290 | + | |
| 3291 | + | |
| 3292 | + | |
| 3293 | + | |
3291 | 3294 | | |
3292 | | - | |
3293 | | - | |
3294 | | - | |
| 3295 | + | |
| 3296 | + | |
| 3297 | + | |
| 3298 | + | |
| 3299 | + | |
| 3300 | + | |
| 3301 | + | |
3295 | 3302 | | |
3296 | 3303 | | |
3297 | 3304 | | |
| |||
3333 | 3340 | | |
3334 | 3341 | | |
3335 | 3342 | | |
| 3343 | + | |
| 3344 | + | |
| 3345 | + | |
| 3346 | + | |
| 3347 | + | |
| 3348 | + | |
| 3349 | + | |
| 3350 | + | |
| 3351 | + | |
| 3352 | + | |
| 3353 | + | |
| 3354 | + | |
| 3355 | + | |
| 3356 | + | |
| 3357 | + | |
| 3358 | + | |
| 3359 | + | |
| 3360 | + | |
| 3361 | + | |
| 3362 | + | |
| 3363 | + | |
| 3364 | + | |
| 3365 | + | |
| 3366 | + | |
| 3367 | + | |
| 3368 | + | |
| 3369 | + | |
| 3370 | + | |
| 3371 | + | |
| 3372 | + | |
| 3373 | + | |
| 3374 | + | |
| 3375 | + | |
| 3376 | + | |
| 3377 | + | |
| 3378 | + | |
| 3379 | + | |
| 3380 | + | |
| 3381 | + | |
| 3382 | + | |
| 3383 | + | |
| 3384 | + | |
| 3385 | + | |
| 3386 | + | |
| 3387 | + | |
| 3388 | + | |
| 3389 | + | |
| 3390 | + | |
| 3391 | + | |
| 3392 | + | |
| 3393 | + | |
| 3394 | + | |
| 3395 | + | |
| 3396 | + | |
| 3397 | + | |
| 3398 | + | |
| 3399 | + | |
| 3400 | + | |
| 3401 | + | |
| 3402 | + | |
| 3403 | + | |
| 3404 | + | |
| 3405 | + | |
| 3406 | + | |
| 3407 | + | |
| 3408 | + | |
| 3409 | + | |
| 3410 | + | |
| 3411 | + | |
| 3412 | + | |
| 3413 | + | |
| 3414 | + | |
| 3415 | + | |
| 3416 | + | |
| 3417 | + | |
| 3418 | + | |
| 3419 | + | |
| 3420 | + | |
| 3421 | + | |
| 3422 | + | |
| 3423 | + | |
| 3424 | + | |
| 3425 | + | |
| 3426 | + | |
| 3427 | + | |
| 3428 | + | |
| 3429 | + | |
| 3430 | + | |
| 3431 | + | |
| 3432 | + | |
| 3433 | + | |
| 3434 | + | |
| 3435 | + | |
| 3436 | + | |
| 3437 | + | |
| 3438 | + | |
| 3439 | + | |
| 3440 | + | |
| 3441 | + | |
| 3442 | + | |
| 3443 | + | |
| 3444 | + | |
3336 | 3445 | | |
0 commit comments