Tidy handling of type=color in HTMLInputElement a bit
[WebKit-https.git] / Source / WebCore / ChangeLog
index 9ba04f9265f98e3e980fbdaf8fcf1d3c523a6508..7548099ddaf58416a574177c5fbd5f03d4bf522d 100644 (file)
@@ -1,3 +1,56 @@
+2015-11-01  Darin Adler  <darin@apple.com>
+
+        Tidy handling of type=color in HTMLInputElement a bit
+        https://bugs.webkit.org/show_bug.cgi?id=150786
+
+        Reviewed by Andreas Kling.
+
+        * html/ColorInputType.cpp: Fix formatting.
+        (WebCore::ColorInputType::fallbackValue): Use ASCIILiteral for slightly
+        better performance.
+        (WebCore::ColorInputType::sanitizeValue): Use convertToASCIILowercase,
+        since there is no need for the general purpose Unicode lowercasing here;
+        those non-ASCII characters aren't allowed by isValidColorString.
+        (WebCore::ColorInputType::suggestions): Rewrote data list code to remove
+        peculiarities such as using a null check to terminate the loop instead of
+        the collection length, calling back to HTMLInputElement just to get the
+        isValidColorString function called. Also used reserveInitialCapacity and
+        uncheckedAppend for better memory use in the result vector.
+        (WebCore::ColorInputType::selectColor): Added.
+
+        * html/ColorInputType.h: Made derivation from ColorChooserClient private.
+        Made most functions private. Added overrides for valueAsColor and selectColor,
+        now both virtual functions in InputType.
+
+        * html/HTMLInputElement.cpp: Removed now-unneeded include of ColorInputType.h.
+        (WebCore::HTMLInputElement::valueAsColor): Added. Calls through to the InputType.
+        In a later patch, will be used by accessibility code to get the color so it
+        does not have to replicate the color parsing logic from this element.
+        (WebCore::HTMLInputElement::selectColor): Renamed from selectColorInColorChooser,
+        because the longer name is not clearer. Also made this non-conditional.
+
+        * html/HTMLInputElement.h: Added valueAsColor, renamed selectColorInColorChooser
+        to selectColor and made it available unconditionally.
+
+        * html/InputType.cpp:
+        (WebCore::InputType::valueAsColor): Added. Returns transparent color.
+        (WebCore::InputType::selectColor): Added. Does nothing by default.
+
+        * html/InputType.h: Added virtual valueAsColor and selectColor. Also tidied
+        up the header a bit and removed unneeded Noncopyable (since this class has
+        a reference for one of the data members and so is intrinsically not copyable).
+        Made isColorControl available unconditionally.
+
+        * testing/Internals.cpp:
+        (WebCore::Internals::selectColorInColorChooser): Removed conditionals and
+        made this call selectColor rather than selectColorInColorChooser.
+
+        * testing/Internals.h: Made selectColorInColorChooser unconditional.
+
+        * testing/Internals.idl: Made selectColorInColorChooser unconditionally
+        present. Not important to optimize the test internals class by leaving it
+        out when INPUT_TYPE_COLOR is not enabled.
+
 2015-11-01  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         [ES6] Support Generator Syntax