Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dc6b015add557d1588de0ee477c8ea011871ce51
      
https://github.com/WebKit/WebKit/commit/dc6b015add557d1588de0ee477c8ea011871ce51
  Author: Ahmad Saleem <[email protected]>
  Date:   2026-07-12 (Sun, 12 Jul 2026)

  Changed paths:
    A LayoutTests/fast/frames/frameset-frameborder-dynamic-update-expected.txt
    A LayoutTests/fast/frames/frameset-frameborder-dynamic-update.html
    A 
LayoutTests/fast/frames/frameset-noresize-removal-allows-resize-expected.txt
    A LayoutTests/fast/frames/frameset-noresize-removal-allows-resize.html
    M LayoutTests/platform/ios/TestExpectations
    M Source/WebCore/html/HTMLFrameSetElement.cpp

  Log Message:
  -----------
  HTMLFrameSetElement does not correctly update frameborder/noresize state on 
dynamic attribute changes
https://bugs.webkit.org/show_bug.cgi?id=318203
rdar://181006923

Reviewed by Chris Dumez.

HTMLFrameSetElement::attributeChanged() mishandled state-clearing for three 
cases:

- frameborder="yes"/"1" set m_frameborderSet but never set m_frameborder back to
  true, so toggling frameborder from "no" to "yes" left the border disabled.
- Removing the frameborder attribute forced m_frameborder to false instead of
  restoring the constructor default (true), so removal was not equivalent to
  never having set the attribute.
- The noresize case unconditionally set m_noresize to true, so removing the
  attribute never cleared it (this had an explicit FIXME).

Additionally, neither the frameborder nor noresize cases invalidated style, so
even corrected state was not reflected until an unrelated relayout. Invalidate
the subtree on these changes (matching the existing rows/cols handling), which
also resolves the "Do we need to trigger repainting?" FIXME for frameborder.

Tests: fast/frames/frameset-frameborder-dynamic-update.html
       fast/frames/frameset-noresize-removal-allows-resize.html

* LayoutTests/fast/frames/frameset-frameborder-dynamic-update-expected.txt: 
Added.
* LayoutTests/fast/frames/frameset-frameborder-dynamic-update.html: Added.
* LayoutTests/fast/frames/frameset-noresize-removal-allows-resize-expected.txt: 
Added.
* LayoutTests/fast/frames/frameset-noresize-removal-allows-resize.html: Added.
* Source/WebCore/html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::attributeChanged):

> Platform Specific Expectation:
* LayoutTests/platform/ios/TestExpectations: no resize on iOS

Canonical link: https://commits.webkit.org/317022@main



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

Reply via email to