Fix iframe lazy loading subsequent navigation crash
This CL fixes a renderer crash caused by blink::RemoteFrame::Navigate not calling LazyLoadFrameObserver::CancelPendingLazyLoad(), thus disconnecting the underlying intersection observer. The problem was that when the intersection observer does not get disconnected and detached from the iframe element, then LazyLoadFrameObserver::LoadImmediately gets called N times for a given element, however after the first time it gets called, its |lazy_load_request_info_| gets moved, and therefore is in an invalid state, so future invocations of LoadImmediately try and reuse this invalid state. The problem could have been caught if the DCHECKs in this method were CHECKs, so this CL turns them into CHECKs until we confirm that there are no more issues. If there are, the CHECKs will make them much easier to track down. R=kinuko@chromium.org, sclittle@chromium.org Bug: 1104664 Change-Id: I0adc8e26375406f0016031dd2d2d89ad043dd6f1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2298331Reviewed-by:Kinuko Yasuda <kinuko@chromium.org> Reviewed-by:
Scott Little <sclittle@chromium.org> Commit-Queue: Dominic Farolino <dom@chromium.org> Cr-Commit-Position: refs/heads/master@{#788508}
Showing
Please register or sign in to comment