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