Title: [119213] trunk/Source/WebCore
- Revision
- 119213
- Author
- [email protected]
- Date
- 2012-06-01 04:53:10 -0700 (Fri, 01 Jun 2012)
Log Message
REGRESSION(r109729) [Form] Rendering of select/optgroup/option combination is too slow.
https://bugs.webkit.org/show_bug.cgi?id=88059
Reviewed by Kent Tamura.
This patch changes to share RenderStyle object among the "option"
elements to improve rendering performance and reducing memory usage
of RenderStyle.
No new tests. This patch doesn't change behavior but rendering performance.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement): Check attribute value
mismatching for "option" element.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (119212 => 119213)
--- trunk/Source/WebCore/ChangeLog 2012-06-01 11:26:49 UTC (rev 119212)
+++ trunk/Source/WebCore/ChangeLog 2012-06-01 11:53:10 UTC (rev 119213)
@@ -1,3 +1,20 @@
+2012-06-01 Yoshifumi Inoue <[email protected]>
+
+ REGRESSION(r109729) [Form] Rendering of select/optgroup/option combination is too slow.
+ https://bugs.webkit.org/show_bug.cgi?id=88059
+
+ Reviewed by Kent Tamura.
+
+ This patch changes to share RenderStyle object among the "option"
+ elements to improve rendering performance and reducing memory usage
+ of RenderStyle.
+
+ No new tests. This patch doesn't change behavior but rendering performance.
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::canShareStyleWithElement): Check attribute value
+ mismatching for "option" element.
+
2012-06-01 Alexander Pavlov <[email protected]>
Web Inspector: [REGRESSION] Bad layout of "Override device metrics" controls in the Settings dialog
Modified: trunk/Source/WebCore/css/StyleResolver.cpp (119212 => 119213)
--- trunk/Source/WebCore/css/StyleResolver.cpp 2012-06-01 11:26:49 UTC (rev 119212)
+++ trunk/Source/WebCore/css/StyleResolver.cpp 2012-06-01 11:53:10 UTC (rev 119213)
@@ -1389,8 +1389,14 @@
}
#endif
- if (element->hasTagName(optionTag))
- return false;
+ // Check attributes for :disabled, :enabeld, :checked, :default, CSS pseudo class.
+ if (element->hasTagName(optionTag)) {
+ HTMLOptionElement* thisOptionElement = toHTMLOptionElement(element);
+ HTMLOptionElement* otherOptionElement = toHTMLOptionElement(m_element);
+ if (thisOptionElement->isEnabledFormControl() != otherOptionElement->isEnabledFormControl()
+ || thisOptionElement->selected() != otherOptionElement->selected())
+ return false;
+ }
if (element->hasTagName(optgroupTag) && m_element->disabled() != element->disabled())
return false;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes