Diff
Modified: trunk/Source/WebCore/ChangeLog (161166 => 161167)
--- trunk/Source/WebCore/ChangeLog 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/ChangeLog 2013-12-31 03:02:25 UTC (rev 161167)
@@ -1,3 +1,13 @@
+2013-12-30 Andreas Kling <[email protected]>
+
+ InputType should return input renderers wrapped in RenderPtr.
+ <https://webkit.org/b/126307>
+
+ Rename InputType::createRenderer() to createInputRenderer() and
+ make it return RenderPtr<RenderElement>. Also made it non-const.
+
+ Reviewed by Anders Carlsson.
+
2013-12-30 Gyuyoung Kim <[email protected]>
Cleanup static_cast<HTMLFormElement*> by using toHTMLFormElement()
Modified: trunk/Source/WebCore/html/BaseButtonInputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/BaseButtonInputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/BaseButtonInputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -52,9 +52,9 @@
return false;
}
-RenderElement* BaseButtonInputType::createRenderer(PassRef<RenderStyle> style) const
+RenderPtr<RenderElement> BaseButtonInputType::createInputRenderer(PassRef<RenderStyle> style)
{
- return new RenderButton(element(), std::move(style));
+ return createRenderer<RenderButton>(element(), std::move(style));
}
bool BaseButtonInputType::storesValueSeparateFromAttribute()
Modified: trunk/Source/WebCore/html/BaseButtonInputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/BaseButtonInputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/BaseButtonInputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -43,7 +43,7 @@
private:
virtual bool shouldSaveAndRestoreFormControlState() const OVERRIDE;
virtual bool appendFormData(FormDataList&, bool) const OVERRIDE;
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const OVERRIDE;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>) OVERRIDE;
virtual bool storesValueSeparateFromAttribute() OVERRIDE;
virtual void setValue(const String&, bool, TextFieldEventBehavior) OVERRIDE;
};
Modified: trunk/Source/WebCore/html/FileInputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/FileInputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/FileInputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -208,9 +208,9 @@
event->setDefaultHandled();
}
-RenderElement* FileInputType::createRenderer(PassRef<RenderStyle> style) const
+RenderPtr<RenderElement> FileInputType::createInputRenderer(PassRef<RenderStyle> style)
{
- return new RenderFileUploadControl(element(), std::move(style));
+ return createRenderer<RenderFileUploadControl>(element(), std::move(style));
}
bool FileInputType::canSetStringValue() const
Modified: trunk/Source/WebCore/html/FileInputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/FileInputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/FileInputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -58,7 +58,7 @@
virtual bool valueMissing(const String&) const OVERRIDE;
virtual String valueMissingText() const OVERRIDE;
virtual void handleDOMActivateEvent(Event*) OVERRIDE;
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const OVERRIDE;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>) OVERRIDE;
virtual bool canSetStringValue() const OVERRIDE;
virtual bool canChangeFromAnotherType() const OVERRIDE;
virtual FileList* files() OVERRIDE;
Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/HTMLInputElement.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -782,7 +782,7 @@
RenderElement* HTMLInputElement::createRenderer(PassRef<RenderStyle> style)
{
- return m_inputType->createRenderer(std::move(style));
+ return m_inputType->createInputRenderer(std::move(style)).leakPtr();
}
void HTMLInputElement::willAttachRenderers()
Modified: trunk/Source/WebCore/html/HiddenInputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/HiddenInputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/HiddenInputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -37,6 +37,7 @@
#include "HTMLInputElement.h"
#include "HTMLNames.h"
#include "InputTypeNames.h"
+#include "RenderElement.h"
namespace WebCore {
@@ -66,10 +67,10 @@
return false;
}
-RenderElement* HiddenInputType::createRenderer(PassRef<RenderStyle>) const
+RenderPtr<RenderElement> HiddenInputType::createInputRenderer(PassRef<RenderStyle>)
{
ASSERT_NOT_REACHED();
- return 0;
+ return nullptr;
}
void HiddenInputType::accessKeyAction(bool)
Modified: trunk/Source/WebCore/html/HiddenInputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/HiddenInputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/HiddenInputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -44,7 +44,7 @@
virtual FormControlState saveFormControlState() const OVERRIDE;
virtual void restoreFormControlState(const FormControlState&) OVERRIDE;
virtual bool supportsValidation() const OVERRIDE;
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const OVERRIDE;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>) OVERRIDE;
virtual void accessKeyAction(bool sendMouseEvents) OVERRIDE;
virtual bool rendererIsNeeded() OVERRIDE;
virtual bool storesValueSeparateFromAttribute() OVERRIDE;
Modified: trunk/Source/WebCore/html/ImageInputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/ImageInputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/ImageInputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -101,11 +101,11 @@
event->setDefaultHandled();
}
-RenderElement* ImageInputType::createRenderer(PassRef<RenderStyle> style) const
+RenderPtr<RenderElement> ImageInputType::createInputRenderer(PassRef<RenderStyle> style)
{
- RenderImage* image = new RenderImage(element(), std::move(style));
+ auto image = createRenderer<RenderImage>(element(), std::move(style));
image->setImageResource(RenderImageResource::create());
- return image;
+ return std::move(image);
}
void ImageInputType::altAttributeChanged()
Modified: trunk/Source/WebCore/html/ImageInputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/ImageInputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/ImageInputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -47,7 +47,7 @@
virtual bool isFormDataAppendable() const OVERRIDE;
virtual bool appendFormData(FormDataList&, bool) const OVERRIDE;
virtual bool supportsValidation() const OVERRIDE;
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const OVERRIDE;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>) OVERRIDE;
virtual void handleDOMActivateEvent(Event*) OVERRIDE;
virtual void altAttributeChanged() OVERRIDE;
virtual void srcAttributeChanged() OVERRIDE;
Modified: trunk/Source/WebCore/html/InputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/InputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/InputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -479,9 +479,9 @@
return element().form();
}
-RenderElement* InputType::createRenderer(PassRef<RenderStyle> style) const
+RenderPtr<RenderElement> InputType::createInputRenderer(PassRef<RenderStyle> style)
{
- return RenderElement::createFor(element(), std::move(style));
+ return RenderPtr<RenderElement>(RenderElement::createFor(element(), std::move(style)));
}
void InputType::blur()
Modified: trunk/Source/WebCore/html/InputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/InputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/InputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -35,6 +35,7 @@
#include "FeatureObserver.h"
#include "HTMLTextFormControlElement.h"
+#include "RenderPtr.h"
#include "StepRange.h"
#include <wtf/FastMalloc.h>
#include <wtf/Forward.h>
@@ -236,7 +237,7 @@
// Miscellaneous functions
virtual bool rendererIsNeeded();
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>);
virtual void addSearchResult();
virtual void attach();
virtual void detach();
Modified: trunk/Source/WebCore/html/RangeInputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/RangeInputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/RangeInputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -289,9 +289,9 @@
return &typedSliderThumbElement();
}
-RenderElement* RangeInputType::createRenderer(PassRef<RenderStyle> style) const
+RenderPtr<RenderElement> RangeInputType::createInputRenderer(PassRef<RenderStyle> style)
{
- return new RenderSlider(element(), std::move(style));
+ return createRenderer<RenderSlider>(element(), std::move(style));
}
Decimal RangeInputType::parseToNumber(const String& src, const Decimal& defaultValue) const
Modified: trunk/Source/WebCore/html/RangeInputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/RangeInputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/RangeInputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -55,7 +55,7 @@
virtual void handleMouseDownEvent(MouseEvent*) OVERRIDE;
#endif
virtual void handleKeydownEvent(KeyboardEvent*) OVERRIDE;
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const OVERRIDE;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>) OVERRIDE;
virtual void createShadowSubtree() OVERRIDE;
virtual Decimal parseToNumber(const String&, const Decimal&) const OVERRIDE;
virtual String serialize(const Decimal&) const OVERRIDE;
Modified: trunk/Source/WebCore/html/SearchInputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/SearchInputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/SearchInputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -65,9 +65,9 @@
#endif
}
-RenderElement* SearchInputType::createRenderer(PassRef<RenderStyle> style) const
+RenderPtr<RenderElement> SearchInputType::createInputRenderer(PassRef<RenderStyle> style)
{
- return new RenderSearchField(element(), std::move(style));
+ return createRenderer<RenderSearchField>(element(), std::move(style));
}
const AtomicString& SearchInputType::formControlType() const
Modified: trunk/Source/WebCore/html/SearchInputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/SearchInputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/SearchInputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -48,7 +48,7 @@
private:
virtual void attach() OVERRIDE;
virtual void addSearchResult() OVERRIDE;
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const OVERRIDE;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>) OVERRIDE;
virtual const AtomicString& formControlType() const OVERRIDE;
virtual bool shouldRespectSpeechAttribute() OVERRIDE;
virtual bool isSearchField() const OVERRIDE;
Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (161166 => 161167)
--- trunk/Source/WebCore/html/TextFieldInputType.cpp 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp 2013-12-31 03:02:25 UTC (rev 161167)
@@ -205,9 +205,9 @@
return (event->type() == eventNames().textInputEvent && event->eventInterface() == TextEventInterfaceType && static_cast<TextEvent*>(event)->data() == "\n") || InputType::shouldSubmitImplicitly(event);
}
-RenderElement* TextFieldInputType::createRenderer(PassRef<RenderStyle> style) const
+RenderPtr<RenderElement> TextFieldInputType::createInputRenderer(PassRef<RenderStyle> style)
{
- return new RenderTextControlSingleLine(element(), std::move(style));
+ return createRenderer<RenderTextControlSingleLine>(element(), std::move(style));
}
bool TextFieldInputType::needsContainer() const
Modified: trunk/Source/WebCore/html/TextFieldInputType.h (161166 => 161167)
--- trunk/Source/WebCore/html/TextFieldInputType.h 2013-12-31 02:58:28 UTC (rev 161166)
+++ trunk/Source/WebCore/html/TextFieldInputType.h 2013-12-31 03:02:25 UTC (rev 161167)
@@ -88,7 +88,7 @@
virtual void handleBeforeTextInsertedEvent(BeforeTextInsertedEvent*) OVERRIDE;
virtual void forwardEvent(Event*) OVERRIDE;
virtual bool shouldSubmitImplicitly(Event*) OVERRIDE;
- virtual RenderElement* createRenderer(PassRef<RenderStyle>) const OVERRIDE;
+ virtual RenderPtr<RenderElement> createInputRenderer(PassRef<RenderStyle>) OVERRIDE;
virtual bool shouldUseInputMethod() const OVERRIDE;
#if !PLATFORM(IOS)
virtual String sanitizeValue(const String&) const OVERRIDE;