Commit 13e748d
committed
REGRESSION(308209@main): Top and bottom fixed position elements flicker when rubber band scrolling
https://bugs.webkit.org/show_bug.cgi?id=315320
rdar://176226179
Reviewed by Tim Horton.
When we throttle visible content rect updates to the WebContent process, we will still update layer positions and
scrolling tree state in the UI process. However, we were missing one change that the full unthrottled path does which
is to update the WKContentView's fixed clipping view bounds. Stale data here leads to fixed positioned elements flickering
when doing a rubber band scroll while changing obscured insets interactively in iOS Safari.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/WKScrollViewTests.mm
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _updateViewportRelativeLayersOutOfBand]):
* Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _fixedClippingViewBoundsForTesting]):
* Source/WebKit/UIProcess/ios/WKContentView.h:
* Source/WebKit/UIProcess/ios/WKContentView.mm:
(-[WKContentView _fixedClippingViewBoundsForTesting]):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/WKScrollViewTests.mm:
(TestWebKitAPI::(WKScrollViewTests, FixedClippingViewTracksRubberBandDuringInteractiveObscuredInsetsChange)):
Canonical link: https://commits.webkit.org/313759@main1 parent 8480ae3 commit 13e748d
6 files changed
Lines changed: 54 additions & 0 deletions
File tree
- Source/WebKit/UIProcess
- API/ios
- ios
- Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3173 | 3173 | | |
3174 | 3174 | | |
3175 | 3175 | | |
| 3176 | + | |
3176 | 3177 | | |
3177 | 3178 | | |
3178 | 3179 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
| 107 | + | |
107 | 108 | | |
108 | 109 | | |
109 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
553 | 553 | | |
554 | 554 | | |
555 | 555 | | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
556 | 561 | | |
557 | 562 | | |
558 | 563 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
81 | 84 | | |
82 | 85 | | |
83 | 86 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
611 | 611 | | |
612 | 612 | | |
613 | 613 | | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
614 | 619 | | |
615 | 620 | | |
616 | 621 | | |
| |||
Lines changed: 39 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1307 | 1307 | | |
1308 | 1308 | | |
1309 | 1309 | | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
1310 | 1349 | | |
1311 | 1350 | | |
1312 | 1351 | | |
0 commit comments