Add methods to date types for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110454

Reviewed by Kent Tamura.

Source/WebCore:

Adding some methods to date types as part of the calendar picker redesign (Bug 109439).

Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-date-types.html

* Resources/pagepopups/calendarPicker.js:
(createUTCDate):
(DateType): Base class for Day, Week and Month.
(Day): Simplified constructor to only accept year, month, date.
(Day.createFromValue): Creates a new Day from a value.
(Day.createFromDate): Throw an error if the given date is invalid.
(Day.createFromDay):
(Day.prototype.equals): Accept non Day objects.
(Day.prototype.previous): Modified to take an offset value.
(Day.prototype.next): Ditto.
(Day.prototype.firstDay): Returns the first day in the range. For Day's case, returns itself.
(Day.prototype.middleDay): Returns the middle day in the range. For Day's case, returns itself.
(Day.prototype.lastDay): Returns the middle day in the range. For Day's case, returns itself.
(Day.prototype.valueOf):
(Day.prototype.weekDay): Returns the week day.
(Week): Simplified constructor to only accept year, month, date.
(Week.createFromValue):
(Week.createFromDate):
(Week.createFromDay):
(Week.weekOneStartDateForYear):
(Week.weekOneStartDayForYear):
(Week._numberOfWeeksSinceDate):
(Week.prototype.equals):
(Week.prototype.previous):
(Week.prototype.next):
(Week.prototype.firstDay): Returns the first day in the week.
(Week.prototype.middleDay): Returns the the day for Thursday.
(Week.prototype.lastDay): Returns the last day in the week.
(Week.prototype.valueOf):
(Month):
(Month.createFromValue):
(Month.createFromDate):
(Month.createFromDay):
(Month.prototype.containsDay):
(Month.prototype.equals):
(Month.prototype.previous):
(Month.prototype.next):
(Month.prototype.firstDay): Returns the first day in the month.
(Month.prototype.middleDay): Returns the middle day in the month.
(Month.prototype.lastDay): Returns the last day in the month.
(Month.prototype.valueOf):
(Month.prototype.toLocaleString): Moved location.
(Month.prototype.toShortLocaleString): Returns the month string in short format.
(CalendarPicker): Use createFromValue.
(YearMonthController.prototype.setMonth): Ditto.
(YearMonthController.prototype.moveRelatively): Ditto.

LayoutTests:

* platform/chromium/fast/forms/calendar-picker/calendar-picker-date-types-expected.txt: Added.
* platform/chromium/fast/forms/calendar-picker/calendar-picker-date-types.html: Added. Unit tests for date types.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143867 268f45cc-cd09-0410-ab3c-d52691b4dbfc
StyledElement: Don't expose a mutable direct interface to the inline style.
<http://webkit.org/b/110711>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the ability to grab at a mutable StylePropertySet* for a StyledElement's inline style
from the outside world. It's now private and returns MutableStylePropertySet* for future convenience.

Three paths to changing the inline style remain:

    - Setting the "style" attribute
    - Via CSSOM (element.style)
    - setInlineStyleProperty/removeInlineStyleProperty helpers

* dom/StyledElement.cpp:
(WebCore::StyledElement::ensureMutableInlineStyle):
* dom/StyledElement.h:
(StyledElement):
* editing/ApplyStyleCommand.cpp:
(WebCore::copyStyleOrCreateEmpty):
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
* html/canvas/CanvasStyle.cpp:
(WebCore::currentColor):

Source/WebKit/qt:

QWebElement::styleProperty() is a read-only method, so rewrite it to use StyledElement::inlineStyle().

* Api/qwebelement.cpp:
(QWebElement::styleProperty):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143868 268f45cc-cd09-0410-ab3c-d52691b4dbfc