Title: [159989] trunk/Source/WebCore
- Revision
- 159989
- Author
- [email protected]
- Date
- 2013-12-02 19:19:08 -0800 (Mon, 02 Dec 2013)
Log Message
Avoid setting style twice for generated image content.
<https://webkit.org/b/125128>
Take care of a FIXME I added in r158097 and avoid redundant work in
ImageContentData::createRenderer().
I changed the inheritance helper RenderImage::setPseudoStyle() into
a new createStyleInheritingFromPseudoStyle() function instead so it
can be used from both PseudoElement and ImageContentData.
Reviewed by Antti Koivisto.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (159988 => 159989)
--- trunk/Source/WebCore/ChangeLog 2013-12-03 02:36:08 UTC (rev 159988)
+++ trunk/Source/WebCore/ChangeLog 2013-12-03 03:19:08 UTC (rev 159989)
@@ -1,3 +1,17 @@
+2013-12-02 Andreas Kling <[email protected]>
+
+ Avoid setting style twice for generated image content.
+ <https://webkit.org/b/125128>
+
+ Take care of a FIXME I added in r158097 and avoid redundant work in
+ ImageContentData::createRenderer().
+
+ I changed the inheritance helper RenderImage::setPseudoStyle() into
+ a new createStyleInheritingFromPseudoStyle() function instead so it
+ can be used from both PseudoElement and ImageContentData.
+
+ Reviewed by Antti Koivisto.
+
2013-12-02 Samuel White <[email protected]>
AX: Add AXUIElementCountForSearchPredicate parameterized attribute.
Modified: trunk/Source/WebCore/dom/PseudoElement.cpp (159988 => 159989)
--- trunk/Source/WebCore/dom/PseudoElement.cpp 2013-12-03 02:36:08 UTC (rev 159988)
+++ trunk/Source/WebCore/dom/PseudoElement.cpp 2013-12-03 03:19:08 UTC (rev 159989)
@@ -114,7 +114,7 @@
// We only manage the style for the generated content which must be images or text.
if (!child->isImage())
continue;
- toRenderImage(child)->setPseudoStyle(&renderer->style());
+ toRenderImage(*child).setStyle(RenderImage::createStyleInheritingFromPseudoStyle(renderer->style()));
}
}
Modified: trunk/Source/WebCore/rendering/RenderImage.cpp (159988 => 159989)
--- trunk/Source/WebCore/rendering/RenderImage.cpp 2013-12-03 02:36:08 UTC (rev 159988)
+++ trunk/Source/WebCore/rendering/RenderImage.cpp 2013-12-03 03:19:08 UTC (rev 159989)
@@ -74,17 +74,16 @@
m_imageResource->shutdown();
}
-
-void RenderImage::setPseudoStyle(PassRefPtr<RenderStyle> pseudoStyle)
+PassRef<RenderStyle> RenderImage::createStyleInheritingFromPseudoStyle(const RenderStyle& pseudoStyle)
{
- ASSERT(pseudoStyle->styleType() == BEFORE || pseudoStyle->styleType() == AFTER);
+ ASSERT(pseudoStyle.styleType() == BEFORE || pseudoStyle.styleType() == AFTER);
// Images are special and must inherit the pseudoStyle so the width and height of
// the pseudo element doesn't change the size of the image. In all other cases we
// can just share the style.
auto style = RenderStyle::create();
- style.get().inheritFrom(pseudoStyle.get());
- setStyle(std::move(style));
+ style.get().inheritFrom(&pseudoStyle);
+ return style;
}
void RenderImage::setImageResource(PassOwnPtr<RenderImageResource> imageResource)
Modified: trunk/Source/WebCore/rendering/RenderImage.h (159988 => 159989)
--- trunk/Source/WebCore/rendering/RenderImage.h 2013-12-03 02:36:08 UTC (rev 159988)
+++ trunk/Source/WebCore/rendering/RenderImage.h 2013-12-03 03:19:08 UTC (rev 159989)
@@ -39,8 +39,8 @@
explicit RenderImage(Document&, PassRef<RenderStyle>);
virtual ~RenderImage();
- // Set the style of the object if it's generated content.
- void setPseudoStyle(PassRefPtr<RenderStyle>);
+ // Create a RenderStyle for generated content by inheriting from a pseudo style.
+ static PassRef<RenderStyle> createStyleInheritingFromPseudoStyle(const RenderStyle&);
void setImageResource(PassOwnPtr<RenderImageResource>);
Modified: trunk/Source/WebCore/rendering/style/ContentData.cpp (159988 => 159989)
--- trunk/Source/WebCore/rendering/style/ContentData.cpp 2013-12-03 02:36:08 UTC (rev 159988)
+++ trunk/Source/WebCore/rendering/style/ContentData.cpp 2013-12-03 03:19:08 UTC (rev 159989)
@@ -49,9 +49,8 @@
RenderObject* ImageContentData::createRenderer(Document& document, RenderStyle& pseudoStyle) const
{
- // FIXME: We should find a way to avoid setting the style twice here.
- RenderImage* image = new RenderImage(document, pseudoStyle);
- image->setPseudoStyle(&pseudoStyle);
+ RenderImage* image = new RenderImage(document, RenderImage::createStyleInheritingFromPseudoStyle(pseudoStyle));
+ image->initializeStyle();
image->setAltText(altText());
if (m_image)
image->setImageResource(RenderImageResourceStyleImage::create(*m_image));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes