Title: [156119] trunk/Source/WebCore

Diff

Modified: trunk/Source/WebCore/ChangeLog (156118 => 156119)


--- trunk/Source/WebCore/ChangeLog	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/ChangeLog	2013-09-19 22:03:01 UTC (rev 156119)
@@ -1,3 +1,12 @@
+2013-09-19  Antti Koivisto  <[email protected]>
+
+        Add covariant RenderElement* Element::renderer()
+        https://bugs.webkit.org/show_bug.cgi?id=121638
+
+        Reviewed by Andreas Kling.
+
+        Also add isRenderElement() test and casting functions.
+
 2013-09-19  Andreas Kling  <[email protected]>
 
         Streamline JSMainThreadNullState.

Modified: trunk/Source/WebCore/accessibility/AccessibilitySpinButton.cpp (156118 => 156119)


--- trunk/Source/WebCore/accessibility/AccessibilitySpinButton.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/accessibility/AccessibilitySpinButton.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -27,7 +27,7 @@
 #include "AccessibilitySpinButton.h"
 
 #include "AXObjectCache.h"
-#include "RenderObject.h"
+#include "RenderElement.h"
 
 namespace WebCore {
 

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm (156118 => 156119)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm	2013-09-19 22:03:01 UTC (rev 156119)
@@ -1289,7 +1289,7 @@
                     unless ($interfaceName eq "HTMLImageElement") {
                         push(@customGetterContent, "    if (!IMPL->renderer() || !IMPL->renderer()->isImage())\n");
                         push(@customGetterContent, "        return nil;\n");
-                        $implIncludes{"RenderObject.h"} = 1;
+                        $implIncludes{"RenderElement.h"} = 1;
                     }
                 }
                 $implIncludes{"DOMPrivate.h"} = 1;

Modified: trunk/Source/WebCore/css/SelectorChecker.cpp (156118 => 156119)


--- trunk/Source/WebCore/css/SelectorChecker.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/css/SelectorChecker.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -48,7 +48,7 @@
 #include "InspectorInstrumentation.h"
 #include "NodeRenderStyle.h"
 #include "Page.h"
-#include "RenderObject.h"
+#include "RenderElement.h"
 #include "RenderScrollbar.h"
 #include "RenderStyle.h"
 #include "ScrollableArea.h"

Modified: trunk/Source/WebCore/dom/ContainerNode.h (156118 => 156119)


--- trunk/Source/WebCore/dom/ContainerNode.h	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/dom/ContainerNode.h	2013-09-19 22:03:01 UTC (rev 156119)
@@ -33,7 +33,7 @@
 namespace WebCore {
 
 class FloatPoint;
-    
+
 typedef void (*NodeCallback)(Node*, unsigned);
 
 namespace Private { 

Modified: trunk/Source/WebCore/dom/Element.h (156118 => 156119)


--- trunk/Source/WebCore/dom/Element.h	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/dom/Element.h	2013-09-19 22:03:01 UTC (rev 156119)
@@ -44,6 +44,7 @@
 class IntSize;
 class Locale;
 class PseudoElement;
+class RenderElement;
 class RenderRegion;
 class ShadowRoot;
 
@@ -127,6 +128,8 @@
     DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitfullscreenerror);
 #endif
 
+    RenderElement* renderer() const;
+
     bool hasAttribute(const QualifiedName&) const;
     const AtomicString& getAttribute(const QualifiedName&) const;
     void setAttribute(const QualifiedName&, const AtomicString& value);

Modified: trunk/Source/WebCore/dom/PseudoElement.cpp (156118 => 156119)


--- trunk/Source/WebCore/dom/PseudoElement.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/dom/PseudoElement.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -29,7 +29,7 @@
 
 #include "ContentData.h"
 #include "InspectorInstrumentation.h"
-#include "RenderObject.h"
+#include "RenderElement.h"
 #include "RenderQuote.h"
 
 namespace WebCore {
@@ -78,7 +78,7 @@
 
 void PseudoElement::didAttachRenderers()
 {
-    RenderObject* renderer = this->renderer();
+    RenderElement* renderer = this->renderer();
     if (!renderer || !renderer->style()->regionThread().isEmpty())
         return;
 

Modified: trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp (156118 => 156119)


--- trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -27,8 +27,8 @@
 #include "SplitTextNodeContainingElementCommand.h"
 
 #include "Element.h"
+#include "RenderElement.h"
 #include "Text.h"
-#include "RenderObject.h"
 #include <wtf/Assertions.h>
 
 namespace WebCore {
@@ -53,7 +53,7 @@
     if (!parent || !parent->parentElement() || !parent->parentElement()->rendererIsEditable())
         return;
 
-    RenderObject* parentRenderer = parent->renderer();
+    RenderElement* parentRenderer = parent->renderer();
     if (!parentRenderer || !parentRenderer->isInline()) {
         wrapContentsInDummySpan(parent);
         Node* firstChild = parent->firstChild();

Modified: trunk/Source/WebCore/editing/TypingCommand.cpp (156118 => 156119)


--- trunk/Source/WebCore/editing/TypingCommand.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/editing/TypingCommand.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -37,7 +37,7 @@
 #include "InsertLineBreakCommand.h"
 #include "InsertParagraphSeparatorCommand.h"
 #include "InsertTextCommand.h"
-#include "RenderObject.h"
+#include "RenderElement.h"
 #include "TextIterator.h"
 #include "VisiblePosition.h"
 #include "VisibleUnits.h"

Modified: trunk/Source/WebCore/html/ImageDocument.cpp (156118 => 156119)


--- trunk/Source/WebCore/html/ImageDocument.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/html/ImageDocument.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -42,6 +42,7 @@
 #include "NotImplemented.h"
 #include "Page.h"
 #include "RawDataDocumentParser.h"
+#include "RenderElement.h"
 #include "ResourceBuffer.h"
 #include "Settings.h"
 

Modified: trunk/Source/WebCore/page/PageSerializer.cpp (156118 => 156119)


--- trunk/Source/WebCore/page/PageSerializer.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/page/PageSerializer.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -50,6 +50,7 @@
 #include "MIMETypeRegistry.h"
 #include "MarkupAccumulator.h"
 #include "Page.h"
+#include "RenderElement.h"
 #include "StyleCachedImage.h"
 #include "StyleImage.h"
 #include "StylePropertySet.h"

Modified: trunk/Source/WebCore/rendering/RenderElement.h (156118 => 156119)


--- trunk/Source/WebCore/rendering/RenderElement.h	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/rendering/RenderElement.h	2013-09-19 22:03:01 UTC (rev 156119)
@@ -47,6 +47,39 @@
     void generatingNode() const WTF_DELETED_FUNCTION;
 };
 
+inline RenderElement& toRenderElement(RenderObject& object)
+{
+    ASSERT_WITH_SECURITY_IMPLICATION(object.isRenderElement());
+    return static_cast<RenderElement&>(object);
+}
+
+inline const RenderElement& toRenderElement(const RenderObject& object)
+{
+    ASSERT_WITH_SECURITY_IMPLICATION(object.isRenderElement());
+    return static_cast<const RenderElement&>(object);
+}
+
+inline RenderElement* toRenderElement(RenderObject* object)
+{
+    ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderElement());
+    return static_cast<RenderElement*>(object);
+}
+
+inline const RenderElement* toRenderElement(const RenderObject* object)
+{
+    ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderElement());
+    return static_cast<const RenderElement*>(object);
+}
+
+// This will catch anyone doing an unnecessary cast.
+void toRenderElement(const RenderElement*);
+void toRenderElement(const RenderElement&);
+
+inline RenderElement* Element::renderer() const
+{
+    return toRenderElement(Node::renderer());
+}
+
 } // namespace WebCore
 
 #endif // RenderElement_h

Modified: trunk/Source/WebCore/rendering/RenderObject.h (156118 => 156119)


--- trunk/Source/WebCore/rendering/RenderObject.h	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2013-09-19 22:03:01 UTC (rev 156119)
@@ -342,6 +342,7 @@
 
     bool isPseudoElement() const { return node() && node()->isPseudoElement(); }
 
+    bool isRenderElement() const { return !isText(); }
     virtual bool isBoxModelObject() const { return false; }
     virtual bool isCounter() const { return false; }
     virtual bool isQuote() const { return false; }

Modified: trunk/Source/WebCore/svg/SVGAnimatedColor.cpp (156118 => 156119)


--- trunk/Source/WebCore/svg/SVGAnimatedColor.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/svg/SVGAnimatedColor.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -23,7 +23,7 @@
 #include "SVGAnimatedColor.h"
 
 #include "ColorDistance.h"
-#include "RenderObject.h"
+#include "RenderElement.h"
 #include "SVGAnimateElement.h"
 #include "SVGColor.h"
 
@@ -52,7 +52,7 @@
 {
     ASSERT(targetElement);
 
-    if (RenderObject* targetRenderer = targetElement->renderer())
+    if (RenderElement* targetRenderer = targetElement->renderer())
         color = targetRenderer->style()->visitedDependentColor(CSSPropertyColor);
     else
         color = Color();

Modified: trunk/Source/WebCore/svg/SVGLocatable.cpp (156118 => 156119)


--- trunk/Source/WebCore/svg/SVGLocatable.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/svg/SVGLocatable.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -25,7 +25,7 @@
 #if ENABLE(SVG)
 #include "SVGLocatable.h"
 
-#include "RenderObject.h"
+#include "RenderElement.h"
 #include "SVGException.h"
 #include "SVGGraphicsElement.h"
 #include "SVGImageElement.h"

Modified: trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp (156118 => 156119)


--- trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp	2013-09-19 22:03:01 UTC (rev 156119)
@@ -28,7 +28,7 @@
 #include "AffineTransform.h"
 #include "Filter.h"
 #include "GraphicsContext.h"
-#include "RenderObject.h"
+#include "RenderElement.h"
 #include "RenderTreeAsText.h"
 #include "SVGElement.h"
 #include "SVGFilter.h"
@@ -74,7 +74,7 @@
     if (m_image) {
         srcRect.setSize(m_image->size());
         m_preserveAspectRatio.transformRect(paintRect, srcRect);
-    } else if (RenderObject* renderer = referencedRenderer())
+    } else if (RenderElement* renderer = referencedRenderer())
         srcRect = svgFilter->absoluteTransform().mapRect(renderer->repaintRectInLocalCoordinates());
 
     if (clipsToBounds())
@@ -84,7 +84,7 @@
     setAbsolutePaintRect(enclosingIntRect(paintRect));
 }
 
-RenderObject* FEImage::referencedRenderer() const
+RenderElement* FEImage::referencedRenderer() const
 {
     if (!m_document)
         return 0;

Modified: trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.h (156118 => 156119)


--- trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.h	2013-09-19 21:42:44 UTC (rev 156118)
+++ trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.h	2013-09-19 22:03:01 UTC (rev 156119)
@@ -31,7 +31,7 @@
 
 class Document;
 class Image;
-class RenderObject;
+class RenderElement;
 
 class FEImage : public FilterEffect {
 public:
@@ -54,7 +54,7 @@
     virtual ~FEImage() { }
     FEImage(Filter*, PassRefPtr<Image>, const SVGPreserveAspectRatio&);
     FEImage(Filter*, Document*, const String&, const SVGPreserveAspectRatio&);
-    RenderObject* referencedRenderer() const;
+    RenderElement* referencedRenderer() const;
 
     RefPtr<Image> m_image;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to