Title: [119672] trunk/Source/WebCore
Revision
119672
Author
[email protected]
Date
2012-06-06 20:47:18 -0700 (Wed, 06 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 not to share RenderStyle object for option and
optgroup element regardless attributes.

When we tried to shared RenderStyle object, rendering performance was
good but we had issue in selected option and text transform, see
https://bugs.webkit.org/show_bug.cgi?id=88405 for details.

No new tests. This patch doesn't change behavior but rendering performance.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement): Changed to always
return false for option and optgroup.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (119671 => 119672)


--- trunk/Source/WebCore/ChangeLog	2012-06-07 03:39:35 UTC (rev 119671)
+++ trunk/Source/WebCore/ChangeLog	2012-06-07 03:47:18 UTC (rev 119672)
@@ -1,3 +1,23 @@
+2012-06-06  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 not to share RenderStyle object for option and
+        optgroup element regardless attributes.
+
+        When we tried to shared RenderStyle object, rendering performance was
+        good but we had issue in selected option and text transform, see
+        https://bugs.webkit.org/show_bug.cgi?id=88405 for details.
+
+        No new tests. This patch doesn't change behavior but rendering performance.
+
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::canShareStyleWithElement): Changed to always
+        return false for option and optgroup.
+
 2012-06-06  Alec Flett  <[email protected]>
 
         IndexedDB: Optimize single-key get()

Modified: trunk/Source/WebCore/css/StyleResolver.cpp (119671 => 119672)


--- trunk/Source/WebCore/css/StyleResolver.cpp	2012-06-07 03:39:35 UTC (rev 119671)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2012-06-07 03:47:18 UTC (rev 119672)
@@ -1391,12 +1391,12 @@
     }
 #endif
 
-    if (element->hasTagName(optionTag))
+    // FIXME: We should share style for option and optgroup whenever possible.
+    // Before doing so, we need to resolve issues in HTMLSelectElement::recalcListItems
+    // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cgi?id=88405
+    if (element->hasTagName(optionTag) || element->hasTagName(optgroupTag))
         return false;
 
-    if (element->hasTagName(optgroupTag) && m_element->disabled() != element->disabled())
-        return false;
-
     bool isControl = element->isFormControlElement();
 
     if (isControl != m_element->isFormControlElement())
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to