Bug 257269

Summary: Speedometer 3 hits Webkit's replaceState/pushState limits
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: HistoryAssignee: Ryosuke Niwa <rniwa>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, annevk, beidson, cdumez, ggaren, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Ryosuke Niwa 2023-05-24 11:00:44 PDT
Speedometer 3 being developed at https://github.com/WebKit/Speedometer is hitting WebKit's 30s limit for replaceState/pushState.

Do we really need to limit this at 100 in 30s? Or can the limit be higher like 1000 in 30s?
Comment 1 Geoffrey Garen 2023-05-24 11:22:11 PDT
I believe the goal of this limit was to avoid DoS of the UI process, which might include client app behaviors outside WebKit's control, when updating history data structures and UI. As long as a test case for 1000 / 30s, where the payload is the maximum size, does not cause serious responsiveness issues in WebKit browsers, upping the limit is probably fine.
Comment 2 Ryosuke Niwa 2023-05-24 12:24:35 PDT
It seems mildly problematic to have this limit only in WebKit. It can lead to WebKit-only bugs / failures.
Comment 3 Ryosuke Niwa 2023-05-24 12:26:55 PDT
Pull request: https://github.com/WebKit/WebKit/pull/14301
Comment 4 EWS 2023-05-24 18:22:43 PDT
Committed 264499@main (451d10e21bf9): <https://commits.webkit.org/264499@main>

Reviewed commits have been landed. Closing PR #14301 and removing active labels.
Comment 5 Radar WebKit Bug Importer 2023-05-24 18:23:17 PDT
<rdar://problem/109806715>