Title: [129739] trunk/Source/WebCore
- Revision
- 129739
- Author
- yo...@chromium.org
- Date
- 2012-09-27 01:22:03 -0700 (Thu, 27 Sep 2012)
Log Message
[Forms] BaseMultipleFieldsDateAndTimeInputType class should inherit DateTimeEditElement::EditControlOwner rather than containing
https://bugs.webkit.org/show_bug.cgi?id=97756
Reviewed by Kent Tamura.
This patch changes class hierarchy of BaseMultipleFieldsDateAndTimeInputType
to inherit from DateTimeEditElement::EditControlOwner rather than
containing an instance of DateTimeEditElement::EditControlOwner for
saving memory, although one pointer, and one memory fetch on using
HTMLInputElement.
Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
ENABLE_INPUT_MULTIPLE_FIELDS_UI.
No new tests. This patch doesn't change behavior.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp: DateTimeEditElement::EditControlOwner::DateTimeformatDateTimeFieldsState was removed. We no longer need to redirection. Each date/time input type classe implements it.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::didBlurFromControl): Moved from DateTimeEditControlOwnerImpl and removed reference of m_dateTimeInputType.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::didFocusOnControl): ditto.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged): ditto.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled): ditto.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly): ditto.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Changed to pass BaseMultipleFieldsDateAndTimeInputType instead of DateTimeEditControlOwnerImpl.
* html/BaseMultipleFieldsDateAndTimeInputType.h: Changed base class to have DateTImeEditElement::EditControlOwner.
(BaseMultipleFieldsDateAndTimeInputType): Removed DateTimeEditControlOwnerImpl class and member variable m_dateTimeEditControlOwner.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (129738 => 129739)
--- trunk/Source/WebCore/ChangeLog 2012-09-27 08:17:24 UTC (rev 129738)
+++ trunk/Source/WebCore/ChangeLog 2012-09-27 08:22:03 UTC (rev 129739)
@@ -1,3 +1,32 @@
+2012-09-27 Yoshifumi Inoue <yo...@chromium.org>
+
+ [Forms] BaseMultipleFieldsDateAndTimeInputType class should inherit DateTimeEditElement::EditControlOwner rather than containing
+ https://bugs.webkit.org/show_bug.cgi?id=97756
+
+ Reviewed by Kent Tamura.
+
+ This patch changes class hierarchy of BaseMultipleFieldsDateAndTimeInputType
+ to inherit from DateTimeEditElement::EditControlOwner rather than
+ containing an instance of DateTimeEditElement::EditControlOwner for
+ saving memory, although one pointer, and one memory fetch on using
+ HTMLInputElement.
+
+ Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
+ ENABLE_INPUT_MULTIPLE_FIELDS_UI.
+
+ No new tests. This patch doesn't change behavior.
+
+ * html/BaseMultipleFieldsDateAndTimeInputType.cpp: DateTimeEditElement::EditControlOwner::DateTimeformatDateTimeFieldsState was removed. We no longer need to redirection. Each date/time input type classe implements it.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::didBlurFromControl): Moved from DateTimeEditControlOwnerImpl and removed reference of m_dateTimeInputType.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::didFocusOnControl): ditto.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged): ditto.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled): ditto.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly): ditto.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Changed to pass BaseMultipleFieldsDateAndTimeInputType instead of DateTimeEditControlOwnerImpl.
+ * html/BaseMultipleFieldsDateAndTimeInputType.h: Changed base class to have DateTImeEditElement::EditControlOwner.
+ (BaseMultipleFieldsDateAndTimeInputType): Removed DateTimeEditControlOwnerImpl class and member variable m_dateTimeEditControlOwner.
+
2012-09-27 Keishi Hattori <kei...@webkit.org>
SuggestionPicker should support rtl
Modified: trunk/Source/WebCore/html/BaseMultipleFieldsDateAndTimeInputType.cpp (129738 => 129739)
--- trunk/Source/WebCore/html/BaseMultipleFieldsDateAndTimeInputType.cpp 2012-09-27 08:17:24 UTC (rev 129738)
+++ trunk/Source/WebCore/html/BaseMultipleFieldsDateAndTimeInputType.cpp 2012-09-27 08:22:03 UTC (rev 129739)
@@ -43,67 +43,52 @@
namespace WebCore {
-BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl(BaseMultipleFieldsDateAndTimeInputType& dateAndTimeInputType)
- : m_dateAndTimeInputType(dateAndTimeInputType)
+void BaseMultipleFieldsDateAndTimeInputType::didBlurFromControl()
{
-}
-
-BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl()
-{
-}
-
-void BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didBlurFromControl()
-{
// We don't need to call blur(). This function is called when control
// lost focus.
// Remove focus ring by CSS "focus" pseudo class.
- m_dateAndTimeInputType.element()->setFocus(false);
+ element()->setFocus(false);
}
-void BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didFocusOnControl()
+void BaseMultipleFieldsDateAndTimeInputType::didFocusOnControl()
{
// We don't need to call focus(). This function is called when control
// got focus.
// Add focus ring by CSS "focus" pseudo class.
- m_dateAndTimeInputType.element()->setFocus(true);
+ element()->setFocus(true);
}
-void BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged()
+void BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged()
{
- RefPtr<HTMLInputElement> input(m_dateAndTimeInputType.element());
- input->setValueInternal(m_dateAndTimeInputType.m_dateTimeEditElement->value(), DispatchNoEvent);
+ RefPtr<HTMLInputElement> input(element());
+ input->setValueInternal(m_dateTimeEditElement->value(), DispatchNoEvent);
input->setNeedsStyleRecalc();
input->dispatchFormControlInputEvent();
input->dispatchFormControlChangeEvent();
input->notifyFormStateChanged();
}
-String BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::formatDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState) const
-{
- return m_dateAndTimeInputType.formatDateTimeFieldsState(dateTimeFieldsState);
-}
-
bool BaseMultipleFieldsDateAndTimeInputType::hasCustomFocusLogic() const
{
return false;
}
-bool BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled() const
+bool BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled() const
{
- return m_dateAndTimeInputType.element()->readOnly();
+ return element()->readOnly();
}
-bool BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly() const
+bool BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly() const
{
- return m_dateAndTimeInputType.element()->disabled();
+ return element()->disabled();
}
BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType(HTMLInputElement* element)
: BaseDateAndTimeInputType(element)
, m_dateTimeEditElement(0)
- , m_dateTimeEditControlOwnerImpl(*this)
{
}
@@ -128,7 +113,7 @@
{
ASSERT(element()->shadow());
- RefPtr<DateTimeEditElement> dateTimeEditElement(DateTimeEditElement::create(element()->document(), m_dateTimeEditControlOwnerImpl));
+ RefPtr<DateTimeEditElement> dateTimeEditElement(DateTimeEditElement::create(element()->document(), *this));
m_dateTimeEditElement = dateTimeEditElement.get();
element()->userAgentShadowRoot()->appendChild(m_dateTimeEditElement);
updateInnerTextValue();
Modified: trunk/Source/WebCore/html/BaseMultipleFieldsDateAndTimeInputType.h (129738 => 129739)
--- trunk/Source/WebCore/html/BaseMultipleFieldsDateAndTimeInputType.h 2012-09-27 08:17:24 UTC (rev 129738)
+++ trunk/Source/WebCore/html/BaseMultipleFieldsDateAndTimeInputType.h 2012-09-27 08:22:03 UTC (rev 129739)
@@ -38,37 +38,20 @@
namespace WebCore {
-class BaseMultipleFieldsDateAndTimeInputType : public BaseDateAndTimeInputType {
+class BaseMultipleFieldsDateAndTimeInputType : public BaseDateAndTimeInputType, protected DateTimeEditElement::EditControlOwner {
protected:
BaseMultipleFieldsDateAndTimeInputType(HTMLInputElement*);
virtual ~BaseMultipleFieldsDateAndTimeInputType();
- virtual String formatDateTimeFieldsState(const DateTimeFieldsState&) const = 0;
virtual void setupLayoutParameters(DateTimeEditElement::LayoutParameters&, const DateComponents&) const = 0;
private:
- // FIXME: DateTimeEditControlOwnerImpl should be removed by moving
- // DateTimeEditElement::EditControlOwner into base class list of
- // BaseMultipleFieldsDateAndTimeInputType.
- class DateTimeEditControlOwnerImpl : public DateTimeEditElement::EditControlOwner {
- WTF_MAKE_NONCOPYABLE(DateTimeEditControlOwnerImpl);
+ // DateTimeEditElement::EditControlOwner functions
+ virtual void didBlurFromControl() OVERRIDE FINAL;
+ virtual void didFocusOnControl() OVERRIDE FINAL;
+ virtual void editControlValueChanged() OVERRIDE FINAL;
+ virtual bool isEditControlOwnerDisabled() const OVERRIDE FINAL;
+ virtual bool isEditControlOwnerReadOnly() const OVERRIDE FINAL;
- public:
- DateTimeEditControlOwnerImpl(BaseMultipleFieldsDateAndTimeInputType&);
- virtual ~DateTimeEditControlOwnerImpl();
-
- private:
- virtual void didBlurFromControl() OVERRIDE FINAL;
- virtual void didFocusOnControl() OVERRIDE FINAL;
- virtual void editControlValueChanged() OVERRIDE FINAL;
- virtual String formatDateTimeFieldsState(const DateTimeFieldsState&) const OVERRIDE FINAL;
- virtual bool isEditControlOwnerDisabled() const OVERRIDE FINAL;
- virtual bool isEditControlOwnerReadOnly() const OVERRIDE FINAL;
-
- BaseMultipleFieldsDateAndTimeInputType& m_dateAndTimeInputType;
- };
-
- friend class DateTimeEditControlOwnerImpl;
-
// InputType functions
virtual void blur() OVERRIDE FINAL;
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*) const OVERRIDE FINAL;
@@ -92,7 +75,6 @@
virtual void updateInnerTextValue() OVERRIDE FINAL;
DateTimeEditElement* m_dateTimeEditElement;
- DateTimeEditControlOwnerImpl m_dateTimeEditControlOwnerImpl;
};
} // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes