[webkit-changes] [WebKit/WebKit] d3e09c: Regression(267815.354 at safari-7617-branch) ASSERTIO...

Chris Dumez noreply at github.com
Sat Mar 23 13:10:55 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d3e09ca8668bca5183f6dee9e88193fb826ae514
      https://github.com/WebKit/WebKit/commit/d3e09ca8668bca5183f6dee9e88193fb826ae514
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-03-23 (Sat, 23 Mar 2024)

  Changed paths:
    M Source/WebCore/html/HTMLPlugInImageElement.cpp

  Log Message:
  -----------
  Regression(267815.354 at safari-7617-branch) ASSERTION FAILED: ownerElement.document().frame() in the tests
https://bugs.webkit.org/show_bug.cgi?id=268010
rdar://121528243

Reviewed by Ryosuke Niwa and Geoffrey Garen.

In 267815.354 at safari-7617-branch, we updated HTMLPlugInImageElement::requestObject()
to call SubframeLoader::requestObject() asynchronously. Previously, when we called
SubframeLoader::requestObject() the frame owner element's document would still be
connected (i.e. have a frame) and it was enforced by an assertion both in
HTMLPlugInImageElement::requestObject() and SubframeLoader::requestObject().

After my change in 267815.354 at safari-7617-branch, the assertion in
SubframeLoader::requestObject() would sometimes fail as this code now runs
asynchronously and the state of the DOM tree may have changed in between.

To address the issue, check if the document still have a frame when the async
lambda runs and return early if it doesn't. There is no point in loading a subframe
in a document that was detached.

* Source/WebCore/html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::requestObject):

Originally-landed-as: 272448.355 at safari-7618-branch (99b063d917a4). rdar://124554988
Canonical link: https://commits.webkit.org/276600@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list