Form controls in <fieldset disabled> should not be validated.
https://bugs.webkit.org/show_bug.cgi?id=87381

Reviewed by Hajime Morita.

Source/WebCore:

We need to use disabeld() instead of m_disabled to calculate
willValidate property. Also, we need to update willValidate if
necessary.

Test: fast/forms/fieldset/validation-in-fieldset.html

* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::disabledAttributeChanged):
 - Do not traverse this.
 - Calls ancestorDisabledStateWasChanged() instead of
  setNeedsStyleRecalc() because we'd like to do additional tasks.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::ancestorDisabledStateWasChanged):
Added. Just calls disabledAttributeChanged().
(WebCore::HTMLFormControlElement::parseAttribute):
Do not call setNeedsWillValidateCheck() whenever an attribute is updated.
It should be called only if disabled or readonly attribute is updated.
(WebCore::HTMLFormControlElement::disabledAttributeChanged):
Add setNeedsWillValidateCheck(). It was moved from parseAttribute().
(WebCore::HTMLFormControlElement::insertedInto):
Invalidate ancestor information.
(WebCore::HTMLFormControlElement::recalcWillValidate):
Use disabled() instead of m_disabled. disabled() takes care of
ancestor's disabled state.
* html/HTMLFormControlElement.h:
(HTMLFormControlElement):

LayoutTests:

* fast/forms/fieldset/validation-in-fieldset-expected.txt: Added.
* fast/forms/fieldset/validation-in-fieldset.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118721 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Avoid passing NULL to an 'isolate' parameter
https://bugs.webkit.org/show_bug.cgi?id=87689

Reviewed by Adam Barth.

v8::Null(isolate) crashes if we pass a NULL isolate.
Thus we are planning to replace v8::Null()s in a following way:

- Implement V8Bindings::v8Null(isolate). v8Null(isolate) does the NULL check.
If isolate is NULL, v8Null(isolate) calls v8::Null(). Otherwise,
v8Null(isolate) calls v8::Null(isolate).

- In V8 bindings, we replace v8::Null() with v8::Null(isolate) for a
non-optional 'isolate' parameter.
(e.g. void foo(..., Isolate* isolate) { v8::Null(); } )

- In V8 bindings, we replace v8::Null() with v8Null(isolate) for an
optional 'isolate' parameter.
(e.g. void foo(..., Isolate* isolate = 0) { v8::Null(); } )

However, currently we cannot do the replacement mechanically, since some code
pass NULL to a non-optional 'isolate' parameter. In other words, currently
"non-optional" does not guarantee that 'isolate' is not NULL.

This patch removes all the code that passes NULL to a non-optional 'isolate'
parameter. This will enable us to achieve the replacement mechanically.

No tests. No behavior change.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackImplementation):
(NativeToJSValue):
* bindings/scripts/test/V8/V8TestCallback.cpp:
(WebCore::V8TestCallback::callbackWithClass1Param):
(WebCore::V8TestCallback::callbackWithClass2Param):
(WebCore::V8TestCallback::callbackWithStringList):
(WebCore::V8TestCallback::callbackRequiresThisToPass):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::installPerContextProperties):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8SQLStatementErrorCallback::handleEvent):
* bindings/v8/custom/V8MutationCallbackCustom.cpp:
(WebCore::V8MutationCallback::handleEvent):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118722 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebSocket] Receiving reserved close codes, 1005, 1006, and 1015 must appear as code=1006 and wasClean=false
https://bugs.webkit.org/show_bug.cgi?id=87084

Reviewed by Kent Tamura.

Source/WebCore:

Status codes 1005, 1006, and 1015 are forbidden to be sent in actual close frames.
If a client received these frames, the client should handle them as broken.
Close frames containing invalid body size are the same as these forbidden cases.
Update close-code-and-reason tests to verify this patch.

* Modules/websockets/WebSocket.cpp: Handle AbnormalClosure as wasClean == false
(WebCore::WebSocket::didClose):
* Modules/websockets/WebSocketChannel.cpp: Handle close frames' status code carefully
(WebCore::WebSocketChannel::processFrame):
* Modules/websockets/WebSocketChannel.h: Update on newly defined close event codes

Source/WebKit/chromium:

Update close event codes corresponding to WebSocketChannel::CloseEventCode.

* public/WebSocket.h: Update on newly defined close event codes

LayoutTests:

Add test cases where server initiates a closing handshake with forbidden status codes.

* http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
* http/tests/websocket/tests/hybi/close-code-and-reason.html:
* http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt:
* http/tests/websocket/tests/hybi/workers/resources/close-code-and-reason.js:
(WebSocketTest.prototype.onclose):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Removes pixel result requirements from fast/layers/clip-rects-assertion-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=87663

Unreviewed gardening.

This test was added by r118612, but no pixel result were provided.
It seems that it's enough to remove the param for dumpAsText() and just use the text text output.

* fast/layers/clip-rects-assertion.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118724 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix a crash in HTMLFormControlElement::disabled().
https://bugs.webkit.org/show_bug.cgi?id=86534

Reviewed by Ryosuke Niwa.

Source/WebCore:

Stop to hold pointers of fildset and legend elements. We can avoid it by
holding ancestor's disabled state.

The ancesotr's disabled state should be invalidated when
 - fieldset's disabled value is changed.
 - fieldset's children is updated because a legend position might be changed.
 - A form control is attached to or detached from a tree.

No new tests. It's almost impossible to make a reliable test.

* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
Added. Invalidate disabled state of form controls under the specified node.
(WebCore::HTMLFieldSetElement::disabledAttributeChanged):
Uses invalidateDisabledStateUnder().
(WebCore::HTMLFieldSetElement::childrenChanged):
Added new override function. We need invalidate disabled state of form
controls under legend elements.

* html/HTMLFieldSetElement.h:
(HTMLFieldSetElement): Add invalidateDisabledStateUnder() and childrenChanged().

* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
Remove initialization of the removed data members.
Initialize m_ancestorDisabledState.
(WebCore::HTMLFormControlElement::updateAncestorDisabledState):
Update m_ancestorDisabledState. It should be
AncestorDisabledStateDisabled if the control is under a disabled
fieldset and not under the first legend child of the disabled filedset.
(WebCore::HTMLFormControlElement::ancestorDisabledStateWasChanged):
Invalidate m_ancestorDisabledState.
(WebCore::HTMLFormControlElement::insertedInto): ditto.
(WebCore::HTMLFormControlElement::removedFrom): ditto.
(WebCore::HTMLFormControlElement::disabled):
Calls updateAncestorDisabledState() if needed.
(WebCore::HTMLFormControlElement::recalcWillValidate):
Remove unnecessary check for m_legendAncestor.

* html/HTMLFormControlElement.h:
(HTMLFormControlElement):
- Rename updateFieldSetAndLegendAncestor() to updateAncestorDisabledState(), and make it private.
- Remove m_fieldSetAncestor, m_legendAncestor, and m_fieldSetAncestorValid.
- Add m_ancestorDisabledState.

LayoutTests:

Add a testcase to confirm <lagend> doesn't affect validation.

* fast/forms/datalist/datalist-child-validation-expected.txt:
* fast/forms/datalist/datalist-child-validation.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118725 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Implement V8Binding::v8Null(isolate) and use it in CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=87692

Reviewed by Adam Barth.

Since v8::Null(isolate) crashes if we pass a NULL isolate, we are planning
to pass Isolate to v8::Null() in the following steps:

[1] Implement V8Bindings::v8Null(isolate). v8Null(isolate) does the NULL check.
If isolate is NULL, v8Null(isolate) calls v8::Null(). Otherwise,
v8Null(isolate) calls v8::Null(isolate).

[2] In V8 bindings, we replace v8::Null() with v8::Null(isolate) for a non-optional
'isolate' parameter. (e.g. void foo(..., Isolate* isolate) { v8::Null(); } )

[3] In V8 bindings, we replace v8::Null() with v8Null(isolate) for an optional
'isolate' parameter. (e.g. void foo(..., Isolate* isolate = 0) { v8::Null(); } )

This bug fixes [1] by implementing V8Binding::v8Null(isolate). Also this patch uses
V8Binding::v8Null(isolate) in bindings/v8/*.{h,cpp}.

No tests. No behavior change.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(NativeToJSValue):
* bindings/scripts/test/V8/V8Float64Array.h:
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::toV8):
* bindings/v8/V8Binding.h:
(WebCore::v8Null):
(WebCore):
(WebCore::v8DateOrNull):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(WebCore):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] New fast/dom/window-scroll-scaling.html made 3-400 tests flakey
https://bugs.webkit.org/show_bug.cgi?id=87700

Unreviewed gardening to paint the bot less and less red.

* platform/qt/Skipped: Skip fast/dom/window-scroll-scaling.html until proper fix.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118727 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Adding Hironori Bono to committers.py.
https://bugs.webkit.org/show_bug.cgi?id=87697

* Scripts/webkitpy/common/config/committers.py:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Compilation warning in DumpRenderTreeView.cpp
https://bugs.webkit.org/show_bug.cgi?id=87636

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-05-29
Reviewed by Filip Pizlo.

Source/WebKit/efl:

Fix return type of exceeded_application_cache_quota callback, it
should be int64_t, not uint64_t.

* ewk/ewk_view.h:

Tools:

Fix compilation error in DumpRenderTreeView.cpp due to wrong format
specifier in printf. Also fix the return type for
onExceededApplicationCacheQuota callback.

* DumpRenderTree/efl/DumpRenderTreeView.cpp:
(onExceededApplicationCacheQuota):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118729 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening after r118631. http/tests/appcache/load-from-appcache-defer-resume-crash.html
fails because of missing LayoutTestController::setUseDeferredFrameLoading implementation.

Patch by János Badics <jbadics@inf.u-szeged.hu> on 2012-05-29

* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118730 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Add WebKitWebInspector.h to the list of WebKit2 GTK public headers
https://bugs.webkit.org/show_bug.cgi?id=87703

Reviewed by Martin Robinson.

* GNUmakefile.list.am: Add WebKitWebInspector.h to webkit2gtk_h_api.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118731 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Add return value information to WebKitWebView::load-failed signal documentation
https://bugs.webkit.org/show_bug.cgi?id=87704

Reviewed by Martin Robinson.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118732 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r90971): the cursor is painted “behind” the placeholder text
https://bugs.webkit.org/show_bug.cgi?id=87155

Reviewed by Hajime Morita.

Source/WebCore:

This regression happened only on platforms on which
RenderTheme::shouldShowPlaceholderWhenFocused() returns true.

Because the order of renderers for the editable node and the placeholder
node was:
 - A renderer for the editable node
 - A renderer for the placeholder node,
The text caret was painted, then the palceholder was painted.

We should not use z-index in the built-in shadow nodes. So the patch
fixes this bug by re-ordering these renderers.

Tests: fast/forms/input-placeholder-paint-order-2.html
       fast/forms/input-placeholder-paint-order.html
       fast/forms/textarea/textarea-placeholder-paint-order-2.html
       fast/forms/textarea/textarea-placeholder-paint-order.html

* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::fixPlaceholderRenderer):
Added. Reorder the order of renderers so that the placeholder renderer
precedes the inner text renderer.
* html/HTMLTextFormControlElement.h: Add fixPlaceholderRenderer() declaration.

* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::attach): Calls fixPlaceholderRenderer().
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
ditto. Also, use innerTextElement() to improvde code readability.
* html/HTMLTextAreaElement.h:
(HTMLTextAreaElement): Overrides attach().

* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::updatePlaceholderText):
Calls fixPlaceholderRenderer().
(WebCore::TextFieldInputType::attach): ditto.
* html/TextFieldInputType.h:
(TextFieldInputType): Overrides attach().

LayoutTests:

* fast/forms/input-placeholder-paint-order-2-expected.html: Added.
* fast/forms/input-placeholder-paint-order-2.html: Added.
* fast/forms/input-placeholder-paint-order.html: Added.
* fast/forms/textarea/textarea-placeholder-paint-order-2-expected.html: Added.
* fast/forms/textarea/textarea-placeholder-paint-order-2.html: Added.
* fast/forms/textarea/textarea-placeholder-paint-order.html: Added.
* platform/chromium-mac-snowleopard/fast/forms/input-placeholder-paint-order-expected.png: Added.
* platform/chromium-mac-snowleopard/fast/forms/input-placeholder-paint-order-expected.txt: Added.
* platform/chromium-mac-snowleopard/fast/forms/textarea/textarea-placeholder-paint-order-expected.png: Added.
* platform/chromium-mac-snowleopard/fast/forms/textarea/textarea-placeholder-paint-order-expected.txt: Added.
* platform/chromium/test_expectations.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118733 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Adjust expectations for fast/layers/clip-rects-assertion-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=87671

Unreviewed gardening.
Test has been fixed by r118724, remove expectation.

* platform/chromium/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118734 268f45cc-cd09-0410-ab3c-d52691b4dbfc
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented
https://bugs.webkit.org/show_bug.cgi?id=15495

Reviewed by Rob Buis.

Source/WebCore:

Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed:
- SVGViewSpec and all of its contents should be read-only. Enforce that and test it.
  Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only.
- Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS.
- Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces
    readonly attribute DOMString viewBoxString;
    readonly attribute DOMString preserveAspectRatioString;
    readonly attribute DOMString transformString;
    readonly attribute DOMString viewTargetString;
- Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed.
- Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing.
- Create/expose ObjectiveC/JS bindings for SVGViewSpec.
- Enable SVGViewSpec constructor.

Tests: svg/custom/linking-a-03-b-all-expected.svg
       svg/dom/SVGViewSpec-defaults.html
       svg/dom/SVGViewSpec.html
       svg/dom/complex-svgView-specification.html
       svg/dom/viewspec-parser.html

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSSVGLengthCustom.cpp:
(WebCore::JSSVGLength::setValue):
(WebCore::JSSVGLength::convertToSpecifiedUnits):
* bindings/objc/DOMSVG.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(NativeToJSValue):
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateFunctionCallback):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::valueAccessorSetter):
(WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
* page/DOMWindow.idl:
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildTileImageTransform):
* svg/SVGFitToViewBox.cpp:
* svg/SVGFitToViewBox.h:
(SVGFitToViewBox):
(WebCore::SVGFitToViewBox::parseAttribute):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::orientTypePropertyInfo):
(WebCore::SVGMarkerElement::parseAttribute):
(WebCore::SVGMarkerElement::synchronizeOrientType):
(WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::dPropertyInfo):
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::pathByteStream):
(WebCore::SVGPathElement::lookupOrCreateDWrapper):
(WebCore::SVGPathElement::synchronizeD):
* svg/SVGPathSegWithContext.h:
(WebCore::SVGPathSegWithContext::animatedProperty):
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::parseAttribute):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::pointsPropertyInfo):
(WebCore::SVGPolyElement::parseAttribute):
(WebCore::SVGPolyElement::synchronizePoints):
(WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
* svg/SVGRect.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::~SVGSVGElement):
(WebCore::SVGSVGElement::currentView):
(WebCore::SVGSVGElement::parseAttribute):
(WebCore::SVGSVGElement::currentViewBoxRect):
(WebCore::SVGSVGElement::viewBoxToViewTransform):
(WebCore::SVGSVGElement::setupInitialView):
(WebCore::SVGSVGElement::inheritViewAttributes):
* svg/SVGSVGElement.h:
(SVGSVGElement):
* svg/SVGSVGElement.idl:
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::parseAttribute):
* svg/SVGTests.cpp:
(WebCore::SVGTests::requiredFeaturesPropertyInfo):
(WebCore::SVGTests::requiredExtensionsPropertyInfo):
(WebCore::SVGTests::systemLanguagePropertyInfo):
(WebCore::SVGTests::synchronizeRequiredFeatures):
(WebCore::SVGTests::synchronizeRequiredExtensions):
(WebCore::SVGTests::synchronizeSystemLanguage):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::textLengthPropertyInfo):
(WebCore::SVGTextContentElement::synchronizeTextLength):
(WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::parseAttribute):
* svg/SVGViewElement.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::viewBoxPropertyInfo):
(WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
(WebCore::SVGViewSpec::transformPropertyInfo):
(WebCore::SVGViewSpec::SVGViewSpec):
(WebCore::SVGViewSpec::viewBoxIdentifier):
(WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
(WebCore::SVGViewSpec::transformIdentifier):
(WebCore::SVGViewSpec::setZoomAndPan):
(WebCore::SVGViewSpec::setTransformString):
(WebCore::SVGViewSpec::transformString):
(WebCore::SVGViewSpec::viewBoxString):
(WebCore::SVGViewSpec::preserveAspectRatioString):
(WebCore::SVGViewSpec::viewTarget):
(WebCore::SVGViewSpec::transform):
(WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
(WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
(WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
(WebCore::SVGViewSpec::reset):
(WebCore::SVGViewSpec::parseViewSpec):
* svg/SVGViewSpec.h:
(WebCore::SVGViewSpec::~SVGViewSpec):
(SVGViewSpec):
(WebCore::SVGViewSpec::create):
(WebCore::SVGViewSpec::setViewTargetString):
(WebCore::SVGViewSpec::setZoomAndPan):
(WebCore::SVGViewSpec::contextElement):
(WebCore::SVGViewSpec::resetContextElement):
(WebCore::SVGViewSpec::transformBaseValue):
(WebCore::SVGViewSpec::viewBoxAnimated):
(WebCore::SVGViewSpec::viewBox):
(WebCore::SVGViewSpec::viewBoxBaseValue):
(WebCore::SVGViewSpec::setViewBoxBaseValue):
(WebCore::SVGViewSpec::preserveAspectRatioAnimated):
(WebCore::SVGViewSpec::preserveAspectRatio):
(WebCore::SVGViewSpec::preserveAspectRatioBaseValue):
(WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue):
* svg/SVGViewSpec.idl:
* svg/properties/SVGAnimatedProperty.h:
(WebCore::SVGAnimatedProperty::isReadOnly):
(WebCore::SVGAnimatedProperty::setIsReadOnly):
(SVGAnimatedProperty):
(WebCore::SVGAnimatedProperty::lookupOrCreateWrapper):
(WebCore::SVGAnimatedProperty::lookupWrapper):
(WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
* svg/properties/SVGAnimatedPropertyMacros.h:
(WebCore::SVGSynchronizableAnimatedProperty::synchronize):
(SVGSynchronizableAnimatedProperty):
* svg/properties/SVGAnimatedPropertySynchronizer.h: Removed.
* svg/properties/SVGAttributeToPropertyMap.h:
* svg/properties/SVGListProperty.h:
* svg/properties/SVGListPropertyTearOff.h:
(SVGListPropertyTearOff):
(WebCore::SVGListPropertyTearOff::isReadOnly):
* svg/properties/SVGPathSegListPropertyTearOff.h:
(SVGPathSegListPropertyTearOff):
(WebCore::SVGPathSegListPropertyTearOff::isReadOnly):
* svg/properties/SVGProperty.h:
(SVGProperty):
* svg/properties/SVGPropertyInfo.h:
(WebCore::SVGPropertyInfo::SVGPropertyInfo):
(SVGPropertyInfo):
* svg/properties/SVGPropertyTearOff.h:
(WebCore::SVGPropertyTearOff::isReadOnly):
* svg/properties/SVGStaticListPropertyTearOff.h:
(SVGStaticListPropertyTearOff):
(WebCore::SVGStaticListPropertyTearOff::isReadOnly):

Source/WebKit/mac:

* MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers.

LayoutTests:

Re-enable a long disabled test for SVGViewSpec, and make it actually work.
Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition.

Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms.

* platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed.
* platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed.
* platform/chromium-win/fast/js/global-constructors-expected.txt:
* platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed.
* platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed.
* platform/gtk/fast/js/global-constructors-expected.txt:
* platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed.
* platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed.
* platform/mac/fast/js/global-constructors-expected.txt:
* platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed.
* platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed.
* platform/qt/fast/js/global-constructors-expected.txt:
* platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed.
* platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed.
* platform/win/fast/js/global-constructors-expected.txt:
* svg/custom/global-constructors-expected.txt:
* svg/custom/linking-a-03-b-all-expected.svg: Added.
* svg/dom/SVGViewSpec-defaults-expected.txt: Added.
* svg/dom/SVGViewSpec-defaults.html: Added.
* svg/dom/SVGViewSpec-expected.txt: Added.
* svg/dom/SVGViewSpec.html: Added.
* svg/dom/complex-svgView-specification-expected.html: Added.
* svg/dom/complex-svgView-specification.html: Added.
* svg/dom/resources/viewspec-target.svg: Added.
* svg/dom/script-tests/SVGViewSpec-defaults.js: Added.
* svg/dom/script-tests/SVGViewSpec.js: Added.
(completeTest.script.onload):
(completeTest):
(testFragment):
(matrixToString):
(continueTesting):
* svg/dom/viewspec-parser-expected.txt: Added.
* svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Performance] Optimize querySelector() and querySelectorAll() by removing
redundant dummy style sheet creations
https://bugs.webkit.org/show_bug.cgi?id=87627

Reviewed by Antti Koivisto.

This patch improves performance of querySelector("#id") by 4.2% ~ 17.7%
in Safari and Chromium.

Performance tests: https://bugs.webkit.org/attachment.cgi?id=144288

The performance test results in my desktop:

[Safari/Mac]
document.querySelector("#headId") :               13.60 ms =>  12.40 ms  +9.68%
document.querySelector("#duplicatedId") :         14.80 ms =>  14.20 ms  +4.23%
document.querySelector("#tailId") :               13.80 ms =>  12.20 ms  +13.11%
document.querySelectorAll("#headId") :            17.80 ms =>  14.60 ms  +21.92%
document.querySelectorAll("#duplicatedId") :     513.80 ms => 471.60 ms  +8.95%
document.querySelectorAll("#tailId") :            19.20 ms =>  16.40 ms  +17.07%
document.querySelector("h1") :                    14.40 ms =>  13.60 ms  +5.88%
document.querySelector("h2") :                    14.80 ms =>  13.80 ms  +7.25%
document.querySelector("h3") :                   312.00 ms => 306.60 ms  +1.76%
document.querySelectorAll("h1") :                322.00 ms => 314.60 ms  +2.35%
document.querySelectorAll("h2") :                481.00 ms => 420.60 ms  +14.36%
document.querySelectorAll("h3") :                326.80 ms => 315.80 ms  +3.48%
document.querySelector(".headClass") :            16.20 ms =>  15.40 ms  +5.19%
document.querySelector(".duplicatedClass") :      17.00 ms =>  15.40 ms  +10.39%
document.querySelector(".tailClass") :           369.60 ms => 362.60 ms  +1.93%
document.querySelectorAll(".headClass") :        388.20 ms => 377.60 ms  +2.81%
document.querySelectorAll(".duplicatedClass") :  605.00 ms => 581.20 ms  +4.09%
document.querySelectorAll(".tailClass") :        401.60 ms => 391.40 ms  +2.61%

[Chromium/Linux]
ocument.querySelector("#headId") :                16.00 ms =>  13.60 ms  +17.65%
document.querySelector("#duplicatedId") :         16.80 ms =>  15.40 ms  +9.09%
document.querySelector("#tailId") :               16.00 ms =>  13.60 ms  +17.65%
document.querySelectorAll("#headId") :            29.00 ms =>  25.00 ms  +16.00%
document.querySelectorAll("#duplicatedId") :     561.40 ms => 505.20 ms  +11.12%
document.querySelectorAll("#tailId") :            34.00 ms =>  26.80 ms  +26.87%
document.querySelector("h1") :                    18.20 ms =>  15.80 ms  +15.19%
document.querySelector("h2") :                    19.00 ms =>  16.60 ms  +14.46%
document.querySelector("h3") :                   280.40 ms => 274.00 ms  +2.34%
document.querySelectorAll("h1") :                300.20 ms => 365.20 ms  -17.80%
document.querySelectorAll("h2") :                487.60 ms => 504.20 ms  -3.29%
document.querySelectorAll("h3") :                349.40 ms => 324.00 ms  +7.84%
document.querySelector(".headClass") :            18.40 ms =>  16.00 ms  +15.00%
document.querySelector(".duplicatedClass") :      19.40 ms =>  16.20 ms  +19.75%
document.querySelector(".tailClass") :           349.60 ms => 345.40 ms  +1.22%
document.querySelectorAll(".headClass") :        382.80 ms => 378.20 ms  +1.22%
document.querySelectorAll(".duplicatedClass") :  550.80 ms => 574.20 ms  -4.08%
document.querySelectorAll(".tailClass") :        381.00 ms => 387.00 ms  -1.55%

I've found that StyleSheetInternal::create() in CSSParser::parseSelector()
is a bottleneck of querySelector() and querySelectorAll().

void CSSParser::parseSelector(const String& string, CSSSelectorList& selectorList)
{
    RefPtr<StyleSheetInternal> dummyStyleSheet = StyleSheetInternal::create();
    setStyleSheet(dummyStyleSheet.get());
    ...;
}

This patch removes a dummy style sheet. Previously the dummy style sheet
was needed to avoid null checks of m_styleSheet in CSSGrammer.y.
This patch fixes CSSGrammer.y so that it works fine with a null m_styleSheet.

Tests: fast/dom/SelectorAPI/*. No change in the test results.

* css/CSSGrammar.y:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseSelector):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add HTMLIFrameElement.seamless property accessor now that seamless is enabled and works
https://bugs.webkit.org/show_bug.cgi?id=87708

Reviewed by Adam Barth.

Source/WebCore:

Lots of tests in fast/frames/seamless cover this property.

* html/HTMLIFrameElement.idl:

LayoutTests:

* fast/frames/seamless/seamless-basic-expected.txt:
* fast/frames/seamless/seamless-inherited-origin-expected.txt:
* fast/frames/seamless/seamless-nested-expected.txt:
* fast/frames/seamless/seamless-quirks-expected.txt:
* fast/frames/seamless/seamless-sandbox-flag-expected.txt:
* fast/frames/seamless/seamless-sandbox-srcdoc-expected.txt:
* http/tests/security/seamless/seamless-cross-origin-expected.txt:
* http/tests/security/seamless/seamless-sandbox-srcdoc-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118737 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening after r118585. Added Qt platform specific expected files.
https://bugs.webkit.org/show_bug.cgi?id=86848

Patch by János Badics <jbadics@inf.u-szeged.hu> on 2012-05-29

* platform/qt/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Added.
* platform/qt/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118738 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] MathML tests needs rebaseline after r118713
https://bugs.webkit.org/show_bug.cgi?id=87705

Unreviewed gardening.

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-05-29

* platform/efl/mathml/presentation/mo-stretch-expected.png:
* platform/efl/mathml/presentation/mo-stretch-expected.txt:
* platform/efl/mathml/presentation/mroot-pref-width-expected.png:
* platform/efl/mathml/presentation/mroot-pref-width-expected.txt:
* platform/efl/mathml/presentation/tables-expected.png:
* platform/efl/mathml/presentation/tables-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118739 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use WebSpellCheckClient::spellcheck to retrieve suggestions.
https://bugs.webkit.org/show_bug.cgi?id=87690

Reviewed by Hajime Morita.

This change uses WebSpellCheckClient::spellcheck as a fallback method to
retrieve suggestions when a marker does not have any suggestions. (It consumes
lots of CPU power to get suggestions for misspelled word, i.e. Chromium cannot
afford to attach suggestions to all spelling markers.)

* src/ContextMenuClientImpl.cpp:
(WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems): Retrieve suggestions if markers do not have any.


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