Commit 197ddc8
committed
Limit the scope of invalidation traversal for
https://bugs.webkit.org/show_bug.cgi?id=297893
rdar://159173631
Reviewed by Simon Fraser.
It is sufficient to traverse the subtree of the parent to invalidate in this case, rather than the entire DOM.
This helps with GitHub performance as it uses selectors of this type.
* Source/WebCore/style/ChildChangeInvalidation.cpp:
(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
* Source/WebCore/style/ClassChangeInvalidation.cpp:
(WebCore::Style::ClassChangeInvalidation::computeInvalidation):
* Source/WebCore/style/RuleFeature.cpp:
(WebCore::Style::isSiblingOrSubject):
(WebCore::Style::isScopeBreaking):
(WebCore::Style::computeHasPseudoClassMatchElement):
(WebCore::Style::computeSubSelectorMatchElement):
Add two new MatchElement types for these cases:
`:has(> .changed) .subject
`:has(> .changed) > .subject
* Source/WebCore/style/RuleFeature.h:
* Source/WebCore/style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):
Traverse only the required subtrees for the new types.
Also document each invalidation traversal case.
Canonical link: https://commits.webkit.org/299162@main:has(> .changed) .subject
1 parent ac56c26 commit 197ddc8
File tree
5 files changed
+57
-2
lines changed- Source/WebCore/style
5 files changed
+57
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
| 54 | + | |
| 55 | + | |
53 | 56 | | |
54 | 57 | | |
55 | 58 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| 132 | + | |
| 133 | + | |
132 | 134 | | |
133 | 135 | | |
134 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
| 62 | + | |
61 | 63 | | |
62 | 64 | | |
63 | 65 | | |
| |||
104 | 106 | | |
105 | 107 | | |
106 | 108 | | |
| 109 | + | |
| 110 | + | |
107 | 111 | | |
108 | 112 | | |
109 | 113 | | |
| |||
230 | 234 | | |
231 | 235 | | |
232 | 236 | | |
| 237 | + | |
| 238 | + | |
233 | 239 | | |
234 | 240 | | |
235 | 241 | | |
| |||
258 | 264 | | |
259 | 265 | | |
260 | 266 | | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
261 | 278 | | |
262 | 279 | | |
263 | | - | |
| 280 | + | |
| 281 | + | |
264 | 282 | | |
265 | 283 | | |
266 | 284 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
59 | 61 | | |
60 | 62 | | |
61 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
| 276 | + | |
276 | 277 | | |
277 | 278 | | |
278 | 279 | | |
279 | 280 | | |
| 281 | + | |
280 | 282 | | |
281 | 283 | | |
282 | 284 | | |
283 | 285 | | |
284 | 286 | | |
285 | 287 | | |
| 288 | + | |
286 | 289 | | |
287 | 290 | | |
288 | 291 | | |
289 | 292 | | |
290 | 293 | | |
| 294 | + | |
291 | 295 | | |
292 | 296 | | |
293 | 297 | | |
294 | 298 | | |
| 299 | + | |
295 | 300 | | |
296 | 301 | | |
297 | 302 | | |
298 | 303 | | |
| 304 | + | |
299 | 305 | | |
300 | 306 | | |
301 | 307 | | |
302 | 308 | | |
303 | 309 | | |
304 | 310 | | |
| 311 | + | |
305 | 312 | | |
306 | 313 | | |
307 | 314 | | |
308 | 315 | | |
309 | 316 | | |
310 | 317 | | |
311 | 318 | | |
| 319 | + | |
312 | 320 | | |
313 | 321 | | |
314 | 322 | | |
| |||
317 | 325 | | |
318 | 326 | | |
319 | 327 | | |
| 328 | + | |
320 | 329 | | |
321 | 330 | | |
322 | 331 | | |
323 | 332 | | |
324 | 333 | | |
325 | 334 | | |
326 | 335 | | |
| 336 | + | |
327 | 337 | | |
328 | 338 | | |
329 | 339 | | |
| |||
332 | 342 | | |
333 | 343 | | |
334 | 344 | | |
| 345 | + | |
335 | 346 | | |
336 | 347 | | |
337 | 348 | | |
338 | 349 | | |
339 | 350 | | |
| 351 | + | |
340 | 352 | | |
341 | 353 | | |
342 | 354 | | |
| |||
350 | 362 | | |
351 | 363 | | |
352 | 364 | | |
| 365 | + | |
353 | 366 | | |
354 | 367 | | |
355 | 368 | | |
| |||
359 | 372 | | |
360 | 373 | | |
361 | 374 | | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
362 | 378 | | |
| 379 | + | |
363 | 380 | | |
364 | 381 | | |
365 | 382 | | |
| |||
368 | 385 | | |
369 | 386 | | |
370 | 387 | | |
| 388 | + | |
371 | 389 | | |
372 | 390 | | |
373 | 391 | | |
| |||
383 | 401 | | |
384 | 402 | | |
385 | 403 | | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
386 | 412 | | |
| 413 | + | |
387 | 414 | | |
| 415 | + | |
388 | 416 | | |
389 | 417 | | |
390 | 418 | | |
391 | 419 | | |
392 | 420 | | |
| 421 | + | |
393 | 422 | | |
394 | 423 | | |
395 | 424 | | |
| 425 | + | |
396 | 426 | | |
397 | 427 | | |
398 | 428 | | |
| |||
0 commit comments