Unreviewed, rolling out r128351.
http://trac.webkit.org/changeset/128351
https://bugs.webkit.org/show_bug.cgi?id=96573

Broke FindInPage browser_tests (Requested by jamesr_ on
#webkit).

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

* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::scopeStringMatches):
(WebKit::WebFrameImpl::cancelPendingScopingEffort):
(WebKit::WebFrameImpl::setFindEndstateFocusAndSelection):
(WebKit::WebFrameImpl::shouldScopeMatches):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Remove unused WebGestureEvent fields
https://bugs.webkit.org/show_bug.cgi?id=95496

Patch by Rick Byers <rbyers@chromium.org> on 2012-09-12
Reviewed by Adam Barth.

Remove the no-longer used fields from WebGestureEvent, now that
chromium has been updated to use the per-event-type fields instead.
This depends on crrev.com/156346 in chromium.

* public/WebInputEvent.h:
(WebKit::WebGestureEvent::WebGestureEvent):
* public/android/WebInputEventFactory.h:
* src/WebInputEvent.cpp:
(SameSizeAsWebGestureEvent):
* src/android/WebInputEventFactory.cpp:
(WebKit):
(WebKit::WebInputEventFactory::gestureEvent):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Use ScriptValue instead of SerializedScriptValue when possible
https://bugs.webkit.org/show_bug.cgi?id=94023

Patch by Alec Flett <alecflett@chromium.org> on 2012-09-12
Reviewed by Kentaro Hara.

Transition the put/add/update methods to accept direct ScriptValue
objects rather than SerializedScriptValues, to eliminate lots of
redundant deserialization/serialization steps while storing
values.

Also see https://bugs.webkit.org/show_bug.cgi?id=95409 for
followup get/openCursor work, following this.

No new tests, this is a performance refactor of core IDB
functionality. Most existing tests cover correctness. Tests that
might fail include:

storage/indexeddb/objectstore-basics.html
storage/indexeddb/keypath-basics.html
storage/indexeddb/index-basics.html

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::generateIndexKeysForValue):
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(WebCore):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStore.idl:
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore):
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::deserializeIDBValue):
(WebCore::canInjectIDBKeyIntoScriptValue):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shaders] Implement transform parameter animations for CSS Custom Filters
https://bugs.webkit.org/show_bug.cgi?id=94980

Reviewed by Dean Jackson.

Based on patch from Joshua Netterfield <jnetterfield@rim.com>.

Source/WebCore:

According to Section 39.2 of Filter Effects 1.0 Editor's draft
(https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html), animations
of transforms should be handled following the CSS3 transform interpolation
rules. This patch implements this functionality.

Test: css3/filters/custom/custom-filter-transforms-animation.html

* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore):
* platform/graphics/filters/CustomFilterNumberParameter.h:
(WebCore::CustomFilterNumberParameter::blend):
* platform/graphics/filters/CustomFilterOperation.cpp:
(WebCore::blendCustomFilterParameters):
(WebCore::CustomFilterOperation::blend):
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore):
(WebCore::CustomFilterOperation::blendingNeedsRendererSize): Some filters need the box size, so that they could compute
Transforms. Right now only the CustomFilterOperation needs that, but I've implemented using this generic function.
(CustomFilterOperation):
* platform/graphics/filters/CustomFilterParameter.h:
(CustomFilterParameter):
* platform/graphics/filters/CustomFilterTransformParameter.h:
(CustomFilterTransformParameter):
(WebCore::CustomFilterTransformParameter::blend):
* platform/graphics/filters/FilterOperation.h:
(WebCore::FilterOperation::FilterOperation::blend):
(FilterOperation):
(WebCore::FilterOperation::FilterOperation::blendingNeedsRendererSize):
* platform/graphics/transforms/TransformOperations.cpp: Extracted the blending functions from CSSPropertyAnimation.cpp
so that they could be reused from other classes.
(WebCore::TransformOperations::blendByMatchingOperations):
(WebCore):
(WebCore::TransformOperations::blendByUsingMatrixInterpolation): Used when the TransformOperations do not match.
(WebCore::TransformOperations::blend): Uses when the caller doesn't know whether the TransformOperations match or not.
* platform/graphics/transforms/TransformOperations.h:
(TransformOperations):

LayoutTests:

Added test transform animations in css3/filters/custom/custom-filter-transform-animation.html.

* animations/resources/animation-test-helpers.js:
(customFilterParameterMatch): Extracted the parameter matching from filterParametersMatch and added function parameters matching.
This should work for all functions that have number parameters, ie. arrays, mat4 functions.

(filterParametersMatch):
* css3/filters/custom/custom-filter-transforms-animation-expected.txt: Added.
* css3/filters/custom/custom-filter-transforms-animation.html: Added.
* css3/filters/resources/custom-filter-parser.js: Fixed function parsing.
(TokenStream.prototype.skip):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused bot, apple-xserve-1.
https://bugs.webkit.org/show_bug.cgi?id=96570

Reviewed by Stephanie Lewis.

* BuildSlaveSupport/build.webkit.org-config/config.json:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] V8DOMWrapper::perContextData has no callers and can be removed
https://bugs.webkit.org/show_bug.cgi?id=96574

Reviewed by Kentaro Hara.

* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
flex item sized incorrectly in a column flexbox with height set via top/bottom
https://bugs.webkit.org/show_bug.cgi?id=94855

Reviewed by Ojan Vafai.

Source/WebCore:

Stop using computeContentLogicalHeight() to get the height of the flexbox and
use computeLogicalHeight directly.  This properly takes into account out of flow
positioning.

We can actually refactor some of this into common code, but I want to do that as
a separate pass.

Test: css3/flexbox/columns-height-set-via-top-bottom.html

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Fix out of date comment.
(WebCore::RenderFlexibleBox::mainAxisContentExtent): Use computeLogicalHeight instead of computeContentLogicalHeight.
This code actually never gets used-- I'll try to remove in a follow up.
(WebCore::RenderFlexibleBox::computeAvailableFreeSpace): Use computeLogicalHeight instead of computeContentLogicalHeight.
(WebCore::RenderFlexibleBox::lineBreakLength): Use computeLogicalHeight instead of computeContentLogicalHeight.

LayoutTests:

Test where the height of a column flexbox is set via top and bottom.

* css3/flexbox/columns-height-set-via-top-bottom-expected.txt: Added.
* css3/flexbox/columns-height-set-via-top-bottom.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaseline chromium-mac pixel results for 128375

* platform/chromium-mac-snowleopard/fast/table/height-percent-test-vertical-expected.png:
* platform/chromium-mac/fast/writing-mode/percentage-height-orthogonal-writing-modes-quirks-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
remove unused testexpectations editing code from webkitpy, garden-o-matic
https://bugs.webkit.org/show_bug.cgi?id=96562

Reviewed by Adam Barth.

This code was prototyped but never fully realized. Removing
until it reanimates :).

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js:
* Scripts/webkitpy/layout_tests/controllers/test_expectations_editor.py: Removed.
* Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: Removed.
* Scripts/webkitpy/tool/servers/gardeningserver.py:
(BuildCoverageExtrapolator.extrapolate_test_configurations):
(GardeningHTTPRequestHandler._run_webkit_patch):
(GardeningHTTPRequestHandler.ping):
* Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
(BuildCoverageExtrapolatorTest.test_extrapolate):
(GardeningServerTest.test_rebaseline_new_port):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
refactor TestExpectations tokenization slightly in preparation for the new syntax
https://bugs.webkit.org/show_bug.cgi?id=96564

Reviewed by Ojan Vafai.

This change changes how we will tokenize/lex the
TestExpectations files, in preparation for supporting both the
old syntax and the new one. This change by itself should be a
no-op.

* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser._tokenize_line):
(TestExpectationParser):
(TestExpectationParser._tokenize_line_using_old_format):
(TestExpectationParser._tokenize_line_using_new_format):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shaders] Cached validated programs are destroyed and recreated when there is only one custom filter animating
https://bugs.webkit.org/show_bug.cgi?id=96563

Patch by Max Vujovic <mvujovic@adobe.com> on 2012-09-12
Reviewed by Dean Jackson.

Before this patch, in FilterEffectRenderer::build, we would first clear the old effects and
then create the new effects.

Suppose we have one FECustomFilter animating on the page. This FECustomFilter holds the last
reference to the cached validated program. Before this patch, we would first destroy the old
FECustomFilter, which would destroy its cached validated program. Then, we would create the
new FECustomFilter and have to recreate the validated program.

This patch makes FilterEffectRenderer::build keep the old effects around until we're
done creating the new effects. This way, we won't recreate validated programs.

No new tests. We can't test this because the validated program cache is not exposed to web
pages.

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Assert in NetscapePlugin::destroy() with async plugin init
<rdar://problem/12277595> and https://bugs.webkit.org/show_bug.cgi?id=96576

Reviewed by Anders Carlsson.

Source/WebKit2:

Most of the NPN_* API calls have a plug-in protector during the calls.
NPN_Invoke and NPN_InvokeDefault do not.

* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::NPN_Invoke): Protect the plug-in during this call.
(WebKit::NPN_InvokeDefault): Ditto.

Tools:

Expose NPN_Invoke to plug-in tests:
* DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
(PluginTest::NPN_Invoke):
* DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
(PluginTest):

Add a test that uses NPN_Invoke on the window object from inside NPP_New to remove the plug-in element:
* DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp: Added.
(InvokeDestroysPluginWithinNPP_New):
(InvokeDestroysPluginWithinNPP_New::InvokeDestroysPluginWithinNPP_New):
(InvokeDestroysPluginWithinNPP_New::NPP_New):
* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:

LayoutTests:

* platform/mac-wk2/plugins/destroy-during-async-npp-new-expected.txt: Added.
* platform/mac-wk2/plugins/destroy-during-async-npp-new.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r122501): replaced elements with percent width are wrongly size when inserted inside an auto-table layout
https://bugs.webkit.org/show_bug.cgi?id=95892

Reviewed by Ojan Vafai.

Source/WebCore:

r122501 exposed an issue in how preferred logical widths are computed on replaced objects. The code relies on the
logical width computation methods. Unfortunately the previous code relies on the layout information, which may not
be up-to-date during preferred logical width computation.

Test: fast/table/bad-replaced-sizing-preferred-logical-widths.html
      fast/replaced/vertical-writing-mode-max-logical-width.html

* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeMaxPreferredLogicalWidth):
Added this helper method. The main difference with the old code is that it handles the percent logical width
properly before calling the old code path. This is not totally right but before forking the whole code, it's
better to have more evidence that forking preferred logical widths and logical width computation is the way to go.

(WebCore::RenderReplaced::computePreferredLogicalWidths):
Changed to call computeMaxPreferredLogicalWidth. Also fixed an existing bug in vertical-writing modes where we would
add the wrong paddings and borders.

* rendering/RenderReplaced.h:
(RenderReplaced): Added computeMaxPreferredLogicalWidth.

LayoutTests:

* fast/replaced/vertical-writing-mode-max-logical-width-replaced-expected.txt: Added.
* fast/replaced/vertical-writing-mode-max-logical-width-replaced.html: Added.
* fast/table/bad-replaced-sizing-preferred-logical-widths-expected.txt: Added.
* fast/table/bad-replaced-sizing-preferred-logical-widths.html: Added.
* fast/table/resources/iframe.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] OOM in Workers due to external memory retention.
https://bugs.webkit.org/show_bug.cgi?id=96459

Reviewed by David Levin.

Added memory checks to the locations in Workers code that are about to invoke the next JS block.

* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/v8/V8GCController.cpp:
(WebCore):
(WebCore::workingSetEstimateMBMutex): Added a Mutex-protected accessors to a static caching WS estimate.
(WebCore::V8GCController::gcEpilogue):
(WebCore::V8GCController::checkMemoryUsage):
* bindings/v8/V8GCController.h:
(V8GCController):
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::callListenerFunction):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::evaluate):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reduce parallism on the wk2 testers.
https://bugs.webkit.org/show_bug.cgi?id=95906

Reviewed by Dirk Pranke.

The wk2 testers on Mountain Lion are getting stuck and timing out.  The problem appears to be due to
resource contention.  Reducing the number of processes alleviates the issue.

Starting by reducing 25%.

* Scripts/webkitpy/layout_tests/port/mac.py:
(MacPort.default_child_processes):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
css3/filters/custom/filter-fallback-to-software.html fails on Debug WK2.
https://bugs.webkit.org/show_bug.cgi?id=94372.

Unreviewed.

* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Support download attribute feature
https://bugs.webkit.org/show_bug.cgi?id=96462

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2012-09-12
Reviewed by Gyuyoung Kim.

.:

* Source/cmake/OptionsEfl.cmake: Enable DOWNLOAD_ATTRIBUTE feature.

Source/WebKit/efl:

Add suggested_name field on _Ewk_Download and set it on startDownload
to get suggested name passed as a download attribute.

* WebCoreSupport/FrameLoaderClientEfl.cpp:
(WebCore::FrameLoaderClientEfl::download):
(WebCore::FrameLoaderClientEfl::startDownload):
* ewk/ewk_view.h:

Tools:

Enable DOWNLOAD_ATTRIBUTE feature for EFL port,
and add "download,request" callback to the DumpRenderTree for EFL.

* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::createView):
(DumpRenderTreeChrome::onDownloadRequest):
* DumpRenderTree/efl/DumpRenderTreeChrome.h:
(DumpRenderTreeChrome):
* Scripts/webkitperl/FeatureList.pm:

LayoutTests:

* platform/efl/Skipped: Unskip test cases related to download attributes.
* platform/efl-wk2/TestExpectations: Add test cases related to download attributes because they are still failed for WK2

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128393 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Introduce ValidationMessageClient
https://bugs.webkit.org/show_bug.cgi?id=96238

Reviewed by Hajime Morita.

ValidationMessageClient interface is responsible to operate validation
message UI for interactive form validation. If a Page object has a
ValidtionMessageClient, ValidationMessae class uses
ValidtionMessageClient instead of Shadow DOM.

No new tests because of no behavior changes.

* GNUmakefile.list.am: Add ValidtionMessageClient.h.
* Target.pri: ditto.
* WebCore.gypi: ditto.
* WebCore.xcodeproj/project.pbxproj: ditto.

* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::~ValidationMessage):
Hide a validation message via ValidationMessageClient if it is available.
(WebCore::ValidationMessage::validationMessageClient):
A helper function to get Page::validationMessageClient.
(WebCore::ValidationMessage::updateValidationMessage):
Adding title attribute is not neeeded if ValidationMessageClient is
used. It shoudl be handled in a ValidtionMessageClient implementation.
(WebCore::ValidationMessage::setMessage):
Show a validation message via ValidationMessageClient if it is available.
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
Add an assertion that ValidationMessageClient should not be available.
(WebCore::ValidationMessage::buildBubbleTree): ditto.
(WebCore::ValidationMessage::requestToHideMessage):
Hide a validation message via ValidationMessageClient if it is available.
(WebCore::ValidationMessage::shadowTreeContains):
Always returns false if ValidationMessageClient is available, it means no Shadow DOM.
(WebCore::ValidationMessage::deleteBubbleTree):
Add an assertion that ValidationMessageClient should not be available.
(WebCore::ValidationMessage::isVisible):
Ask ValidationMessageClient for visibility if it is available.
* html/ValidationMessage.h:
(WebCore): Add a comment.
(ValidationMessage): Add validtionMessageClient member function.

* page/Page.cpp:
(WebCore::Page::Page): Initialize m_validationMessageClient.
(WebCore::Page::PageClients::PageClients):
Initialize validationMessageClient member with 0.
So, existing code makes Page::m_validationMessageClient 0.
* page/Page.h:
(PageClients): Add validationMessageClient member.
(WebCore::Page::validationMessageClient):
Added. Accessor for m_validationMessageClient.
(Page): Add m_validationMessageClient.

* page/Settings.h:
(Settings): Updated the comment for setInteractiveFormValidationEnabled.

* page/ValidationMessageClient.h: Added.


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