WebFrameLoaderClient::dispatchWillSendSubmitEvent() needs to be
implemented for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=84304

Reviewed by Jessie Berlin.

Source/WebKit2:

* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
Declare willSendSubmitEvent on WKBundlePageFormClient.

* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::willSendSubmitEvent):
From the String pair vector, create a map from control name to value.
Call the client's willSendSubmitEvent.

* WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:
Declare willSendSubmitEvent.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchWillSendSubmitEvent):
Call the injected bundle form client's willSendSubmitEvent.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Un-stub willSendSubmitEvent.

* Shared/APIClientTraits.cpp:
(WebKit):
Set the interface sizes for WKBundlePageFormClient; version 1 includes
willSendSubmitEvent.

* Shared/APIClientTraits.h:
Declare a specialization for WKBundlePageFormClient.

* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
Bump the WKBundlePageFormClient version number.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Added new files to project.

* TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent.cpp: Added.
(TestWebKitAPI::didReceiveMessageFromInjectedBundle):
Look for the "DidReceiveWillSendSubmitEvent" message. The message body
will be the dictionary of form control names and values passed to the
injected bundle's willSendSubmitEvent handler; look for the pairs
"textField" -> "text field" and "passwordField" -> "password field".
Check that "hiddenField" is not included.
(TestWebKitAPI::setInjectedBundleClient):
(TestWebKitAPI::TEST):

* TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent_Bundle.cpp: Added.
(TestWebKitAPI::willSendSubmitEvent):
Post a message to the TestWebKitAPI process with the dictionary of form
control names and values that we received.
(TestWebKitAPI::WillSendSubmitEventTest::WillSendSubmitEventTest):
(TestWebKitAPI::WillSendSubmitEventTest::didCreatePage):
Set up the page's form client.

* TestWebKitAPI/Tests/WebKit2/auto-submitting-form.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed build fix for Mac WK2. Adding a mistakenly removed symbol back to WebCore.exp.in.

* WebCore.exp.in:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Integrate IETC CSS : flexbox tests
https://bugs.webkit.org/show_bug.cgi?id=85210

Patch by Dave Tharp <dtharp@codeaurora.org> on 2012-05-03
Reviewed by Adam Barth.

Added 24 IETC Flexbox tests and reference tests.  Three of these fail and have
new bugs written against them.  Failing tests added to test_expectations.txt
for the various ports.

* ietestcenter/css3/flexbox/flexbox-align-baseline-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-baseline-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-center-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-center-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-center-002-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-center-002.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-end-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-end-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-start-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-start-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-stretch-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-align-stretch-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-direction-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-direction-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-002-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-002.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-003-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-003.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-004-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-004.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-005-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-flex-005.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-002-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-002.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-003-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-003.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-004-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-groups-004.htm: Added.
* ietestcenter/css3/flexbox/flexbox-layout-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-layout-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-layout-002-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-layout-002.htm: Added.
* ietestcenter/css3/flexbox/flexbox-layout-003-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-layout-003.htm: Added.
* ietestcenter/css3/flexbox/flexbox-ordinal-group-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-ordinal-group-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-center-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-center-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-end-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-end-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-justify-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-justify-001.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-start-001-expected.htm: Added.
* ietestcenter/css3/flexbox/flexbox-pack-start-001.htm: Added.
* platform/chromium/test_expectations.txt:
* platform/efl/test_expectations.txt:
* platform/gtk/test_expectations.txt:
* platform/mac/test_expectations.txt:
* platform/qt/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116018 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed test expectations update for zoom event test due to slight change in rounding in hit testing code post the switch to FractionalLayoutUnits.

* fast/events/zoom-dblclick-expected.txt:
* fast/events/zoom-dblclick.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116019 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Attempt to fix a crash on SL ...

Unreviewed, build fix.

It looks like we may be getting an IOError raised during
select() on chromium mac, and that error isn't being caught.
Pushing it into the try/catch block will hopefully catch this
and allow us to see why the subprocess is crashing.

* Scripts/webkitpy/layout_tests/port/server_process.py:
(ServerProcess._wait_for_data_and_update_buffers_using_select):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116020 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[NRWT] Run performance tests with lock
https://bugs.webkit.org/show_bug.cgi?id=78628

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-05-03
Reviewed by Tony Chang.

Locking performance tests (like we do for http tests) will force them
to run in serial. This reduces the load of the machine when running perf
tests and minimizes the chances of the tests to fail, specially
timeouts.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.__init__):
(Manager._is_perf_test):
(Manager._test_requires_lock):
* Scripts/webkitpy/layout_tests/port/http_lock.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116021 268f45cc-cd09-0410-ab3c-d52691b4dbfc
webkitpy: Remove check for readline on Mac.
https://bugs.webkit.org/show_bug.cgi?id=85547

Reviewed by Eric Seidel.

Python 2.5 is not supported by the WebKit project anymore, and
Python's readline documentation does not mention the module not
being available in the supported versions.

* Scripts/webkitpy/common/system/user.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116022 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rebaseline.

* platform/chromium-mac-leopard/svg/as-image/image-respects-pageScaleFactor-expected.png: Added.
* platform/chromium-mac-snowleopard/svg/as-image/image-respects-pageScaleFactor-expected.png: Added.
* platform/chromium-mac/svg/as-image/image-respects-pageScaleFactor-expected.png: Added.
* platform/chromium-win-vista/svg/as-image: Added.
* platform/chromium-win-vista/svg/as-image/image-respects-pageScaleFactor-expected.png: Added.
* platform/chromium-win-vista/svg/as-image/image-respects-pageScaleFactor-expected.txt: Added.
* platform/chromium-win-xp/svg/as-image: Added.
* platform/chromium-win-xp/svg/as-image/image-respects-pageScaleFactor-expected.png: Added.
* platform/chromium-win-xp/svg/as-image/image-respects-pageScaleFactor-expected.txt: Added.
* platform/chromium-win/svg/as-image/image-respects-pageScaleFactor-expected.png: Added.
* platform/chromium-win/svg/as-image/image-respects-pageScaleFactor-expected.txt: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Port the flakiness dashboard unittests to qunit
https://bugs.webkit.org/show_bug.cgi?id=85544

Reviewed by Adam Barth.

* TestResultServer/static-dashboards/dashboard_base.js:
(appendJSONScriptElements):
* TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:
(resetGlobals):
(runExpectationsTest):
(test):
* TestResultServer/static-dashboards/run-unittests.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Heap::reportAbandonedObjectGraph should not hasten an allocation-triggered collection
https://bugs.webkit.org/show_bug.cgi?id=85543

Reviewed by Filip Pizlo.

Currently reportAbandonedObjectGraph causes the Heap to think it is closer to its 
allocation limit for the current cycle, thus hastening an allocation-triggered collection. 
In reality, it should just affect the opportunistic GC timer. We should track the bytes 
we think have been abandoned and the bytes that have been allocated separately.

* heap/Heap.cpp: Added a new field m_abandonedBytes to Heap to keep track of how much 
we think we've abandoned.
(JSC::Heap::Heap): 
(JSC::Heap::reportAbandonedObjectGraph): 
(JSC):
(JSC::Heap::didAbandon): Added this function for reportAbandonedObjectGraph to call 
rather than didAllocate. Works the same as didAllocate, but modifies bytes abandoned rather 
than bytes allocated. Also notifies the timer, summing the two values together.
(JSC::Heap::collect):
(JSC::Heap::didAllocate): Now adds the bytes allocated and bytes abandoned when reporting 
to GCActivityCallback.
* heap/Heap.h:
(Heap):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Show the test name in the dashboard if showChrome==false and we're showing multiple tests
https://bugs.webkit.org/show_bug.cgi?id=85243

Reviewed by Dirk Pranke.

This happens for cases where a test name matches multiple tests.
In practice, this only happens for virtual test suites (e.g. the canvas tests).

* TestResultServer/static-dashboards/flakiness_dashboard.js:
(htmlForIndividualTestOnAllBuildersWithChrome):
* TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:
(testHtmlForIndividualTestOnAllBuildersWithChromeNonexistant):
(testHtmlForIndividualTestOnAllBuildersWithChrome):
(testHtmlForIndividualTestOnAllBuildersWithChromeWebkitMaster):
(testHtmlForIndividualTests):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116026 268f45cc-cd09-0410-ab3c-d52691b4dbfc
PageCache autorelease should not wait until 3 seconds and 42 pages
https://bugs.webkit.org/show_bug.cgi?id=85254
<rdar://problem/11349613>

Reviewed by Geoffrey Garen.

No new tests, since there is no change in behavior.

* history/PageCache.cpp:
(WebCore):
(WebCore::PageCache::PageCache):
(WebCore::PageCache::releaseAutoreleasedPagesNowDueToTimer):
* history/PageCache.h:
(PageCache):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116027 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix coding style issues in IDBLevelDBCoding.cpp
https://bugs.webkit.org/show_bug.cgi?id=85536

Reviewed by Tony Chang.

No tests - just code formatting changes.

* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeIDBKey):
(WebCore::IDBLevelDBCoding::decodeIDBKey):
(WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Don't show the WebKit Linux ASAN bot on the flakiness dashboard.
https://bugs.webkit.org/show_bug.cgi?id=85551

Reviewed by Dirk Pranke.

It's not uploading results and in the short term we don't plan to have it start.

* TestResultServer/static-dashboards/builders.js:
(isChromiumWebkitTipOfTreeTestRunner):
* TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116029 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix numeric precision issue in SVG animations
https://bugs.webkit.org/show_bug.cgi?id=85502

Reviewed by Dirk Schulze.

Source/WebCore:

r93938 had a bug where floating point numbers where compared exactly,
exposing a bug when floating point precision was not sufficient. This
change compares against an epsilon value to get around these precision
issues.

Test: svg/animations/animate-end-attribute-numeric-precision.html

* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):

LayoutTests:

* svg/animations/animate-end-attribute-numeric-precision-expected.txt: Added.
* svg/animations/animate-end-attribute-numeric-precision.html: Added.
* svg/animations/script-tests/animate-end-attribute-numeric-precision.js: Added.
(sample1):
(sample2):
(executeTest):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Bugs in WebFullScreenController
https://bugs.webkit.org/show_bug.cgi?id=85388

Patch by Tobias Netzel <tobias.netzel@googlemail.com> on 2012-05-03
Reviewed by Alexey Proskuryakov.

Leopard specific fixes:
NSWindow doesn't respond to isOnActiveSpace so find out first.
Values passed to SetSystemUIMode were swapped.

Source/WebKit/mac:

* WebView/WebFullScreenController.mm:
(-[WebFullScreenController exitFullScreen]):
(-[WebFullScreenController _updateMenuAndDockForFullScreen]):

Source/WebKit2:

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]):
(-[WKFullScreenWindowController _updateMenuAndDockForFullScreen]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ASSERT(!m_zOrderListsDirty) is triggering in Safari
https://bugs.webkit.org/show_bug.cgi?id=85512

Reviewed by Simon Fraser.

Unfortunately no test as I don't think the 2 cases are testable reliably.

A better fix would be to introduce some iterator that handle updating the
lists for you. For now, just adding the missing updateLayerListsIfNeeded()
calls.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerHas3DContent):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Updating expectations after r116009.

* platform/chromium-linux/fast/block/float/overhanging-tall-block-expected.txt: Removed.
* platform/chromium-mac/fast/block/float/overhanging-tall-block-expected.png: Added.
* platform/chromium-mac/fast/block/float/overhanging-tall-block-expected.txt: Added.
* platform/chromium-win/fast/block/float/overhanging-tall-block-expected.txt:
* platform/chromium/fast/block/float/overhanging-tall-block-expected.png: Removed.
* platform/chromium/fast/block/float/overhanging-tall-block-expected.txt: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove the last bits of Leopard support from our perl scripts
https://bugs.webkit.org/show_bug.cgi?id=85545

Reviewed by Daniel Bates.

Chromium still supports Leopard (for a little while yet), but AppleMacWebKit dropped
Leopard support several months ago.  Remove the last bits of isLeopard() branching
in our Perl scripts, since no one is using this (Chromium has never used this Perl code).

* Scripts/build-webkit:
* Scripts/old-run-webkit-tests:
(countAndPrintLeaks):
(captureSavedCrashLog):
* Scripts/webkitdirs.pm:
(determineArchitecture):
(argumentsForRunAndDebugMacWebKitApp):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116034 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rebaseline.

* platform/chromium-win-vista/fast/css/zoom-body-scroll-expected.txt: Added.
* platform/chromium-win-xp/fast/css/zoom-body-scroll-expected.txt: Added.
* platform/chromium-win/fast/css/zoom-body-scroll-expected.txt:


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