Source/WebCore: parse CSS attribute -webkit-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=94024

Patch by Rik Cabanier <cabanier@adobe.com> on 2012-08-20
Reviewed by Dirk Schulze.

Added parsing and general CSS handling of -webkit-blend-mode per http://www.w3.org/TR/2012/WD-compositing-20120816/

Tests: css3/compositing/blend-mode-property-parsing-invalid.html
       css3/compositing/blend-mode-property-parsing.html
       css3/compositing/blend-mode-property.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore):
(WebCore::RenderLayerBacking::updateLayerBlendMode):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::setBlendMode):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):

LayoutTests: parse CSS attribute -webkit-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=94024

Patch by Rik Cabanier <cabanier@adobe.com> on 2012-08-20
Reviewed by Dirk Schulze.

Added parsing and general CSS handling of -webkit-blend-mode per http://www.w3.org/TR/2012/WD-compositing-20120816/

* css3/compositing: Added.
* css3/compositing/blend-mode-property-expected.txt: Added.
* css3/compositing/blend-mode-property-parsing-expected.txt: Added.
* css3/compositing/blend-mode-property-parsing-invalid-expected.txt: Added.
* css3/compositing/blend-mode-property-parsing-invalid.html: Added.
* css3/compositing/blend-mode-property-parsing.html: Added.
* css3/compositing/blend-mode-property.html: Added.
* css3/compositing/script-tests: Added.
* css3/compositing/script-tests/blend-mode-property-parsing-invalid.js: Added.
(testInvalidFilterRule):
* css3/compositing/script-tests/blend-mode-property-parsing.js: Added.
(jsWrapperClass):
(shouldBeType):
(testFilterRule):
* css3/compositing/script-tests/blend-mode-property.js: Added.
* platform/chromium/css3/compositing/blend-mode-property-expected.txt : Added.
* platform/chromium/css3/compositing/blend-mode-property-parsing-expected.txt : Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Initialize GraphicsLayerChromium::m_contentsLayerId when setting contents layer
https://bugs.webkit.org/show_bug.cgi?id=94552

Reviewed by Kenneth Russell.

Set it or it don't work good.

* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setupContentsLayer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Never notify of insertedIntoTree during document destruction.
https://bugs.webkit.org/show_bug.cgi?id=94535

Patch by Elliott Sprehn <esprehn@chromium.org> on 2012-08-20
Reviewed by Eric Seidel.

Never notify of insertedIntoTree during document destruction. Previously since we
avoid notifying of willBeRemovedFromTree it's possible we could have gotten several
insertedIntoTree notifications without ever being told we were removed.

No tests needed since this just closes holes related to future code.

* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::appendChildNode): Never call insertedIntoTree during document destruction.
(WebCore::RenderObjectChildList::insertChildNode): Same.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::attachRegion): Removed unneeded document destruction check.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
setMockGeolocationPosition not defined in WKTR
https://bugs.webkit.org/show_bug.cgi?id=94554

Unreviewed (bot gardening)

* platform/wk2/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Move instrumentedCallFunction() from V8Proxy to ScriptController
https://bugs.webkit.org/show_bug.cgi?id=94456

Reviewed by Adam Barth.

To kill V8Proxy, this patch moves instrumentedCallFunction() from V8Proxy
to ScriptController. Also this patch renames instrumentedCallFunction()
to callFunctionWithInstrumentation(), for consistency with callFunction().

No tests. No change in behavior.

Source/WebCore:

* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::callFunction):
(WebCore):
(WebCore::handleMaxRecursionDepthExceeded):
(WebCore::resourceInfo):
(WebCore::resourceString):
(WebCore::ScriptController::callFunctionWithInstrumentation):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/ScriptFunctionCall.cpp:
(WebCore::ScriptCallback::call):
* bindings/v8/V8Callback.cpp:
(WebCore::invokeCallback):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8Proxy.cpp:
(WebCore):
* bindings/v8/V8Proxy.h:
(V8Proxy):
* bindings/v8/V8WindowErrorHandler.cpp:
(WebCore::V8WindowErrorHandler::callListenerFunction):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):

Source/WebKit/chromium:

* src/WebDevToolsFrontendImpl.cpp:
(WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126109 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Sub-pixel Layout] Block selection gap repainting can leave one pixel gaps
https://bugs.webkit.org/show_bug.cgi?id=94526

Reviewed by Eric Seidel.

Source/WebCore:

Reverting RenderLayer's m_blockSelectionGapsBounds to be an IntRect and applying enclosingIntRect to the
gapRects added to the bounds. Previously, we'd end multiple block gaps and pixel snap the result, which
can yield results one pixel off in width and height.

Covered by existing tests. This undoes some of the rebaselining from when sub-pixel was enabled for Chromium.

* rendering/RenderLayer.cpp:
* rendering/RenderLayer.h:

LayoutTests:

Correcting pixel gap repainting reverts a bunch of chromium expectations to their pre-sub-pixel layout
versions. This largely triggers 1-pixel image diffs in input fields.

* platform/chromium-mac/editing/input/caret-at-the-edge-of-input-expected.png:
* platform/chromium-mac/editing/inserting/before-after-input-element-expected.png:
* platform/chromium-mac/editing/pasteboard/4806874-expected.png:
* platform/chromium-mac/editing/pasteboard/drop-text-without-selection-expected.png:
* platform/chromium-mac/editing/pasteboard/input-field-1-expected.png:
* platform/chromium-mac/editing/selection/3690703-2-expected.png:
* platform/chromium-mac/editing/selection/3690703-expected.png:
* platform/chromium-mac/editing/selection/3690719-expected.png:
* platform/chromium-mac/editing/selection/4895428-3-expected.png:
* platform/chromium-mac/editing/selection/4975120-expected.png:
* platform/chromium-mac/editing/selection/drag-select-1-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-1-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-2-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-3-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-4-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-5-expected.png:
* platform/chromium-mac/editing/selection/select-from-textfield-outwards-expected.png:
* platform/chromium-mac/fast/block/margin-collapse/103-expected.png:
* platform/chromium-mac/fast/css/input-search-padding-expected.png:
* platform/chromium-mac/fast/css/line-height-determined-by-primary-font-expected.png:
* platform/chromium-mac/fast/css/line-height-expected.png:
* platform/chromium-mac/fast/css/square-button-appearance-expected.png:
* platform/chromium-mac/fast/css/text-overflow-input-expected.png:
* platform/chromium-mac/fast/dom/isindex-001-expected.png:
* platform/chromium-mac/fast/dom/isindex-002-expected.png:
* platform/chromium-mac/fast/events/autoscroll-expected.png:
* platform/chromium-mac/fast/events/context-no-deselect-expected.png:
* platform/chromium-mac/fast/forms/basic-buttons-expected.png:
* platform/chromium-mac/fast/forms/basic-inputs-expected.png:
* platform/chromium-mac/fast/forms/box-shadow-override-expected.png:
* platform/chromium-mac/fast/forms/button-sizes-expected.png:
* platform/chromium-mac/fast/forms/color/input-appearance-color-expected.png:
* platform/chromium-mac/fast/forms/date/date-appearance-expected.png:
* platform/chromium-mac/fast/forms/encoding-test-expected.png:
* platform/chromium-mac/fast/forms/fieldset-align-expected.png:
* platform/chromium-mac/fast/forms/floating-textfield-relayout-expected.png:
* platform/chromium-mac/fast/forms/form-element-geometry-expected.png:
* platform/chromium-mac/fast/forms/input-align-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-default-bkcolor-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-disabled-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-focus-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-height-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-preventDefault-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-readonly-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-selection-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-visibility-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-width-expected.png:
* platform/chromium-mac/fast/forms/input-baseline-expected.png:
* platform/chromium-mac/fast/forms/input-disabled-color-expected.png:
* platform/chromium-mac/fast/forms/input-double-click-selection-gap-bug-expected.png:
* platform/chromium-mac/fast/forms/input-field-text-truncated-expected.png:
* platform/chromium-mac/fast/forms/input-placeholder-paint-order-expected.png:
* platform/chromium-mac/fast/forms/input-placeholder-visibility-1-expected.png:
* platform/chromium-mac/fast/forms/input-placeholder-visibility-3-expected.png:
* platform/chromium-mac/fast/forms/input-readonly-autoscroll-expected.png:
* platform/chromium-mac/fast/forms/input-readonly-dimmed-expected.png:
* platform/chromium-mac/fast/forms/input-readonly-empty-expected.png:
* platform/chromium-mac/fast/forms/input-spaces-expected.png:
* platform/chromium-mac/fast/forms/input-table-expected.png:
* platform/chromium-mac/fast/forms/input-text-click-inside-expected.png:
* platform/chromium-mac/fast/forms/input-text-click-outside-expected.png:
* platform/chromium-mac/fast/forms/input-text-double-click-expected.png:
* platform/chromium-mac/fast/forms/input-text-drag-down-expected.png:
* platform/chromium-mac/fast/forms/input-text-option-delete-expected.png:
* platform/chromium-mac/fast/forms/input-text-scroll-left-on-blur-expected.png:
* platform/chromium-mac/fast/forms/input-text-self-emptying-click-expected.png:
* platform/chromium-mac/fast/forms/input-text-word-wrap-expected.png:
* platform/chromium-mac/fast/forms/input-type-text-min-width-expected.png:
* platform/chromium-mac/fast/forms/input-value-expected.png:
* platform/chromium-mac/fast/forms/input-width-expected.png:
* platform/chromium-mac/fast/forms/minWidthPercent-expected.png:
* platform/chromium-mac/fast/forms/number/number-appearance-rtl-expected.png:
* platform/chromium-mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png:
* platform/chromium-mac/fast/forms/number/number-appearance-spinbutton-layer-expected.png:
* platform/chromium-mac/fast/forms/placeholder-position-expected.png:
* platform/chromium-mac/fast/forms/placeholder-pseudo-style-expected.png:
* platform/chromium-mac/fast/forms/plaintext-mode-2-expected.png:
* platform/chromium-mac/fast/forms/tabbing-input-iframe-expected.png:
* platform/chromium-mac/fast/forms/text-style-color-expected.png:
* platform/chromium-mac/fast/forms/textfield-focus-ring-expected.png:
* platform/chromium-mac/fast/forms/textfield-overflow-expected.png:
* platform/chromium-mac/fast/forms/validation-message-appearance-expected.png:
* platform/chromium-mac/fast/forms/visual-hebrew-text-field-expected.png:
* platform/chromium-mac/fast/frames/take-focus-from-iframe-expected.png:
* platform/chromium-mac/fast/html/details-no-summary4-expected.png:
* platform/chromium-mac/fast/html/details-open-javascript-expected.png:
* platform/chromium-mac/fast/html/details-open2-expected.png:
* platform/chromium-mac/fast/html/details-open4-expected.png:
* platform/chromium-mac/fast/lists/dynamic-marker-crash-expected.png:
* platform/chromium-mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.png:
* platform/chromium-mac/fast/repaint/subtree-root-skipped-expected.png:
* platform/chromium-mac/fast/replaced/replaced-breaking-expected.png:
* platform/chromium-mac/fast/replaced/replaced-breaking-mixture-expected.png:
* platform/chromium-mac/fast/replaced/width100percent-textfield-expected.png:
* platform/chromium-mac/fast/speech/input-appearance-numberandspeech-expected.png:
* platform/chromium-mac/fast/speech/input-appearance-speechbutton-expected.png:
* platform/chromium-mac/fast/speech/speech-bidi-rendering-expected.png:
* platform/chromium-mac/fast/table/003-expected.png:
* platform/chromium-mac/fast/table/colspanMinWidth-expected.png:
* platform/chromium-mac/fast/table/spanOverlapRepaint-expected.png:
* platform/chromium-mac/fast/table/text-field-baseline-expected.png:
* platform/chromium-mac/fast/text/textIteratorNilRenderer-expected.png:
* platform/chromium-mac/fast/transforms/transformed-focused-text-input-expected.png:
* platform/chromium-mac/plugins/mouse-click-plugin-clears-selection-expected.png:
* platform/chromium-mac/svg/custom/inline-svg-in-xhtml-expected.png:
* platform/chromium-mac/svg/hixie/mixed/003-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/45621-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug1188-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug12384-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug18359-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug24200-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug2479-2-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug2479-3-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug28928-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug4382-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug46368-1-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug46368-2-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug51037-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug55545-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug59354-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug7342-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug96334-expected.png:
* platform/chromium-mac/tables/mozilla/dom/tableDom-expected.png:
* platform/chromium-mac/tables/mozilla/other/move_row-expected.png:
* platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.png:
* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126110 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r126095.
http://trac.webkit.org/changeset/126095
https://bugs.webkit.org/show_bug.cgi?id=94555

Breaks compilation of downstream WebWidget::paint
implementations (Requested by jamesr on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-20

* public/WebWidget.h:
(WebKit::WebWidget::paint):
* src/WebPagePopupImpl.cpp:
(WebKit::WebPagePopupImpl::paint):
* src/WebPagePopupImpl.h:
(WebPagePopupImpl):
* src/WebPopupMenuImpl.cpp:
(WebKit::WebPopupMenuImpl::paint):
* src/WebPopupMenuImpl.h:
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::paint):
* src/WebViewImpl.h:
(WebViewImpl):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow MutationEvents to be enabled/disabled per context
https://bugs.webkit.org/show_bug.cgi?id=94016

Reviewed by Ojan Vafai.

Source/WebCore:

Chromium wants to be able to turn MutationEvents off for some
Documents (e.g., for Apps V2). This patch makes the firing (and the
constructor on DOMWindow) of MutationEvents a per-context feature, with
the default being enabled.

No functional change (since the feature defaults to enabled).
It's not clear to me that there's a way to test this in DRT without
adding a special hook for this one feature. It will be tested in
Chromium once it's implemented in Chromium.

* dom/ContextFeatures.cpp:
(WebCore::ContextFeatures::mutationEventsEnabled): Add new method,
with the default being enabled.
* dom/ContextFeatures.h:
* dom/Document.cpp:
(WebCore::Document::addMutationEventListenerTypeIfEnabled): Add new
method that checks the ContextFeature flag before adding the passed-in
listener type.
(WebCore::Document::addListenerTypeIfNeeded): Call the new method
instead of addListenerType for MutationEvent types.
* dom/Document.h:
(WebCore::Document::addListenerType): Make private to avoid anyone
outside Document from enabling MutationEvent listeners. All callers
must go through addListenerTypeIfNeeded.

Source/WebKit/chromium:

Add Chromium/WebKit API for enabling/disabling MutationEvents via
WebPermissionClient.

* public/WebPermissionClient.h:
(WebPermissionClient):
(WebKit::WebPermissionClient::allowMutationEvents):
* src/ContextFeaturesClientImpl.cpp:
(WebKit::ContextFeaturesClientImpl::askIfIsEnabled):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126113 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Fix warnings on Windows builds
https://bugs.webkit.org/show_bug.cgi?id=94543

Patch by Scott Graham <scottmg@chromium.org> on 2012-08-20
Reviewed by Adrienne Walker.

* tests/CCMathUtilTest.cpp:

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