Should reject invalid dates constructed with multiple fields UI
https://bugs.webkit.org/show_bug.cgi?id=98727

Reviewed by Hajime Morita.

Source/WebCore:

In input[type=date] with multiple fields UI, we allow users to set
day-of-month value to 1-31 regardless of the month value. So users can
construct an invalid date such as "2012-02-31". We should sanitize such
values.

This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
ENABLE_INPUT_MULTIPLE_FIELDS_UI.

Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html

* html/BaseDateAndTimeInputType.h:
(BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
BaseMultipleFieldsDateAndTimeInputType.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
Apply sanitizeValue to a value constructed in UI.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
Ditto.

LayoutTests:

* fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events-expected.txt: Added.
* fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html: Added.
* fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events-expected.txt:
* fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html:
  Updated the test. 275760-12 is not a valid month value.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Move timeout callback to the CallbackDataTimer class.
https://bugs.webkit.org/show_bug.cgi?id=97861

Patch by Byungwoo Lee <bw80.lee@samsung.com> on 2012-10-09
Reviewed by Gyuyoung Kim.

Timeout callbacks for waitUntil{LoadFinished,TitleChanged,URIChanged}
can be moved to the CallbackDataTimer class.

Moved the callback implementation to the CallbackDataTimer class.

* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::CallbackDataTimer::CallbackDataTimer):
(CallbackDataTimer):
(EWK2UnitTest::CallbackDataTimer::timeOutCallback):
(EWK2UnitTest::CallbackDataExpectedValue::CallbackDataExpectedValue):
(EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
(EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):
(EWK2UnitTest::EWK2UnitTestBase::waitUntilURIChangedTo):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
fast/canvas/canvas-fillRect-gradient-shadow.html failing
https://bugs.webkit.org/show_bug.cgi?id=98760

Patch by Sudarsana Nagineni <sudarsana.nagineni@intel.com> on 2012-10-09
Reviewed by Martin Robinson.

Adjust the test case to verify the pixel in the middle of the shadow,
instead of the outer edge, to make sure that the test will not fail
in case if there is any effect around the borders.

* fast/canvas/script-tests/canvas-fillRect-gradient-shadow.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Plugins don't display
https://bugs.webkit.org/show_bug.cgi?id=98789

Patch by Daniel Drake <dsd@laptop.org> on 2012-10-09
Reviewed by Martin Robinson.

Fix a recent regression where plugin content was not being displayed.
Bringing webkit_web_view_size_allocate in line with the WebKit2
equivalent solves the issue.

* webkit/webkitwebview.cpp:
(resizeWebViewFromAllocation): pass allocation request to children
even when the allocation size does not change.
(webkit_web_view_size_allocate): don't bail too early if the
allocation size does not change.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Typed arrays should not be 20x slower in the baseline JIT than in the DFG JIT
https://bugs.webkit.org/show_bug.cgi?id=98605

Reviewed by Oliver Hunt and Gavin Barraclough.

This adds typed array get_by_val/put_by_val patching to the baseline JIT. It's
a big (~40%) win on benchmarks that have trouble staying in the DFG JIT. Even
if we fix those benchmarks, this functionality gives us the insurance that we
typically desire with all speculative optimizations: even if we bail to
baseline, we're still reasonably performant.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* assembler/MacroAssembler.cpp: Added.
(JSC):
* assembler/MacroAssembler.h:
(MacroAssembler):
(JSC::MacroAssembler::patchableBranchPtr):
* assembler/MacroAssemblerARMv7.h:
(MacroAssemblerARMv7):
(JSC::MacroAssemblerARMv7::moveDoubleToInts):
(JSC::MacroAssemblerARMv7::moveIntsToDouble):
(JSC::MacroAssemblerARMv7::patchableBranchPtr):
* assembler/MacroAssemblerX86.h:
(MacroAssemblerX86):
(JSC::MacroAssemblerX86::moveDoubleToInts):
(JSC::MacroAssemblerX86::moveIntsToDouble):
* bytecode/ByValInfo.h:
(JSC::hasOptimizableIndexingForClassInfo):
(JSC):
(JSC::hasOptimizableIndexing):
(JSC::jitArrayModeForClassInfo):
(JSC::jitArrayModeForStructure):
(JSC::ByValInfo::ByValInfo):
(ByValInfo):
* dfg/DFGAssemblyHelpers.cpp:
(DFG):
* dfg/DFGAssemblyHelpers.h:
(AssemblyHelpers):
(JSC::DFG::AssemblyHelpers::boxDouble):
(JSC::DFG::AssemblyHelpers::unboxDouble):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
* dfg/DFGSpeculativeJIT.h:
(SpeculativeJIT):
* jit/JIT.h:
(JIT):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::emitIntTypedArrayGetByVal):
(JSC):
(JSC::JIT::emitFloatTypedArrayGetByVal):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* runtime/JSCell.h:
* runtime/JSGlobalData.h:
(JSGlobalData):
(JSC::JSGlobalData::typedArrayDescriptor):
* runtime/TypedArrayDescriptor.h: Added.
(JSC):
(JSC::TypedArrayDescriptor::TypedArrayDescriptor):
(TypedArrayDescriptor):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Cairo] Bump Cairo to fix more canvas/philip tests
https://bugs.webkit.org/show_bug.cgi?id=97658

Patch by Sudarsana Nagineni <sudarsana.nagineni@intel.com> on 2012-10-09
Reviewed by Martin Robinson.

Tools:

Bumping cairo to version 1.12.4 which fixes more canvas/philip tests.

* efl/jhbuild.modules:
* gtk/jhbuild.modules:

LayoutTests:

Update platform-specific baselines after the cairo update. Also,
unksip canvas/philip tests which are passing now.

* platform/efl/TestExpectations:
* platform/efl/fast/box-shadow/box-shadow-clipped-slices-expected.png:
* platform/efl/fast/canvas/canvas-incremental-repaint-expected.png:
* platform/efl/fast/dynamic/window-scrollbars-test-expected.png:
* platform/efl/fast/images/pixel-crack-image-background-webkit-transform-scale-expected.png:
* platform/efl/svg/as-image/img-preserveAspectRatio-support-1-expected.png:
* platform/efl/svg/batik/text/smallFonts-expected.png:
* platform/efl/svg/batik/text/smallFonts-expected.txt:
* platform/efl/svg/batik/text/textGlyphOrientationHorizontal-expected.png:
* platform/efl/svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
* platform/efl/svg/batik/text/textOnPath-expected.png:
* platform/efl/svg/batik/text/textOnPath-expected.txt:
* platform/efl/svg/batik/text/textOnPath2-expected.png:
* platform/efl/svg/batik/text/textOnPath2-expected.txt:
* platform/efl/svg/batik/text/textOnPath3-expected.png:
* platform/efl/svg/batik/text/textOnPath3-expected.txt:
* platform/efl/svg/batik/text/textOnPathSpaces-expected.png:
* platform/efl/svg/batik/text/textOnPathSpaces-expected.txt:
* platform/efl/svg/batik/text/verticalTextOnPath-expected.png:
* platform/efl/svg/batik/text/verticalTextOnPath-expected.txt:
* platform/efl/svg/zoom/page/zoom-coords-viewattr-01-b-expected.png:
* platform/efl/svg/zoom/text/zoom-coords-viewattr-01-b-expected.png:
* platform/efl/transforms/2d/transform-fixed-container-expected.png:
* platform/gtk/TestExpectations:
* platform/gtk/fast/canvas/canvas-incremental-repaint-expected.png:
* platform/gtk/svg/W3C-SVG-1.1/animate-elem-83-t-expected.png:
* platform/gtk/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt:
* platform/gtk/svg/W3C-SVG-1.1/paths-data-01-t-expected.png:
* platform/gtk/svg/W3C-SVG-1.1/paths-data-01-t-expected.txt:
* platform/gtk/svg/W3C-SVG-1.1/paths-data-02-t-expected.png:
* platform/gtk/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
* platform/gtk/svg/batik/text/smallFonts-expected.png:
* platform/gtk/svg/batik/text/smallFonts-expected.txt:
* platform/gtk/svg/batik/text/textGlyphOrientationHorizontal-expected.png:
* platform/gtk/svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
* platform/gtk/svg/batik/text/textOnPath-expected.png:
* platform/gtk/svg/batik/text/textOnPath-expected.txt:
* platform/gtk/svg/batik/text/textOnPath2-expected.png:
* platform/gtk/svg/batik/text/textOnPath2-expected.txt:
* platform/gtk/svg/batik/text/textOnPath3-expected.png:
* platform/gtk/svg/batik/text/textOnPath3-expected.txt:
* platform/gtk/svg/batik/text/textOnPathSpaces-expected.png:
* platform/gtk/svg/batik/text/textOnPathSpaces-expected.txt:
* platform/gtk/svg/batik/text/verticalTextOnPath-expected.png:
* platform/gtk/svg/batik/text/verticalTextOnPath-expected.txt:
* platform/gtk/svg/custom/js-update-path-changes-expected.png:
* platform/gtk/svg/custom/js-update-path-changes-expected.txt:
* platform/gtk/svg/custom/js-update-path-removal-expected.png:
* platform/gtk/svg/custom/js-update-path-removal-expected.txt:
* platform/gtk/svg/custom/path-textPath-simulation-expected.png:
* platform/gtk/svg/custom/path-textPath-simulation-expected.txt:

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