WebKit-https.git
7 years agoRemove test results that match top-level results
ddkilzer@apple.com [Wed, 16 Apr 2014 19:00:55 +0000 (19:00 +0000)]
Remove test results that match top-level results

Found using this shell script:

$ for F in `find LayoutTests/platform/ios-sim -name \*-expected.txt`; do \
T=`echo $F | sed -e 's#platform/ios-sim/##'`; \
M=`echo $F | sed -e 's#platform/ios-sim/#platform/mac/#'`; \
ML=`echo $F | sed -e 's#platform/ios-sim/#platform/mac-mountainlion/#'`; \
if [ ! -f $M -a ! -f $ML -a -f $T -a -z "`diff -u $F $T 2> /dev/null`" ]; then echo $F; fi; \
done

* platform/ios-sim/compositing/layer-creation/no-compositing-for-sticky-expected.txt: Removed.
* platform/ios-sim/editing/inserting/insert-3786362-fix-expected.txt: Removed.
* platform/ios-sim/editing/inserting/insert-3907422-fix-expected.txt: Removed.
* platform/ios-sim/editing/unsupported-content/table-delete-001-expected.txt: Removed.
* platform/ios-sim/editing/unsupported-content/table-delete-003-expected.txt: Removed.
* platform/ios-sim/fast/block/positioning/move-with-auto-width-expected.txt: Removed.
* platform/ios-sim/fast/canvas/2d.backingStorePixelRatio-expected.txt: Removed.
* platform/ios-sim/fast/canvas/2d.imageDataHD-expected.txt: Removed.
* platform/ios-sim/fast/canvas/canvas-fillPath-shadow-expected.txt: Removed.
* platform/ios-sim/fast/canvas/webgl/texture-npot-expected.txt: Removed.
* platform/ios-sim/fast/css/MarqueeLayoutTest-expected.txt: Removed.
* platform/ios-sim/fast/css/color-leakage-expected.txt: Removed.
* platform/ios-sim/fast/css/font-face-multiple-remote-sources-expected.txt: Removed.
* platform/ios-sim/fast/css/font-face-remote-expected.txt: Removed.
* platform/ios-sim/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
* platform/ios-sim/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
* platform/ios-sim/fast/css/nested-layers-with-hover-expected.txt: Removed.
* platform/ios-sim/fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1-expected.txt: Removed.
* platform/ios-sim/fast/dom/Window/window-postmessage-arrays-expected.txt: Removed.
* platform/ios-sim/fast/dom/constructed-objects-prototypes-expected.txt: Removed.
* platform/ios-sim/fast/dom/gc-10-expected.txt: Removed.
* platform/ios-sim/fast/dom/tabindex-clamp-expected.txt: Removed.
* platform/ios-sim/fast/dynamic/dirty-float-in-clean-line-expected.txt: Removed.
* platform/ios-sim/fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt: Removed.
* platform/ios-sim/fast/forms/mailto/advanced-get-expected.txt: Removed.
* platform/ios-sim/fast/forms/mailto/advanced-put-expected.txt: Removed.
* platform/ios-sim/fast/forms/radio/indeterminate-radio-expected.txt: Removed.
* platform/ios-sim/fast/forms/select-script-onchange-expected.txt: Removed.
* platform/ios-sim/fast/forms/suggested-value-expected.txt: Removed.
* platform/ios-sim/fast/history/timed-refresh-in-cached-frame-expected.txt: Removed.
* platform/ios-sim/fast/lists/inline-before-content-after-list-marker-expected.txt: Removed.
* platform/ios-sim/fast/media/media-query-list-07-expected.txt: Removed.
* platform/ios-sim/fast/media/print-restores-previous-mediatype-expected.txt: Removed.
* platform/ios-sim/fast/multicol/span/before-child-anonymous-column-block-expected.txt: Removed.
* platform/ios-sim/fast/overflow/horizontal-scroll-after-back-expected.txt: Removed.
* platform/ios-sim/fast/overflow/scrollbar-restored-expected.txt: Removed.
* platform/ios-sim/fast/repaint/table-hover-on-link-expected.txt: Removed.
* platform/ios-sim/fast/repaint/table-section-repaint-expected.txt: Removed.
* platform/ios-sim/fast/ruby/floating-ruby-text-expected.txt: Removed.
* platform/ios-sim/fast/ruby/overhang-horizontal-expected.txt: Removed.
* platform/ios-sim/fast/ruby/overhang-horizontal-no-overlap1-expected.txt: Removed.
* platform/ios-sim/fast/ruby/overhang-horizontal-no-overlap2-expected.txt: Removed.
* platform/ios-sim/fast/ruby/positioned-ruby-text-expected.txt: Removed.
* platform/ios-sim/fast/ruby/ruby-text-before-child-split-expected.txt: Removed.
* platform/ios-sim/fast/table/empty-row-crash-expected.txt: Removed.
* platform/ios-sim/fast/table/empty-section-crash-expected.txt: Removed.
* platform/ios-sim/fast/table/inline-form-assert-expected.txt: Removed.
* platform/ios-sim/fast/table/max-width-integer-overflow-expected.txt: Removed.
* platform/ios-sim/fast/table/table-row-split2-expected.txt: Removed.
* platform/ios-sim/fast/table/table-section-split2-expected.txt: Removed.
* platform/ios-sim/fast/table/table-split-expected.txt: Removed.
* platform/ios-sim/fast/table/table-split2-expected.txt: Removed.
* platform/ios-sim/fast/text/apply-start-width-after-skipped-text-expected.txt: Removed.
* platform/ios-sim/fast/text/justify-padding-distribution-expected.txt: Removed.
* platform/ios-sim/fast/text/selection-painted-separately-expected.txt: Removed.
* platform/ios-sim/fast/text/setData-dirty-lines-expected.txt: Removed.
* platform/ios-sim/fast/text/soft-hyphen-2-expected.txt: Removed.
* platform/ios-sim/fast/text/splitText-dirty-lines-expected.txt: Removed.
* platform/ios-sim/fast/transforms/shadows-expected.txt: Removed.
* platform/ios-sim/fast/workers/worker-close-more-expected.txt: Removed.
* platform/ios-sim/fast/writing-mode/table-percent-width-quirk-expected.txt: Removed.
* platform/ios-sim/fast/xmlhttprequest/xmlhttprequest-recursive-sync-event-expected.txt: Removed.
* platform/ios-sim/http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt: Removed.
* platform/ios-sim/http/tests/cookies/simple-cookies-expired-expected.txt: Removed.
* platform/ios-sim/http/tests/cookies/simple-cookies-max-age-expected.txt: Removed.
* platform/ios-sim/http/tests/cookies/single-quoted-value-expected.txt: Removed.
* platform/ios-sim/http/tests/misc/empty-urls-expected.txt: Removed.
* platform/ios-sim/http/tests/multipart/load-last-non-html-frame-expected.txt: Removed.
* platform/ios-sim/http/tests/navigation/post-goback1-expected.txt: Removed.
* platform/ios-sim/http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked-expected.txt: Removed.
* platform/ios-sim/http/tests/security/contentSecurityPolicy/media-src-blocked-expected.txt: Removed.
* platform/ios-sim/http/tests/security/local-video-poster-from-remote-expected.txt: Removed.
* platform/ios-sim/http/tests/security/sandboxed-iframe-modify-self-expected.txt: Removed.
* platform/ios-sim/http/tests/security/video-poster-cross-origin-crash-expected.txt: Removed.
* platform/ios-sim/http/tests/xmlhttprequest/chunked-progress-event-expectedLength-expected.txt: Removed.
* platform/ios-sim/http/tests/xmlhttprequest/request-encoding2-expected.txt: Removed.
* platform/ios-sim/http/tests/xmlhttprequest/upload-onloadend-event-after-load-expected.txt: Removed.
* platform/ios-sim/http/tests/xmlhttprequest/upload-onprogress-event-expected.txt: Removed.
* platform/ios-sim/http/tests/xmlhttprequest/upload-progress-events-expected.txt: Removed.
* platform/ios-sim/media/csp-blocks-video-expected.txt: Removed.
* platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A3.1-expected.txt: Removed.
* platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A3.2-expected.txt: Removed.
* platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A5.3_T1-expected.txt: Removed.
* platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A5.3_T2-expected.txt: Removed.
* platform/ios-sim/svg/as-image/image-respects-pageScaleFactor-change-expected.txt: Removed.
* platform/ios-sim/svg/css/getComputedStyle-basic-expected.txt: Removed.
* platform/ios-sim/svg/custom/baseval-animval-equality-expected.txt: Removed.
* platform/ios-sim/svg/custom/dasharrayOrigin-expected.txt: Removed.
* platform/ios-sim/svg/custom/getSubStringLength-expected.txt: Removed.
* platform/ios-sim/svg/custom/pattern-scaling-expected.txt: Removed.
* platform/ios-sim/svg/custom/svg-features-expected.txt: Removed.
* platform/ios-sim/svg/dom/altGlyph-dom-expected.txt: Removed.
* platform/ios-sim/svg/foreignObject/fO-parent-display-none-expected.txt: Removed.
* platform/ios-sim/svg/foreignObject/fO-parent-display-none-with-relative-pos-content-expected.txt: Removed.
* platform/ios-sim/svg/foreignObject/fO-parent-of-parent-display-none-expected.txt: Removed.
* platform/ios-sim/svg/foreignObject/fO-parent-of-parent-display-none-with-relative-pos-content-expected.txt: Removed.
* platform/ios-sim/svg/hittest/svg-ellipse-non-scale-stroke-expected.txt: Removed.

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

7 years ago<http://webkit.org/b/129171> Rebaseline LayoutTests for iOS
ddkilzer@apple.com [Wed, 16 Apr 2014 19:00:13 +0000 (19:00 +0000)]
<webkit.org/b/129171> Rebaseline LayoutTests for iOS

3206 files changed, 65535 insertions(+), 39972 deletions(-)

* platform/ios-sim/Skipped: Clean up old items.  Skip tests that
time out due to notifyDone() not being called.

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

7 years agoUpstream iOS layout test results
ddkilzer@apple.com [Wed, 16 Apr 2014 18:56:51 +0000 (18:56 +0000)]
Upstream iOS layout test results

7354 files changed, 367781 insertions(+)

* platform/ios-sim: Add.

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

7 years ago[Win] Pass default parameters to cygwin setup wizard
agomez@igalia.com [Wed, 16 Apr 2014 18:51:56 +0000 (18:51 +0000)]
[Win] Pass default parameters to cygwin setup wizard
https://bugs.webkit.org/show_bug.cgi?id=131361

Reviewed by Brent Fulgham.

Added some parameters to the cygwin setup wizard so the user
doesn't really have to do any interaction.

* CygwinDownloader/cygwin-downloader.py:
* CygwinDownloader/cygwin-downloader.zip:

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

7 years agoRename LayoutTests/platformm/iphone-simulator => ios-sim
ddkilzer@apple.com [Wed, 16 Apr 2014 18:51:49 +0000 (18:51 +0000)]
Rename LayoutTests/platformm/iphone-simulator => ios-sim

* platform/ios-sim: Renamed from LayoutTests/platform/iphone-simulator.

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

7 years agoDataTransfer should cache its FileList
ap@apple.com [Wed, 16 Apr 2014 18:49:39 +0000 (18:49 +0000)]
DataTransfer should cache its FileList
https://bugs.webkit.org/show_bug.cgi?id=131694

Reviewed by Darin Adler.

Source/WebCore:
Test: fast/events/data-transfer-files-attribute-identity.html

* bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readTerminal):
Switched to a new FileList constructor, CloneDeserializer doesn't really need to modify
the FileList with append().

* dom/DataTransfer.h:
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::types): Added a FIXME.
(WebCore::DataTransfer::files): Changed to reuse a cached FileList. It's currently
easy, because we don't support DataTransferItemList. Once we do, making any changes
through it will also require updating the FileList in a way that doesn't replace
File objects for unchanged files.

* fileapi/FileList.h:
(WebCore::FileList::create):
(WebCore::FileList::isEmpty):
(WebCore::FileList::FileList):
(WebCore::FileList::append):
(WebCore::FileList::clear):
Made non-const functions private, because neither DataTransfer nor FileInputType
expect the list to be modified without their knowledge. Added a new Vector based
constructor so that a FileList could be created without the use of append().

* html/FileInputType.cpp: (WebCore::FileInputType::createFileList): Simplified
the code a little bit. FileInputType still needs to modify the list for clear(),
but doesn't need to add to it dynamically - unlike with DataTransfer, it's expected
to create a new FileList when it's modified.

LayoutTests:
* fast/events/data-transfer-files-attribute-identity-expected.txt: Added.
* fast/events/data-transfer-files-attribute-identity.html: Added.

* platform/wk2/TestExpectations: Skipped the test, because WKTR doesn't support
file dragging yet.

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

7 years agoRemove fast/parser/parser-yield-timing.html from skipped list
zoltan@webkit.org [Wed, 16 Apr 2014 18:32:18 +0000 (18:32 +0000)]
Remove fast/parser/parser-yield-timing.html from skipped list
https://bugs.webkit.org/show_bug.cgi?id=131749

Reviewed by Darin Adler.

The test was originally skipped in Bug 89812 due to flakiness on Chromium
debug bots. I run the tests with huge iterations and I don't see
flakiness on Mavericks release/debug. Let's remove from skipped for now.

* platform/mac/TestExpectations:

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

7 years agoRemove references to Leopard and Snow Leopard from Windows TestExpectations
bjonesbe@adobe.com [Wed, 16 Apr 2014 18:16:54 +0000 (18:16 +0000)]
Remove references to Leopard and Snow Leopard from Windows TestExpectations

Filed new bugs to track each of these tests, so someone with a windows
build can try and see if the tests still fail.

Unreviewed.

* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:

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

7 years ago[Win] Eliminate use of deleteAllValues in Windows Files
bfulgham@apple.com [Wed, 16 Apr 2014 18:15:04 +0000 (18:15 +0000)]
[Win] Eliminate use of deleteAllValues in Windows Files
https://bugs.webkit.org/show_bug.cgi?id=131631

Reviewed by Darin Adler.

Source/WebCore:
Update to use std::unique_ptr for object lifetime. Get rid of
deleteAllValues now that it is no loner needed. Use ranged for
loops where possible.

* platform/win/WCDataObject.cpp:
(WebCore::WCEnumFormatEtc::WCEnumFormatEtc):
(WebCore::WCDataObject::~WCDataObject):
(WebCore::WCDataObject::GetData):
(WebCore::WCDataObject::QueryGetData):
(WebCore::WCDataObject::SetData):
(WebCore::WCDataObject::clearData):
* platform/win/WCDataObject.h:

Tools:
Switch to std::unique_ptr for memory lifetime. Get rid of
deleteAllValues now that it is no longer needed. Use ranged
for loops where possible.

* DumpRenderTree/win/DRTDataObject.cpp:
(WCEnumFormatEtc::WCEnumFormatEtc):
(DRTDataObject::~DRTDataObject):
(DRTDataObject::GetData):
(DRTDataObject::QueryGetData):
(DRTDataObject::SetData):
(DRTDataObject::clearData):
* DumpRenderTree/win/DRTDataObject.h:
* DumpRenderTree/win/UIDelegate.cpp:
(DRTUndoObject::DRTUndoObject):
(DRTUndoObject::~DRTUndoObject):
(DRTUndoStack::~DRTUndoStack):
(DRTUndoStack::clear):
(DRTUndoStack::pop):
(DRTUndoManager::DRTUndoManager):
(DRTUndoManager::redo):
(DRTUndoManager::undo):
(UIDelegate::UIDelegate):
(UIDelegate::resetUndoManager):
* DumpRenderTree/win/UIDelegate.h:

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

7 years ago[WebKit] Cleanup the build from uninitialized variable in JavaScriptCore
mhahnenberg@apple.com [Wed, 16 Apr 2014 18:09:56 +0000 (18:09 +0000)]
[WebKit] Cleanup the build from uninitialized variable in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=131728

Reviewed by Darin Adler.

* runtime/JSObject.cpp:
(JSC::JSObject::genericConvertDoubleToContiguous): Add a RELEASE_ASSERT on the
path we expect to never take. Also shut up confused compilers about uninitialized things.

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

7 years agoMake Windows fail with a link error so I know what the new symbol is.
simon.fraser@apple.com [Wed, 16 Apr 2014 18:06:13 +0000 (18:06 +0000)]
Make Windows fail with a link error so I know what the new symbol is.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

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

7 years ago[mac][wk2] REGRESSION (Tiled Drawing): fast/layers/no-clipping-overflow-hidden-added...
abucur@adobe.com [Wed, 16 Apr 2014 18:05:44 +0000 (18:05 +0000)]
[mac][wk2] REGRESSION (Tiled Drawing): fast/layers/no-clipping-overflow-hidden-added-after-transform.html fails with tiled drawing
https://bugs.webkit.org/show_bug.cgi?id=122238

Unreviewed. The test passes now.

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

7 years agoAX: Accessing a table cell with an invalid column header crashes
cfleizach@apple.com [Wed, 16 Apr 2014 18:04:43 +0000 (18:04 +0000)]
AX: Accessing a table cell with an invalid column header crashes
https://bugs.webkit.org/show_bug.cgi?id=131719

Reviewed by Darin Adler.

If no tableCell is available as a column/row header, then do not continue processing.

Test: accessibility/table-missing-column-header-crash.html

* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::rowHeaders):

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

7 years ago[GTK] Fix unused parameter warnings
b.long@cablelabs.com [Wed, 16 Apr 2014 18:00:24 +0000 (18:00 +0000)]
[GTK] Fix unused parameter warnings
https://bugs.webkit.org/show_bug.cgi?id=131721

Reviewed by Darin Adler.

Source/WebCore:
* bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
(WebCore::toJS): Remove unused 'exec' parameter.

Source/WebKit2:
* Scripts/webkit2/messages.py:
(generate_message_handler): Add UNUSED_PARAM() for a couple parameters which aren't always used.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<LinearTimingFunction>::decode): Remove unused parameters.
* WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
(API::InjectedBundle::FormClient::textDidChangeInTextField): Same.
(API::InjectedBundle::FormClient::willSubmitForm): Same.
(API::InjectedBundle::FormClient::willSendSubmitEvent): Same.
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveSyncMessage): Same.

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

7 years ago[GTK] Unreviewed GTK gardening.
commit-queue@webkit.org [Wed, 16 Apr 2014 17:58:52 +0000 (17:58 +0000)]
[GTK] Unreviewed GTK gardening.

Update list of skipped unit tests:

  Skip test: WebKit2Gtk/TestWebKitWebView:/webkit2/WebKitWebView/page-visibility

  Unskip tests: WebKit2/TestWebKit2:WebKit2.ResizeReversePaginatedWebView
  and WebKit2/TestWebKit2:WebKit2.ScrollPinningBehaviors

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-04-16

* Scripts/run-gtk-tests:
(TestRunner):

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

7 years agoAccidentally included some style-checker-testing changes in the last commit.
timothy_horton@apple.com [Wed, 16 Apr 2014 17:58:52 +0000 (17:58 +0000)]
Accidentally included some style-checker-testing changes in the last commit.

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):

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

7 years agoFix some style checker complaints in PDFPlugin
timothy_horton@apple.com [Wed, 16 Apr 2014 17:54:50 +0000 (17:54 +0000)]
Fix some style checker complaints in PDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=131706

Reviewed by Darin Adler.

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:forParameter:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeNames]):
(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
(WebKit::PDFPlugin::isEditingCommandEnabled):
(WebKit::PDFPlugin::nextMatchForString):
(WebKit::PDFPlugin::handleWheelEvent):
(WebKit::PDFPlugin::liveData):

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

7 years agoConvert the boolean param of Image::startAnimation() to an enum
simon.fraser@apple.com [Wed, 16 Apr 2014 17:50:57 +0000 (17:50 +0000)]
Convert the boolean param of Image::startAnimation() to an enum
https://bugs.webkit.org/show_bug.cgi?id=131742

Reviewed by Tim Horton.

Use an enum to make the code more readable.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::startAnimation):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(WebCore::Image::startAnimation):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::startAnimation):
* svg/graphics/SVGImage.h:

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

7 years agoWTF should have an optional mbmalloc target so we can benchmark FastMalloc
ggaren@apple.com [Wed, 16 Apr 2014 17:48:56 +0000 (17:48 +0000)]
WTF should have an optional mbmalloc target so we can benchmark FastMalloc
https://bugs.webkit.org/show_bug.cgi?id=131662

Reviewed by Darin Adler.

* WTF.xcodeproj/project.pbxproj: Added the target.
* wtf/mbmalloc.cpp: Added. Implements the libmbmalloc.dylib API required
by MallocBench.

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

7 years agoUnreviewed, ARMv7 build fix after r167336.
fpizlo@apple.com [Wed, 16 Apr 2014 17:48:22 +0000 (17:48 +0000)]
Unreviewed, ARMv7 build fix after r167336.

* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::branchAdd32):

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

7 years agoMake sure to skip the RenderMultiColumnFlowThread when resolving percentage heights...
hyatt@apple.com [Wed, 16 Apr 2014 17:36:56 +0000 (17:36 +0000)]
Make sure to skip the RenderMultiColumnFlowThread when resolving percentage heights inside columns against
containing blocks. The flow thread's auto height should not interfere if a fixed height is specified on
an ancestor.

https://bugs.webkit.org/show_bug.cgi?id=131741

Reviewed by Simon Fraser.

Source/WebCore:
Added fast/multicol/percent-height.html.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
Add an isInFlowRenderFlowThread check so that we skip those blocks and don't consider them at all
when resolving percentage heights.

LayoutTests:
* fast/multicol/percent-height-expected.html: Added.
* fast/multicol/percent-height.html: Added.

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

7 years ago[WinCairo][cURL] Build fix for WinCairo build with USE(CURL).
commit-queue@webkit.org [Wed, 16 Apr 2014 17:24:10 +0000 (17:24 +0000)]
[WinCairo][cURL] Build fix for WinCairo build with USE(CURL).
https://bugs.webkit.org/show_bug.cgi?id=131614

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2014-04-16
Reviewed by Brent Fulgham.

Build fix, no new tests needed.

* platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::loadResponseHeaders):
* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::loadIndex):
* platform/network/soup/ResourceError.h:
* platform/network/soup/SocketStreamHandle.h:

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

7 years agoASSERTION FAILED: x2 >= x1 in WebCore::RenderObject::drawLineForBoxSide
commit-queue@webkit.org [Wed, 16 Apr 2014 17:19:23 +0000 (17:19 +0000)]
ASSERTION FAILED: x2 >= x1 in WebCore::RenderObject::drawLineForBoxSide
https://bugs.webkit.org/show_bug.cgi?id=127835

Source/WebCore:
In some cases when a negative margin and a positive padding are applied
together to the right and/or left side of the box, the logical width of
the borders can be set to a negative value, making the assertion fire.
The fix checks if the width or height of the box is negative, and if so,
it will not display the borders and shadows of the box.

Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-04-16
Reviewed by Darin Adler.

Test: fast/css/padding-margin-negative-border.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBorder):

LayoutTests:
Added test demonstrates four cases:
Test #1: Negative upper margin + positive upper padding
Test #2: Negative right margin + positive right padding (used to fail)
Test #3: Negative bottom margin + positive bottom padding
Test #4: Negative left margin + positive left padding (used to fail)

Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-04-16
Reviewed by Darin Adler.

* fast/css/padding-margin-negative-border-expected.html: Added.
* fast/css/padding-margin-negative-border.html: Added.

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

7 years agocheck-webkit-style doesn't check code style in .mm or .m files
timothy_horton@apple.com [Wed, 16 Apr 2014 17:17:11 +0000 (17:17 +0000)]
check-webkit-style doesn't check code style in .mm or .m files
https://bugs.webkit.org/show_bug.cgi?id=131708

Reviewed by Darin Adler.

* Scripts/webkitpy/style/checker.py:
* Scripts/webkitpy/style/checker_unittest.py:
(CheckerDispatcherDispatchTest.test_cpp_paths):
(CheckerDispatcherDispatchTest.test_text_paths):
Check .mm and .m files as C++.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_spacing):
Add an override for our ordinary "missing spaces around =" for @synthesize,
which should look like "@synthesize propertyName=_varName;"

Add an override for "missing space before {" for blocks' "^{".

Don't follow the "extra space before [" rule for Objective-C, because
it breaks this rule in a multitude of ways because of method calls.

(check_braces):
Don't complain about { not being on the end of the previous line if
the previous line starts with "- (" or "+ (", which would indicate a
Objective-C method definition.

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

7 years ago[MSE] Seeks into buffered ranges will never complete.
jer.noble@apple.com [Wed, 16 Apr 2014 16:52:31 +0000 (16:52 +0000)]
[MSE] Seeks into buffered ranges will never complete.
https://bugs.webkit.org/show_bug.cgi?id=131717

Reviewed by Eric Carlson.

Source/WebCore:
Test: media/media-source/media-source-seek-complete.html

Run the SourceBuffer Monitoring step after initiating a seek.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):

LayoutTests:
* media/media-source/media-source-seek-complete-expected.txt: Added.
* media/media-source/media-source-seek-complete.html: Added.

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

7 years agoMake Vector::takeLast work with move-only types (and optimize for types where move...
darin@apple.com [Wed, 16 Apr 2014 16:51:17 +0000 (16:51 +0000)]
Make Vector::takeLast work with move-only types (and optimize for types where move is faster)
https://bugs.webkit.org/show_bug.cgi?id=131735

Reviewed by Alexey Proskuryakov.

Source/WTF:
* wtf/Vector.h:
(WTF::Vector::takeLast): Added a missing std::move. All the other take functions have it.

Tools:
* TestWebKitAPI/Tests/WTF/Vector.cpp: Added a test for Vector::takeLast with move only types.
Fixed invocations of EXPECT macros so the expected value is on the left, and the test result
is on the right. This can be confusing since our JavaScript test framework does it the opposite
way, but gtest works better this way.

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

7 years agoUnreviewed, ARM64 buildfix after r167336.
rgabor@webkit.org [Wed, 16 Apr 2014 14:24:51 +0000 (14:24 +0000)]
Unreviewed, ARM64 buildfix after r167336.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::branchAdd32): Add missing function.

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

7 years ago[EFL] Cleanup the build from unused parameters in WebKit-efl.
commit-queue@webkit.org [Wed, 16 Apr 2014 12:25:39 +0000 (12:25 +0000)]
[EFL] Cleanup the build from unused parameters in WebKit-efl.
https://bugs.webkit.org/show_bug.cgi?id=131677.

Patch by Jeongeun Kim <je_julie.kim@samsung.com> on 2014-04-16
Reviewed by Gyuyoung Kim.

Changed ASSERT to ASSERT_UNUSED if it's just used for ASSERT.

* ewk/ewk_view.cpp:
(ewk_view_scroll):

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

7 years agoUnreviewed EFL gardening. Some test modules come to crash since buildbot uses
gyuyoung.kim@samsung.com [Wed, 16 Apr 2014 11:26:55 +0000 (11:26 +0000)]
Unreviewed EFL gardening. Some test modules come to crash since buildbot uses
Ubuntu 13.10. Skip those crash modules for now.

* platform/efl-wk2/TestExpectations:

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

7 years agoREGRESSION(r166779): [GTK] Printing doesn't work since r166779
carlosgc@webkit.org [Wed, 16 Apr 2014 10:19:59 +0000 (10:19 +0000)]
REGRESSION(r166779): [GTK] Printing doesn't work since r166779
https://bugs.webkit.org/show_bug.cgi?id=131725

Reviewed by Philippe Normand.

* Source/cmake/OptionsGTK.cmake: Check GTK_UNIX_PRINT_FOUND
instead of GTK_UNIX_PRINTING_FOUND and set the macro
HAVE_GTK_UNIX_PRINTING to 1 when found.

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

7 years ago[Cocoa] Add a form delegate method corresponding to willSubmitForm
mitz@apple.com [Wed, 16 Apr 2014 05:16:36 +0000 (05:16 +0000)]
[Cocoa] Add a form delegate method corresponding to willSubmitForm
https://bugs.webkit.org/show_bug.cgi?id=131718

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setFormDelegate:]): Changed to define and create a FormClient (which derives
from API::FormClient and messages a delegate), and set it as the form client.

* UIProcess/API/Cocoa/_WKFormDelegate.h: Declared new delegate method.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added a
variant of willSubmitForm that returs a user object to pass to the delegate in the UI
process, giving it a temporary name with “new”.

* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Changed willSubmitForm()
to check for the new bundle delegate method first and encode the user object as user data.
Moved the encoding of an NSObject <NSSecureCoding> as user data into a helper function.

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

7 years ago[EFL] Fix problems with the pixel dump.
commit-queue@webkit.org [Wed, 16 Apr 2014 03:45:28 +0000 (03:45 +0000)]
[EFL] Fix problems with the pixel dump.
https://bugs.webkit.org/show_bug.cgi?id=131265

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-04-15
Reviewed by Gyuyoung Kim.

Painting and compositing paths of WebKit-EFL were totally modified from r166768.
However pixel dump codes still call deprecated functions like ewk_view_paint(),
which causes that nothing is drawn.

This patch adds new member functions to AcceleratedCompositingContext to support pixel dump.
One of new functions is AcceleratedCompositingContext::extractImageData(),
which replaces deprecated function calls. Besides the extractImageData() is invoked by
ewk_view_screenshot_contents_get() in order to take the visible content displayed on the EFL webview.

Source/WebCore:
* platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::flipImageSurfaceVertically): Flip pixel data of given cairo_surface_t vertically up/down.
Whereas Cairo uses the top-left corner as being 0,0 of the coordinate system,
OpenGL uses the bottom-left corner being 0,0.
So we need to vertically flip resultant images taken by glReadPixels().
* platform/graphics/cairo/CairoUtilities.h:

Source/WebKit/efl:
* WebCoreSupport/AcceleratedCompositingContextEfl.cpp:
(WebCore::AcceleratedCompositingContext::AcceleratedCompositingContext):
Create TextureMapper with a proper backend.
(WebCore::AcceleratedCompositingContext::flushPendingLayerChanges):
Revise a null check for m_rootLayer.
(WebCore::AcceleratedCompositingContext::paintToGraphicsContext):
Remove a creation check for TextureMapperGL.
(WebCore::AcceleratedCompositingContext::paintToCurrentGLContext):
Ditto.
(WebCore::AcceleratedCompositingContext::extractImageData):
Extract image data from the view and copy it to given Evas_Object.
(WebCore::AcceleratedCompositingContext::getImageData):
Get image data from the view and return it as cairo_surface_t on software mode.
(WebCore::AcceleratedCompositingContext::getImageDataGL):
Get image data from the view and return it as cairo_surface_t on GL mode.
* WebCoreSupport/AcceleratedCompositingContextEfl.h:
* WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
(DumpRenderTreeSupportEfl::forcePaint): Repaint the entire webview before pixel dump.
* WebCoreSupport/DumpRenderTreeSupportEfl.h:
* ewk/ewk_view.cpp:
(ewk_view_mark_for_sync): Remove an unnecessary line.
(ewk_view_force_paint): Call flushAndRenderLayers().
(ewk_view_screenshot_contents_get): Remove 'scale' parameter and replace ewk_view_paint()
with AcceleratedCompositingContext::extractImageData().
* ewk/ewk_view.h:
* ewk/ewk_view_private.h:
* tests/test_ewk_view.cpp:
(TEST_F):

Tools:
* DumpRenderTree/efl/PixelDumpSupportEfl.cpp:
(createBitmapContextFromWebView): Add to call DumpRenderTreeSupportEfl::forcePaint().

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

7 years agoUnreviewed, add the obvious thing that marks MakeRope as exiting since it can exit.
fpizlo@apple.com [Wed, 16 Apr 2014 02:42:22 +0000 (02:42 +0000)]
Unreviewed, add the obvious thing that marks MakeRope as exiting since it can exit.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

7 years agoMake page overlay functionality working on coordinated graphics.
commit-queue@webkit.org [Wed, 16 Apr 2014 02:04:01 +0000 (02:04 +0000)]
Make page overlay functionality working on coordinated graphics.
https://bugs.webkit.org/show_bug.cgi?id=131425

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-04-15
Reviewed by Darin Adler.

Page overlay functionality did not work on coordinated graphics since r166975.
This patch removes deprecated code related to the PageOverlay GraphicsLayer management.
and makes CoordinatedLayerTreeHost use PageOverlayController.

Source/WebCore:
* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::setRootCompositingLayer):
(WebCore::CompositingCoordinator::flushPendingLayerChanges):
* platform/graphics/texmap/coordinated/CompositingCoordinator.h:

Source/WebKit2:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged):
(WebKit::CoordinatedDrawingArea::didInstallPageOverlay): Deleted.
(WebKit::CoordinatedDrawingArea::didUninstallPageOverlay): Deleted.
(WebKit::CoordinatedDrawingArea::setPageOverlayNeedsDisplay): Deleted.
(WebKit::CoordinatedDrawingArea::setPageOverlayOpacity): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::CoordinatedLayerTreeHost::didInstallPageOverlay): Deleted.
(WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay): Deleted.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayNeedsDisplay): Deleted.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayOpacity): Deleted.
(WebKit::CoordinatedLayerTreeHost::createPageOverlayLayer): Deleted.
(WebKit::CoordinatedLayerTreeHost::destroyPageOverlayLayer): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::didInstallPageOverlay):
(WebKit::LayerTreeHost::didUninstallPageOverlay):
(WebKit::LayerTreeHost::setPageOverlayNeedsDisplay):

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

7 years agoSnapshotted plugins may need to be restarted if style properties are changed after...
roger_fong@apple.com [Wed, 16 Apr 2014 00:26:11 +0000 (00:26 +0000)]
Snapshotted plugins may need to be restarted if style properties are changed after initial load of plugin.
https://bugs.webkit.org/show_bug.cgi?id=131553.
<rdar://problem/15443375>

Reviewed by Timothy Horton.

Test: plugins/snapshotting/set-plugin-size-to-tiny.html

When updating embedded objects during our post layout checks, check for certain style changes
that may result in the plugin needing to be restarted.

* html/HTMLPlugInImageElement.h:
Add m_plugInDimensionsSpecified field to keep track of whether or not dimensions on the plugin’s renderer have been specified.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
Initialize m_plugInDimensionsSpecified.
(WebCore::isSmallerThanTinySizingThreshold):
Refactoring, move check for whether or not plugin is smaller than the tiny plugin size threshold to this method.
(WebCore::HTMLPlugInImageElement::isTopLevelFullPage):
Refactoring, move check for whether or not plugin is top level full page to this method.
(WebCore::HTMLPlugInImageElement::checkSnapshotStatus):
Use refactored checks here as well to determine whether or not we need to restart the snapshotted plugin.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use refactored checks.
If plugin dimensions were specified, set m_plugInDimensionsSpecified to true.
* platform/mac-wk2/plugins/snapshotting/set-plugin-size-to-tiny-expected.txt: Added.
* plugins/snapshotting/set-plugin-size-to-tiny.html: Added.

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

7 years ago[iOS WebKit2] Listen for system memory pressure notifications.
akling@apple.com [Wed, 16 Apr 2014 00:01:33 +0000 (00:01 +0000)]
[iOS WebKit2] Listen for system memory pressure notifications.
<https://webkit.org/b/131653>
<rdar://problem/16208123>

Reviewed by Antti Koivisto.

* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::install):

    Use the right invocation to summon the memory pressure handler.

(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::uninstall):
(WebCore::MemoryPressureHandler::holdOff):
(WebCore::MemoryPressureHandler::respondToMemoryPressure):

    Make stubbed out functions !PLATFORM(COCOA)

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

7 years agoUpdate LLVM binary drops for Mountain Lion to LLVM r206312.
fpizlo@apple.com [Wed, 16 Apr 2014 00:01:06 +0000 (00:01 +0000)]
Update LLVM binary drops for Mountain Lion to LLVM r206312.

Rubber stamped by Geoffrey Garen.

* LLVMIncludesMountainLion.tar.bz2:
* LLVMLibrariesMountainLion.tar.bz2:

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

7 years agocompileMakeRope does not emit necessary bounds checks
fpizlo@apple.com [Tue, 15 Apr 2014 23:33:11 +0000 (23:33 +0000)]
compileMakeRope does not emit necessary bounds checks
https://bugs.webkit.org/show_bug.cgi?id=130684
<rdar://problem/16398388>

Reviewed by Oliver Hunt.

Add string length bounds checks in a bunch of places. We should never allow a string
to have a length greater than 2^31-1 because it's not clear that the language has
semantics for it and because there is code that assumes that this cannot happen.

Also add a bunch of tests to that effect to cover the various ways in which this was
previously allowed to happen.

* dfg/DFGOperations.cpp:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileMakeRope):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileMakeRope):
* runtime/JSString.cpp:
(JSC::JSRopeString::RopeBuilder::expand):
* runtime/JSString.h:
(JSC::JSString::create):
(JSC::JSRopeString::RopeBuilder::append):
(JSC::JSRopeString::RopeBuilder::release):
(JSC::JSRopeString::append):
* runtime/Operations.h:
(JSC::jsString):
(JSC::jsStringFromRegisterArray):
(JSC::jsStringFromArguments):
* runtime/StringPrototype.cpp:
(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSubstring):
(JSC::stringProtoFuncToLowerCase):
* tests/stress/make-large-string-jit-strcat.js: Added.
(foo):
* tests/stress/make-large-string-jit.js: Added.
(foo):
* tests/stress/make-large-string-strcat.js: Added.
* tests/stress/make-large-string.js: Added.

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

7 years ago[New Multicolumn] Add support for column-span:all
hyatt@apple.com [Tue, 15 Apr 2014 23:25:58 +0000 (23:25 +0000)]
[New Multicolumn] Add support for column-span:all
https://bugs.webkit.org/show_bug.cgi?id=129330

Patch by Morten Stenshorne <mstensho@opera.com> on 2014-04-14
Reviewed by Dave Hyatt.

Source/WebCore:
Column spanners are implemented as siblings of RenderMultiColumnSet
objects (i.e. the regions for the column rows). This means that they
are pulled out from the flow thread tree where they would otherwise
live. This causes some complexity, most of which is contained within
the multicol code.

A placeholder is put in the flow thread tree where the spanner's
renderer would otherwise live. This is needed in order make sure that
we interrupt line layout before after the spanner. We also need this
to be able to switch from one multicol set to the next.

Some extra logic is required when dynamically inserting and removing
flow thread descendants now, because we need to figure out if the
renderer added should trigger creation of new multi column sets. If
a spanner is inserted in the middle of a multi column set, we need to
detect this, split the set and put the spanner in the middle.

Wrote a bunch of tests. A few of the tests were copied from existing
(old-impl) tests and put in a separate directory. That directory can
be wiped when we turn on the new multicol implementation by default.

Tests: fast/multicol/newmulticol/adjacent-spanners.html
       fast/multicol/newmulticol/block-becomes-spanner.html
       fast/multicol/newmulticol/change-spanner-display.html
       fast/multicol/newmulticol/change-spanner-parent-display.html
       fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html
       fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html
       fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html
       fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html
       fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html
       fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html
       fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html
       fast/multicol/newmulticol/insert-row-content1.html
       fast/multicol/newmulticol/insert-row-content2.html
       fast/multicol/newmulticol/insert-row-content3.html
       fast/multicol/newmulticol/insert-row-content4.html
       fast/multicol/newmulticol/insert-row-content5.html
       fast/multicol/newmulticol/insert-row-content6.html
       fast/multicol/newmulticol/insert-row-content7.html
       fast/multicol/newmulticol/insert-row-content8.html
       fast/multicol/newmulticol/insert-row-content9.html
       fast/multicol/newmulticol/insert-spanner-child1.html
       fast/multicol/newmulticol/insert-spanner-child2.html
       fast/multicol/newmulticol/insert-spanner-child3.html
       fast/multicol/newmulticol/insert-spanner1.html
       fast/multicol/newmulticol/insert-spanner2.html
       fast/multicol/newmulticol/insert-spanner3.html
       fast/multicol/newmulticol/insert-spanner4.html
       fast/multicol/newmulticol/insert-spanner5.html
       fast/multicol/newmulticol/insert-spanner6.html
       fast/multicol/newmulticol/insert-spanner7.html
       fast/multicol/newmulticol/insert-spanner8.html
       fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html
       fast/multicol/newmulticol/remove-row-content1.html
       fast/multicol/newmulticol/remove-row-content2.html
       fast/multicol/newmulticol/remove-row-content3.html
       fast/multicol/newmulticol/remove-row-content4.html
       fast/multicol/newmulticol/remove-row-content5.html
       fast/multicol/newmulticol/remove-row-content6.html
       fast/multicol/newmulticol/remove-row-content7.html
       fast/multicol/newmulticol/remove-row-content8.html
       fast/multicol/newmulticol/remove-row-content9.html
       fast/multicol/newmulticol/remove-spanner1.html
       fast/multicol/newmulticol/remove-spanner2.html
       fast/multicol/newmulticol/remove-spanner3.html
       fast/multicol/newmulticol/remove-spanner4.html
       fast/multicol/newmulticol/remove-spanner5.html
       fast/multicol/newmulticol/remove-spanner6.html
       fast/multicol/newmulticol/sole-spanner.html
       fast/multicol/newmulticol/span-between-text.html
       fast/multicol/newmulticol/spanner-becomes-regular-block.html
       fast/multicol/newmulticol/spanner-first.html
       fast/multicol/newmulticol/spanner-img.html
       fast/multicol/newmulticol/spanner-inline-block.html
       fast/multicol/newmulticol/spanner-last.html
       fast/multicol/newmulticol/spanner-nested-dynamic.html
       fast/multicol/newmulticol/spanner-nested.html
       fast/multicol/newmulticol/spanner-pseudo-after1.html
       fast/multicol/newmulticol/spanner-pseudo-after2.html
       fast/multicol/newmulticol/spanner-pseudo-after3.html
       fast/multicol/newmulticol/spanner-pseudo-after4.html
       fast/multicol/newmulticol/spanner-pseudo-before-after1.html
       fast/multicol/newmulticol/spanner-pseudo-before-after2.html
       fast/multicol/newmulticol/spanner-pseudo-before-after3.html
       fast/multicol/newmulticol/spanner-pseudo-before-after4.html
       fast/multicol/newmulticol/spanner-pseudo-before1.html
       fast/multicol/newmulticol/spanner-pseudo-before2.html
       fast/multicol/newmulticol/spanner-pseudo-before3.html
       fast/multicol/newmulticol/spanner-pseudo-before4.html
       fast/multicol/newmulticol/spanner-table.html
       fast/multicol/newmulticol/spanner-with-margin.html
       fast/multicol/newmulticol/spanner1.html
       fast/multicol/newmulticol/spanner2.html
       fast/multicol/newmulticol/spanner3.html
       fast/multicol/newmulticol/spanner4.html
       fast/multicol/newmulticol/spanner5.html
       fast/multicol/newmulticol/spanner6.html
       fast/multicol/newmulticol/spanner7.html
       fast/multicol/newmulticol/spanner8.html
       fast/multicol/newmulticol/spanner9.html
       fast/multicol/newmulticol/trailing-margin-with-spanner.html
       fast/multicol/newmulticol/trailing-margin-with-spanner2.html

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
Disable the old anonymous multicol container and spanner anonymous
block generation machinery when the new multicol implementation is
enabled.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createMultiColumnFlowThread):
(WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
(WebCore::RenderBlockFlow::layoutBlockChild): Need to notify the
flow thread when a descendant's final position is known. Spanner
placeholders need to know where to terminate the column set that
it follows.
(WebCore::RenderBlockFlow::styleDidChange): Remove old code that
isn't needed anymore. The renderers in question (flow thread and
column sets) set display:block on themselves already. This code
caused problems for spanners, which got all their style wiped.
(WebCore::RenderBlockFlow::setMultiColumnFlowThread): If setting
the flow thread to nullptr, there's no need to create the "rare
data" structure.
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
(WebCore::RenderBlockFlow::addChild): beforeChild is retrieved via
the DOM. If it is a spanner, we need to locate the placeholder
here, because that's the correct location to insert siblings,
DOM-wise.
(WebCore::RenderBlockFlow::removeChild): The multicol flow thread
needs to know when children disappear.
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
Don't modify the height back and forth when calculating the
multicol container's final height, as that messes up balancing.
(WebCore::RenderBlockFlow::insertedIntoTree): Deleted.
(WebCore::RenderBlockFlow::willBeDestroyed): Deleted.
(WebCore::RenderBlockFlow::styleWillChange): Deleted.
(WebCore::RenderBlockFlow::lineAtIndex): Deleted.
* rendering/RenderBlockFlow.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::insertedIntoTree): Set up an element's
layer before notifying the flow thread. The multicol flow thread
may decide to move the element (if it's a spanner), which may
involve re-insertion of layers.  Calling
RenderObject::insertedIntoTree() last instead of first also better
matches the order we used to have prior to the introduction of
RenderElement, FWIW.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::removeRegionFromThread): Deleted.
(WebCore::RenderFlowThread::invalidateRegions): Deleted.
* rendering/RenderFlowThread.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
(WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): When
a flow thread descendant is inserted, the multicol flow thread
needs to be notified.
(WebCore::RenderMultiColumnFlowThread::firstMultiColumnSet):
(WebCore::RenderMultiColumnFlowThread::lastMultiColumnSet):
(WebCore::RenderMultiColumnFlowThread::firstColumnSetOrSpanner):
(WebCore::RenderMultiColumnFlowThread::nextColumnSetOrSpannerSiblingOf):
(WebCore::RenderMultiColumnFlowThread::previousColumnSetOrSpannerSiblingOf):
(WebCore::RenderMultiColumnFlowThread::layout):
(WebCore::RenderMultiColumnFlowThread::findSetRendering):
(WebCore::RenderMultiColumnFlowThread::populate):
(WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlowThread::addRegionToThread):
(WebCore::RenderMultiColumnFlowThread::willBeRemovedFromTree):
Need to detach column sets here, since they have pointers to their
flow thread.
(WebCore::RenderMultiColumnFlowThread::resolveMovedChild):
(WebCore::isValidColumnSpanner):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
(WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantBoxLaidOut):
(WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
Nothing to be done here for the time being. Column sets are now
created during box creation. We are going to need to add some code
here again once multicol properly supports nested fragmentation
contexts (and you get adjacent column rows because of that).
(WebCore::RenderMultiColumnFlowThread::regionAtBlockOffset):
During layout, don't trust the region interval tree, as that one
depends on the resulting layout.
(WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox): With
a convenience method to get the last column set, and column sets
now being created during normal box creation, this young method
needs an overhaul.
(WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox):
(WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::nextSiblingMultiColumnSet):
(WebCore::RenderMultiColumnSet::previousSiblingMultiColumnSet):
(WebCore::RenderMultiColumnSet::firstRendererInFlowThread):
(WebCore::RenderMultiColumnSet::lastRendererInFlowThread):
(WebCore::precedesRenderer):
(WebCore::RenderMultiColumnSet::containsRendererInFlowThread):
(WebCore::RenderMultiColumnSet::setLogicalTopInFlowThread):
(WebCore::RenderMultiColumnSet::setLogicalBottomInFlowThread):
(WebCore::RenderMultiColumnSet::pageLogicalTopForOffset):
(WebCore::RenderMultiColumnSet::distributeImplicitBreaks):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::addForcedBreak):
(WebCore::RenderMultiColumnSet::recalculateColumnHeight):
Previously only needed if columns were to be balanced, now it's
also needed when not balancing.
(WebCore::RenderMultiColumnSet::recordSpaceShortage): Some layout
elements actually have 0 height. Skip them, since they're not
taking us anywhere.
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
(WebCore::RenderMultiColumnSet::requiresBalancing): Column sets
now have individual balancing needs. If they precede a spanner,
they must always be balanced. For the last column set, see if
height is unspecified or column-fill is 'balance' (like before).
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::beginFlow):
(WebCore::RenderMultiColumnSet::endFlow):
(WebCore::RenderMultiColumnSet::layout):
(WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
(WebCore::RenderMultiColumnSet::columnRectAt):
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
(WebCore::RenderMultiColumnSet::paintColumnRules):
(WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
(WebCore::RenderMultiColumnSet::collectLayerFragments):
(WebCore::RenderMultiColumnSet::columnTranslationForOffset):
(WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight): Deleted.
(WebCore::RenderMultiColumnSet::findRunWithTallestColumns): Deleted.
(WebCore::RenderMultiColumnSet::clearForcedBreaks): Deleted.
(WebCore::RenderMultiColumnSet::repaintFlowThreadContent): Deleted.
* rendering/RenderMultiColumnSet.h:
* rendering/RenderMultiColumnSpannerPlaceholder.cpp: Added.
(WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):
(WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
(WebCore::RenderMultiColumnSpannerPlaceholder::renderName):
* rendering/RenderMultiColumnSpannerPlaceholder.h: Added.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::insertedIntoTree): Need to notify the
multicol flow thread when descendants are inserted. That may
trigger insertion of column sets, or, in the case of spanners,
they need to be moved out from the flow thread.
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMultiColumnSpannerPlaceholder):
(WebCore::RenderObject::isAnonymousBlock): Exclude column sets
here, so that they don't get involved in anonymous block merging
and other kinds of fun.
* rendering/RenderRegion.h:
* rendering/RenderRegionSet.h:

LayoutTests:
Wrote a bunch of tests. A few of the tests were copied from existing
(old-impl) tests and put in a separate directory. That directory can
be wiped when we turn on the new multicol implementation by default.

* fast/multicol/newmulticol/adjacent-spanners-expected.html: Added.
* fast/multicol/newmulticol/adjacent-spanners.html: Added.
* fast/multicol/newmulticol/block-becomes-spanner-expected.html: Added.
* fast/multicol/newmulticol/block-becomes-spanner.html: Added.
* fast/multicol/newmulticol/change-spanner-display-expected.html: Added.
* fast/multicol/newmulticol/change-spanner-display.html: Added.
* fast/multicol/newmulticol/change-spanner-parent-display-expected.html: Added.
* fast/multicol/newmulticol/change-spanner-parent-display.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-summary-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/continuation-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child-expected.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html: Added.
* fast/multicol/newmulticol/insert-row-content1-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content1.html: Added.
* fast/multicol/newmulticol/insert-row-content2-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content2.html: Added.
* fast/multicol/newmulticol/insert-row-content3-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content3.html: Added.
* fast/multicol/newmulticol/insert-row-content4-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content4.html: Added.
* fast/multicol/newmulticol/insert-row-content5-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content5.html: Added.
* fast/multicol/newmulticol/insert-row-content6-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content6.html: Added.
* fast/multicol/newmulticol/insert-row-content7-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content7.html: Added.
* fast/multicol/newmulticol/insert-row-content8-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content8.html: Added.
* fast/multicol/newmulticol/insert-row-content9-expected.html: Added.
* fast/multicol/newmulticol/insert-row-content9.html: Added.
* fast/multicol/newmulticol/insert-spanner-child1-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner-child1.html: Added.
* fast/multicol/newmulticol/insert-spanner-child2-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner-child2.html: Added.
* fast/multicol/newmulticol/insert-spanner-child3-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner-child3.html: Added.
* fast/multicol/newmulticol/insert-spanner1-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner1.html: Added.
* fast/multicol/newmulticol/insert-spanner2-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner2.html: Added.
* fast/multicol/newmulticol/insert-spanner3-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner3.html: Added.
* fast/multicol/newmulticol/insert-spanner4-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner4.html: Added.
* fast/multicol/newmulticol/insert-spanner5-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner5.html: Added.
* fast/multicol/newmulticol/insert-spanner6-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner6.html: Added.
* fast/multicol/newmulticol/insert-spanner7-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner7.html: Added.
* fast/multicol/newmulticol/insert-spanner8-expected.html: Added.
* fast/multicol/newmulticol/insert-spanner8.html: Added.
* fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block-expected.html: Added.
* fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html: Added.
* fast/multicol/newmulticol/remove-row-content1-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content1.html: Added.
* fast/multicol/newmulticol/remove-row-content2-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content2.html: Added.
* fast/multicol/newmulticol/remove-row-content3-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content3.html: Added.
* fast/multicol/newmulticol/remove-row-content4-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content4.html: Added.
* fast/multicol/newmulticol/remove-row-content5-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content5.html: Added.
* fast/multicol/newmulticol/remove-row-content6-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content6.html: Added.
* fast/multicol/newmulticol/remove-row-content7-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content7.html: Added.
* fast/multicol/newmulticol/remove-row-content8-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content8.html: Added.
* fast/multicol/newmulticol/remove-row-content9-expected.html: Added.
* fast/multicol/newmulticol/remove-row-content9.html: Added.
* fast/multicol/newmulticol/remove-spanner1-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner1.html: Added.
* fast/multicol/newmulticol/remove-spanner2-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner2.html: Added.
* fast/multicol/newmulticol/remove-spanner3-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner3.html: Added.
* fast/multicol/newmulticol/remove-spanner4-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner4.html: Added.
* fast/multicol/newmulticol/remove-spanner5-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner5.html: Added.
* fast/multicol/newmulticol/remove-spanner6-expected.html: Added.
* fast/multicol/newmulticol/remove-spanner6.html: Added.
* fast/multicol/newmulticol/sole-spanner-expected.html: Added.
* fast/multicol/newmulticol/sole-spanner.html: Added.
* fast/multicol/newmulticol/span-between-text-expected.html: Added.
* fast/multicol/newmulticol/span-between-text.html: Added.
* fast/multicol/newmulticol/spanner-becomes-regular-block-expected.html: Added.
* fast/multicol/newmulticol/spanner-becomes-regular-block.html: Added.
* fast/multicol/newmulticol/spanner-first-expected.html: Added.
* fast/multicol/newmulticol/spanner-first.html: Added.
* fast/multicol/newmulticol/spanner-img-expected.html: Added.
* fast/multicol/newmulticol/spanner-img.html: Added.
* fast/multicol/newmulticol/spanner-inline-block-expected.html: Added.
* fast/multicol/newmulticol/spanner-inline-block.html: Added.
* fast/multicol/newmulticol/spanner-last-expected.html: Added.
* fast/multicol/newmulticol/spanner-last.html: Added.
* fast/multicol/newmulticol/spanner-nested-dynamic-expected.html: Added.
* fast/multicol/newmulticol/spanner-nested-dynamic.html: Added.
* fast/multicol/newmulticol/spanner-nested-expected.html: Added.
* fast/multicol/newmulticol/spanner-nested.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after1-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after1.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after2-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after2.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after3-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after3.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after4-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-after4.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after1-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after1.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after2-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after2.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after3-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after3.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after4-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before-after4.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before1-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before1.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before2-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before2.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before3-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before3.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before4-expected.html: Added.
* fast/multicol/newmulticol/spanner-pseudo-before4.html: Added.
* fast/multicol/newmulticol/spanner-table-expected.html: Added.
* fast/multicol/newmulticol/spanner-table.html: Added.
* fast/multicol/newmulticol/spanner-with-margin-expected.html: Added.
* fast/multicol/newmulticol/spanner-with-margin.html: Added.
* fast/multicol/newmulticol/spanner1-expected.html: Added.
* fast/multicol/newmulticol/spanner1.html: Added.
* fast/multicol/newmulticol/spanner2-expected.html: Added.
* fast/multicol/newmulticol/spanner2.html: Added.
* fast/multicol/newmulticol/spanner3-expected.html: Added.
* fast/multicol/newmulticol/spanner3.html: Added.
* fast/multicol/newmulticol/spanner4-expected.html: Added.
* fast/multicol/newmulticol/spanner4.html: Added.
* fast/multicol/newmulticol/spanner5-expected.html: Added.
* fast/multicol/newmulticol/spanner5.html: Added.
* fast/multicol/newmulticol/spanner6-expected.html: Added.
* fast/multicol/newmulticol/spanner6.html: Added.
* fast/multicol/newmulticol/spanner7-expected.html: Added.
* fast/multicol/newmulticol/spanner7.html: Added.
* fast/multicol/newmulticol/spanner8-expected.html: Added.
* fast/multicol/newmulticol/spanner8.html: Added.
* fast/multicol/newmulticol/spanner9-expected.html: Added.
* fast/multicol/newmulticol/spanner9.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner-expected.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner2-expected.html: Added.
* fast/multicol/newmulticol/trailing-margin-with-spanner2.html: Added.
* platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt: Added.

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

7 years agoTools: Update LLVM export scrpt to handle the build directory being different from the
fpizlo@apple.com [Tue, 15 Apr 2014 23:25:38 +0000 (23:25 +0000)]
Tools: Update LLVM export scrpt to handle the build directory being different from the
source directory.

Rubber stamped by Geoffrey Garen.

* Scripts/export-llvm-build:

WebKitLibraries: Add LLVM binary drops for Mavericks using LLVM r206312.

Rubber stamped by Geoffrey Garen.

* LLVMIncludesMavericks.tar.bz2: Added.
* LLVMLibrariesMavericks.tar.bz2: Added.

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

7 years agoUpdate bug number in TestExpectations file.
ap@apple.com [Tue, 15 Apr 2014 23:21:07 +0000 (23:21 +0000)]
Update bug number in TestExpectations file.

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

7 years agohttp/tests/websocket/tests/hybi/workers/close.html is flaky
ap@apple.com [Tue, 15 Apr 2014 23:19:03 +0000 (23:19 +0000)]
http/tests/websocket/tests/hybi/workers/close.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131716

* platform/mac/TestExpectations: Marking as such.

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

7 years agotransitions/cancel-transition.html is very flaky on Mac
ap@apple.com [Tue, 15 Apr 2014 23:15:24 +0000 (23:15 +0000)]
transitions/cancel-transition.html is very flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=131715

* platform/mac/TestExpectations: Marking as such.

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

7 years agoIntroduce API::FormClient
mitz@apple.com [Tue, 15 Apr 2014 23:05:28 +0000 (23:05 +0000)]
Introduce API::FormClient
https://bugs.webkit.org/show_bug.cgi?id=131714

Reviewed by Tim Horton.

* UIProcess/API/APIFormClient.h: Added.
(API::FormClient::~FormClient):
(API::FormClient::willSubmitForm):

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageFormClient): Changed to create a WebFormClient and call
WebPageProxy::setFormClient.

* UIProcess/WebFormClient.cpp:
(WebKit::WebFormClient::WebFormClient): Added a constructor from WKPageFormClientBase.
* UIProcess/WebFormClient.h: Added inheritance from API::FormClient, marked overrides as
such.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Initialize m_formClient member.
(WebKit::WebPageProxy::setFormClient): Added. Updates m_formClient.
(WebKit::WebPageProxy::close): Updated code to clear m_formClient.
(WebKit::WebPageProxy::willSubmitForm): Updated for type change.
(WebKit::WebPageProxy::initializeFormClient): Deleted.
* UIProcess/WebPageProxy.h:

* WebKit2.xcodeproj/project.pbxproj: Added reference to new file.

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

7 years agoRemove invalid sh4 specific code in JITInlines header.
commit-queue@webkit.org [Tue, 15 Apr 2014 22:36:30 +0000 (22:36 +0000)]
Remove invalid sh4 specific code in JITInlines header.
https://bugs.webkit.org/show_bug.cgi?id=131692

Patch by Julien Brianceau <jbriance@cisco.com> on 2014-04-15
Reviewed by Geoffrey Garen.

* jit/JITInlines.h:
(JSC::JIT::callOperation): Prototype is not F_JITOperation_EJJZ
anymore since r160244, so the sh4 specific code is invalid now
and has to be removed.

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

7 years agoFix precedence issue in JSCell:setRemembered
mhahnenberg@apple.com [Tue, 15 Apr 2014 21:50:38 +0000 (21:50 +0000)]
Fix precedence issue in JSCell:setRemembered

Rubber stamped by Filip Pizlo.

* runtime/JSCell.h:
(JSC::JSCell::setRemembered):

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

7 years agoUpdate the hyperlink to waterfall views of perf bots on build.webkit.org
rniwa@webkit.org [Tue, 15 Apr 2014 21:37:36 +0000 (21:37 +0000)]
Update the hyperlink to waterfall views of perf bots on build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=131695

Reviewed by Antti Koivisto.

Updated.

* BuildSlaveSupport/build.webkit.org-config/templates/root.html:

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

7 years agoObjective-C API external object graphs don't handle generational collection properly
mhahnenberg@apple.com [Tue, 15 Apr 2014 21:05:09 +0000 (21:05 +0000)]
Objective-C API external object graphs don't handle generational collection properly
https://bugs.webkit.org/show_bug.cgi?id=131634

Reviewed by Geoffrey Garen.

If the set of Objective-C objects transitively reachable through an object changes, we
need to update the set of opaque roots accordingly. If we don't, the next EdenCollection
won't rescan the external object graph, which would lead us to consider a newly allocated
JSManagedValue to be dead.

* API/JSBase.cpp:
(JSSynchronousEdenCollectForDebugging):
* API/JSVirtualMachine.mm:
(-[JSVirtualMachine initWithContextGroupRef:]):
(-[JSVirtualMachine dealloc]):
(-[JSVirtualMachine isOldExternalObject:]):
(-[JSVirtualMachine addExternalRememberedObject:]):
(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):
(-[JSVirtualMachine externalRememberedSet]):
(scanExternalObjectGraph):
(scanExternalRememberedSet):
* API/JSVirtualMachineInternal.h:
* API/tests/testapi.mm:
* heap/Heap.cpp:
(JSC::Heap::markRoots):
* heap/Heap.h:
(JSC::Heap::slotVisitor):
* heap/SlotVisitor.h:
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::containsOpaqueRoot):
(JSC::SlotVisitor::containsOpaqueRootTriState):

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

7 years agoDFG IR should keep the data flow of doubles and int52's separate from the data flow...
fpizlo@apple.com [Tue, 15 Apr 2014 20:26:16 +0000 (20:26 +0000)]
DFG IR should keep the data flow of doubles and int52's separate from the data flow of JSValue's
https://bugs.webkit.org/show_bug.cgi?id=131423

Reviewed by Geoffrey Garen.

This introduces more static typing into DFG IR. Previously we just had the notion of
JSValues and Storage. This was weird because doubles weren't always convertible to
JSValues, and Int52s weren't always convertible to either doubles or JSValues. We would
sort of insert explicit conversion nodes just for the places where we knew that an
implicit conversion wouldn't have been possible -- but there was no hard and fast rule so
we'd get bugs from forgetting to do the right conversion.

This patch introduces a hard and fast rule: doubles can never be implicitly converted to
anything but doubles, and likewise Int52's can never be implicitly converted. Conversion
nodes are used for all of the conversions. Int52Rep, DoubleRep, and ValueRep are the
conversions. They are like Identity but return the same value using a different
representation. Likewise, constants may now be represented using either JSConstant,
Int52Constant, or DoubleConstant. UseKinds have been adjusted accordingly, as well.
Int52RepUse and DoubleRepUse are node uses that mean "the node must be of Int52 (or
Double) type". They don't imply checks. There is also DoubleRepRealUse, which means that
we speculate DoubleReal and expect Double representation.

In addition to simplifying a bunch of rules in the IR and making the IR more verifiable,
this also makes it easier to introduce optimizations in the future. It's now possible for
AI to model when/how conversion take place. For example if doing a conversion results in
NaN sanitization, then AI can model this and can allow us to sink sanitizations. That's
what https://bugs.webkit.org/show_bug.cgi?id=131419 will be all about.

This was a big change, so I had to do some interesting things, like finally get rid of
the DFG's weird variadic template macro hacks and use real C++11 variadic templates. Also
the ByteCodeParser no longer emits Identity nodes since that was always pointless.

No performance change because this mostly just rationalizes preexisting behavior.

* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/MacroAssemblerX86.h:
* bytecode/CodeBlock.cpp:
* bytecode/CodeBlock.h:
* dfg/DFGAbstractInterpreter.h:
(JSC::DFG::AbstractInterpreter::setBuiltInConstant):
(JSC::DFG::AbstractInterpreter::setConstant):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::set):
(JSC::DFG::AbstractValue::fixTypeForRepresentation):
(JSC::DFG::AbstractValue::checkConsistency):
* dfg/DFGAbstractValue.h:
* dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::propagate):
* dfg/DFGBasicBlock.h:
* dfg/DFGBasicBlockInlines.h:
(JSC::DFG::BasicBlock::appendNode):
(JSC::DFG::BasicBlock::appendNonTerminal):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::constantCSE):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::int32ToDoubleCSE): Deleted.
* dfg/DFGCapabilities.h:
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::fixupBlock):
* dfg/DFGEdge.h:
(JSC::DFG::Edge::willNotHaveCheck):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::run):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupGetAndSetLocalsInBlock):
(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixIntEdge):
(JSC::DFG::FixupPhase::attemptToMakeIntegerAdd):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
(JSC::DFG::FixupPhase::addRequiredPhantom):
(JSC::DFG::FixupPhase::addPhantomsIfNecessary):
(JSC::DFG::FixupPhase::clearPhantomsAtEnd):
(JSC::DFG::FixupPhase::fixupSetLocalsInBlock): Deleted.
* dfg/DFGFlushFormat.h:
(JSC::DFG::resultFor):
(JSC::DFG::useKindFor):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::addNode):
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::initialize):
* dfg/DFGInsertionSet.h:
(JSC::DFG::InsertionSet::insertNode):
(JSC::DFG::InsertionSet::insertConstant):
(JSC::DFG::InsertionSet::insertConstantForUse):
* dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::insertAdd):
(JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd):
* dfg/DFGNode.cpp:
(JSC::DFG::Node::convertToIdentity):
(WTF::printInternal):
* dfg/DFGNode.h:
(JSC::DFG::Node::Node):
(JSC::DFG::Node::setResult):
(JSC::DFG::Node::result):
(JSC::DFG::Node::isConstant):
(JSC::DFG::Node::hasConstant):
(JSC::DFG::Node::convertToConstant):
(JSC::DFG::Node::valueOfJSConstant):
(JSC::DFG::Node::hasResult):
(JSC::DFG::Node::hasInt32Result):
(JSC::DFG::Node::hasInt52Result):
(JSC::DFG::Node::hasNumberResult):
(JSC::DFG::Node::hasDoubleResult):
(JSC::DFG::Node::hasJSResult):
(JSC::DFG::Node::hasBooleanResult):
(JSC::DFG::Node::hasStorageResult):
(JSC::DFG::Node::defaultUseKind):
(JSC::DFG::Node::defaultEdge):
(JSC::DFG::Node::convertToIdentity): Deleted.
* dfg/DFGNodeFlags.cpp:
(JSC::DFG::dumpNodeFlags):
* dfg/DFGNodeFlags.h:
(JSC::DFG::canonicalResultRepresentation):
* dfg/DFGNodeType.h:
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGResurrectionForValidationPhase.cpp:
(JSC::DFG::ResurrectionForValidationPhase::run):
* dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
(JSC::DFG::SpeculativeJIT::silentSavePlanForFPR):
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::JSValueRegsTemporary::JSValueRegsTemporary):
(JSC::DFG::JSValueRegsTemporary::~JSValueRegsTemporary):
(JSC::DFG::JSValueRegsTemporary::regs):
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::compileValueRep):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileAdd):
(JSC::DFG::SpeculativeJIT::compileArithSub):
(JSC::DFG::SpeculativeJIT::compileArithNegate):
(JSC::DFG::SpeculativeJIT::compileArithMul):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::compileInt32ToDouble): Deleted.
(JSC::DFG::SpeculativeJIT::speculateMachineInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateRealNumber): Deleted.
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::allocate):
(JSC::DFG::SpeculativeJIT::use):
(JSC::DFG::SpeculativeJIT::boxDouble):
(JSC::DFG::SpeculativeJIT::spill):
(JSC::DFG::SpeculativeJIT::jsValueResult):
(JSC::DFG::SpeculateInt52Operand::SpeculateInt52Operand):
(JSC::DFG::SpeculateStrictInt52Operand::SpeculateStrictInt52Operand):
(JSC::DFG::SpeculateWhicheverInt52Operand::SpeculateWhicheverInt52Operand):
(JSC::DFG::SpeculateDoubleOperand::SpeculateDoubleOperand):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertToDouble): Deleted.
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertToDouble): Deleted.
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
* dfg/DFGUseKind.cpp:
(WTF::printInternal):
* dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::shouldNotHaveTypeCheck):
(JSC::DFG::mayHaveTypeCheck):
(JSC::DFG::isNumerical):
(JSC::DFG::isDouble):
(JSC::DFG::isCell):
(JSC::DFG::usesStructure):
(JSC::DFG::useKindForResult):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validate):
* dfg/DFGVariadicFunction.h: Removed.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::createPhiVariables):
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileUpsilon):
(JSC::FTL::LowerDFGToLLVM::compilePhi):
(JSC::FTL::LowerDFGToLLVM::compileDoubleConstant):
(JSC::FTL::LowerDFGToLLVM::compileInt52Constant):
(JSC::FTL::LowerDFGToLLVM::compileWeakJSConstant):
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::compileValueRep):
(JSC::FTL::LowerDFGToLLVM::compileInt52Rep):
(JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
(JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::LowerDFGToLLVM::compileArithDiv):
(JSC::FTL::LowerDFGToLLVM::compileArithMod):
(JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
(JSC::FTL::LowerDFGToLLVM::compileArithAbs):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compare):
(JSC::FTL::LowerDFGToLLVM::boolify):
(JSC::FTL::LowerDFGToLLVM::lowInt52):
(JSC::FTL::LowerDFGToLLVM::lowStrictInt52):
(JSC::FTL::LowerDFGToLLVM::lowWhicheverInt52):
(JSC::FTL::LowerDFGToLLVM::lowDouble):
(JSC::FTL::LowerDFGToLLVM::lowJSValue):
(JSC::FTL::LowerDFGToLLVM::strictInt52ToDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal):
(JSC::FTL::LowerDFGToLLVM::compileInt52ToValue): Deleted.
(JSC::FTL::LowerDFGToLLVM::compileInt32ToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::setInt52WithStrictValue): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateMachineInt): Deleted.
* ftl/FTLValueFormat.cpp:
(JSC::FTL::reboxAccordingToFormat):
* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::sanitizeDouble):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::boxDouble):

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

7 years agoUnreviewed gardening.
commit-queue@webkit.org [Tue, 15 Apr 2014 19:49:23 +0000 (19:49 +0000)]
Unreviewed gardening.

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-04-15

* TestExpectations:
Corrected wrong js/regress/ path for js/slow-stress/emscripten-memops.html
* platform/gtk/TestExpectations:
Updated expectation for passing on Release plugins/unavailable-plugin-indicator-obscurity.html

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

7 years agoLayerTreeAsTextBehavior should be in the WebCore namespace
simon.fraser@apple.com [Tue, 15 Apr 2014 18:53:48 +0000 (18:53 +0000)]
LayerTreeAsTextBehavior should be in the WebCore namespace
https://bugs.webkit.org/show_bug.cgi?id=131683

Reviewed by Andrei Bucur.

Move LayerTreeAsTextBehavior and the bit flags into the WebCore namespace.

* platform/graphics/GraphicsLayer.cpp:
(showGraphicsLayerTree):
* platform/graphics/GraphicsLayer.h:

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

7 years agoViewportConfiguration handles userZoom incorrectly
benjamin@webkit.org [Tue, 15 Apr 2014 18:42:14 +0000 (18:42 +0000)]
ViewportConfiguration handles userZoom incorrectly
https://bugs.webkit.org/show_bug.cgi?id=131657

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-15
Reviewed by Darin Adler.

* page/ViewportConfiguration.cpp:
(WebCore::viewportArgumentUserZoomIsSet):
(WebCore::ViewportConfiguration::updateConfiguration):
The other viewport values must be strictly positive, userZoom is always either zero, one or minus one.
As a result, the value zero was never set.

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

7 years ago[iOS WK2] Pages often blank on first load if page loaded by typing the URL
simon.fraser@apple.com [Tue, 15 Apr 2014 17:53:23 +0000 (17:53 +0000)]
[iOS WK2] Pages often blank on first load if page loaded by typing the URL
https://bugs.webkit.org/show_bug.cgi?id=131665

Reviewed by Tim Horton.

The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
was triggering a compositing layer flush when called with a null rootLayer, which happens
for pages going into the page cache. This would trigger a layer flush that would clobber
the root layer for the visible page, resulting in missing content.

Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
was being added to (and then removed from) every single compositing layers.

Fix both these by changing to a pull model, where RenderLayerCompositor requests
the overlay layer via ChromeClient, and gets it at the end of every flush,
adding to the children of the root layer.

Source/WebCore:
* WebCore.exp.in:
* page/ChromeClient.h:
(WebCore::ChromeClient::documentOverlayLayerForFrame):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
into a variable for ease of debugging.
(WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
that we're not in the page cache (this would have caught the bug).
(WebCore::RenderLayerCompositor::appendOverlayLayers):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.
* rendering/RenderLayerCompositor.h:

Source/WebKit2:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::documentOverlayLayerForFrame):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):

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

7 years ago[CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesR...
zoltan@webkit.org [Tue, 15 Apr 2014 17:52:10 +0000 (17:52 +0000)]
[CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
https://bugs.webkit.org/show_bug.cgi?id=131572

Reviewed by Rob Buis.

In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.

* Layout/Shapes/resources/RegionsShapes.css: Removed.
* Layout/Shapes/resources/RegionsShapesContent.html:
* Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
* Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
* Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
* Layout/Shapes/resources/RegionsShapesContentNoShapes.html:

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

7 years agoUnreviewed, rolling out r167199 and r167251.
commit-queue@webkit.org [Tue, 15 Apr 2014 17:46:42 +0000 (17:46 +0000)]
Unreviewed, rolling out r167199 and r167251.
https://bugs.webkit.org/show_bug.cgi?id=131678

Caused a DYEBench regression and does not seem to improve perf
on relevant websites (Requested by rniwa on #webkit).

Reverted changesets:

"Rewrite Function.bind as a builtin"
https://bugs.webkit.org/show_bug.cgi?id=131083
http://trac.webkit.org/changeset/167199

"Update test result"
http://trac.webkit.org/changeset/167251

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

7 years agoinspector/dom/content-flow-list.html and inspector/dom/content-flow-content-removal...
ap@apple.com [Tue, 15 Apr 2014 16:40:39 +0000 (16:40 +0000)]
inspector/dom/content-flow-list.html and inspector/dom/content-flow-content-removal.html
flakily fail and assert
https://bugs.webkit.org/show_bug.cgi?id=131679

* TestExpectations: This one, too.

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

7 years agoinspector/dom/content-flow-list.html is flakily failing and asserting
ap@apple.com [Tue, 15 Apr 2014 16:37:29 +0000 (16:37 +0000)]
inspector/dom/content-flow-list.html is flakily failing and asserting
https://bugs.webkit.org/show_bug.cgi?id=131679

* TestExpectations: Skip the test, it fails or asserts most of the time.

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

7 years agoScriptProcessorNode is garbage collected while still active if unreachable (breaks...
ap@apple.com [Tue, 15 Apr 2014 16:29:16 +0000 (16:29 +0000)]
ScriptProcessorNode is garbage collected while still active if unreachable (breaks multiple webaudio test)
https://bugs.webkit.org/show_bug.cgi?id=112521

* TestExpectations: Updated bug number, added webaudio/audioprocessingevent.html,
and removed a spurious additional webaudio/javascriptaudionode-downmix8-2channel-input.html line.

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

7 years agoRemove unnecessary null checking in NavigatorContentUtils
gyuyoung.kim@samsung.com [Tue, 15 Apr 2014 16:19:08 +0000 (16:19 +0000)]
Remove unnecessary null checking in NavigatorContentUtils
https://bugs.webkit.org/show_bug.cgi?id=131652

Reviewed by Darin Adler.

Some functions have checked if document is null. However, document is always not
null when frame is existed.

No new tests, no behavior changes.

* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::NavigatorContentUtils::registerProtocolHandler):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
(WebCore::NavigatorContentUtils::unregisterProtocolHandler):

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

7 years agoWeb Inspector: CodeMirror LICENSE is not properly added to combined files
timothy@apple.com [Tue, 15 Apr 2014 16:16:28 +0000 (16:16 +0000)]
Web Inspector: CodeMirror LICENSE is not properly added to combined files
https://bugs.webkit.org/show_bug.cgi?id=131674

Reviewed by Darin Adler.

* Scripts/copy-user-interface-resources.pl: Use $CODE_MIRROR_LICENSE instead
for CodeMirror.css and CodeMirror.js.

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

7 years ago[GTK] Reduce the binary size by compressing the text based web inspector resources
carlosgc@webkit.org [Tue, 15 Apr 2014 13:13:42 +0000 (13:13 +0000)]
[GTK] Reduce the binary size by compressing the text based web inspector resources
https://bugs.webkit.org/show_bug.cgi?id=121545

Reviewed by Gustavo Noronha Silva.

Compress text based files when compiling inspector resources. It
reduces the binary size in 3MB.

* gtk/generate-inspector-gresource-manifest.py:
(find_all_files_in_directory):
(is_compressible):

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

7 years ago[EFL][WK2] Pass Mouse movement data to WebMouseEvent
jinwoo7.song@samsung.com [Tue, 15 Apr 2014 13:01:01 +0000 (13:01 +0000)]
[EFL][WK2] Pass Mouse movement data to WebMouseEvent
https://bugs.webkit.org/show_bug.cgi?id=131663

Reviewed by Gyuyoung Kim.

Currently mouse movement data are not passed to WebMouseEvent. Instead, they are set to 0 as default.
EFL port needs to send the deltaX and deltaY for PointerLock API which will be implemented later.

* Shared/efl/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebMouseEvent):

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

7 years ago[Mac] compositing/repaint/positioned-movement.html flaky, missing repaint
ap@apple.com [Tue, 15 Apr 2014 07:40:30 +0000 (07:40 +0000)]
[Mac] compositing/repaint/positioned-movement.html flaky, missing repaint
https://bugs.webkit.org/show_bug.cgi?id=118153

* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:
Moved the flaky expectation to also apply to WebKit1.

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

7 years agoUnreviewed, rolling out r167298.
commit-queue@webkit.org [Tue, 15 Apr 2014 07:32:10 +0000 (07:32 +0000)]
Unreviewed, rolling out r167298.
https://bugs.webkit.org/show_bug.cgi?id=131670

Broke CSS filters (17 test crashes) (Requested by ap on
#webkit).

Reverted changeset:

"[iOS WK2] Pages often blank on first load if page loaded by
typing the URL"
https://bugs.webkit.org/show_bug.cgi?id=131665
http://trac.webkit.org/changeset/167298

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

7 years agoUnreviewed. Attempt to fix Windows build after r167277.
psolanki@apple.com [Tue, 15 Apr 2014 06:57:02 +0000 (06:57 +0000)]
Unreviewed. Attempt to fix Windows build after r167277.

* page/FrameView.cpp:
(WebCore::FrameView::willPaintContents):

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

7 years agoRemove Gtk WebKit1 tester.
ap@apple.com [Tue, 15 Apr 2014 06:51:53 +0000 (06:51 +0000)]
Remove Gtk WebKit1 tester.

Gtk WebKit1 port no longer exists, and dashboard was trying to load its tester
results over and over as fast as it could.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):

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

7 years agoWrong link for webkitpy tests results in dashboard popover
ap@apple.com [Tue, 15 Apr 2014 06:40:39 +0000 (06:40 +0000)]
Wrong link for webkitpy tests results in dashboard popover
https://bugs.webkit.org/show_bug.cgi?id=131664

Reviewed by Timothy Hatcher.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype._presentPopoverForMultipleFailureKinds):
Use a correct link.

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

7 years agoUnreviewed, rolling out r167261.
commit-queue@webkit.org [Tue, 15 Apr 2014 06:24:42 +0000 (06:24 +0000)]
Unreviewed, rolling out r167261.
https://bugs.webkit.org/show_bug.cgi?id=131667

broke many navigation tests (Requested by ap on #webkit).

Reverted changeset:

"Web Replay: memoize fallback time values for
document.lastModified"
https://bugs.webkit.org/show_bug.cgi?id=131318
http://trac.webkit.org/changeset/167261

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

7 years ago[iOS WK2] Pages often blank on first load if page loaded by typing the URL
simon.fraser@apple.com [Tue, 15 Apr 2014 06:13:58 +0000 (06:13 +0000)]
[iOS WK2] Pages often blank on first load if page loaded by typing the URL
https://bugs.webkit.org/show_bug.cgi?id=131665

Reviewed by Tim Horton.

The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
was triggering a compositing layer flush when called with a null rootLayer, which happens
for pages going into the page cache. This would trigger a layer flush that would clobber
the root layer for the visible page, resulting in missing content.

Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
was being added to (and then removed from) every single compositing layers.

Fix both these by changing to a pull model, where RenderLayerCompositor requests
the overlay layer via ChromeClient, and gets it at the end of every flush,
adding to the children of the root layer.

Source/WebCore:
* WebCore.exp.in:
* page/ChromeClient.h:
(WebCore::ChromeClient::documentOverlayLayerForFrame):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
into a variable for ease of debugging.
(WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
that we're not in the page cache (this would have caught the bug).
(WebCore::RenderLayerCompositor::appendOverlayLayers):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.
* rendering/RenderLayerCompositor.h:

Source/WebKit2:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::documentOverlayLayerForFrame):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):

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

7 years agoUnreviewed, rolling out r167272.
commit-queue@webkit.org [Tue, 15 Apr 2014 06:13:17 +0000 (06:13 +0000)]
Unreviewed, rolling out r167272.
https://bugs.webkit.org/show_bug.cgi?id=131666

Broke multiple tests (Requested by ap on #webkit).

Reverted changeset:

"Function.bind itself is too slow"
https://bugs.webkit.org/show_bug.cgi?id=131636
http://trac.webkit.org/changeset/167272

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

7 years agoUpdate webkitpy regression test result that started to fail after http://trac.webkit...
ap@apple.com [Tue, 15 Apr 2014 05:47:22 +0000 (05:47 +0000)]
Update webkitpy regression test result that started to fail after trac.webkit.org/r167243

I'm not sure whether the changes are desirable, but am not suspicious enough to roll out.

* Scripts/webkitpy/common/checkout/checkout_unittest.py:
(CommitMessageForThisCommitTest):

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

7 years agoAssertion failure under FEImage::determineAbsolutePaintRect()
jhoneycutt@apple.com [Tue, 15 Apr 2014 05:23:07 +0000 (05:23 +0000)]
Assertion failure under FEImage::determineAbsolutePaintRect()

<https://bugs.webkit.org/show_bug.cgi?id=131660>
<rdar://problem/15669294>

Source/WebCore:
This patch merges Chromium r149536 (see
<https://chromiumcodereview.appspot.com/14701012>), which moves
m_absoluteTransform out of SVGFilter and into the base Filter class, so
that it isn't necessary to cast a Filter to SVGFilter to get the
absolute transform.

Reviewed by Geoffrey Garen.

Test: svg/filters/feImage-filter-assertion.html

* platform/graphics/filters/Filter.h:
(WebCore::Filter::Filter):
Changed to take the absolute transform.
(WebCore::Filter::absoluteTransform):
Moved from SVGFilter.
(WebCore::Filter::mapAbsolutePointToLocalPoint):
Ditto.

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::FilterEffectRenderer):
Pass a default AffineTransform() to the Filter base class.

* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::determineAbsolutePaintRect):
Use the Filter without casting it to SVGFilter.
(WebCore::FEImage::platformApplySoftware):
Ditto.

* svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::SVGFilter):
Pass the transform to the base class, and remove initialization of a
removed member var.

* svg/graphics/filters/SVGFilter.h:
Member var moved to Filter.h.

LayoutTests:
Reviewed by Geoffrey Garen.

* svg/filters/feImage-filter-assertion-expected.txt: Added.
* svg/filters/feImage-filter-assertion.html: Added.

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

7 years agoUpdate to CodeMirror 4.0.
commit-queue@webkit.org [Tue, 15 Apr 2014 04:31:41 +0000 (04:31 +0000)]
Update to CodeMirror 4.0.
https://bugs.webkit.org/show_bug.cgi?id=130019

The CodeMirror 4.0 library adds multiple selections and the ability to
undo/redo selections. Selections are made by holding the Command (Cmd) key
and clicking into an editor, or by holding Option (Alt) and making a block
selection followed by entering a character or moving the cursor.

Patch by Jono Wells <jonowells@apple.com> on 2014-04-14
Reviewed by Timothy Hatcher.

* Scripts/update-codemirror-resources.rb:
* Scripts/update-pretty-printer.rb:
Update scripts to reflect updated locations for CodeMirror files.
No longer copies LESS mode file as this has been integrated into CSS mode
in CodeMirror 4.0.

* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* UserInterface/External/CodeMirror/clojure.js:
* UserInterface/External/CodeMirror/closebrackets.js:
* UserInterface/External/CodeMirror/codemirror.css:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/coffeescript.js:
* UserInterface/External/CodeMirror/comment.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/htmlmixed.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/livescript.js:
* UserInterface/External/CodeMirror/matchbrackets.js:
* UserInterface/External/CodeMirror/overlay.js:
* UserInterface/External/CodeMirror/placeholder.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/sass.js:
* UserInterface/External/CodeMirror/searchcursor.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:
Update to CodeMirror 4.0.

* UserInterface/Main.html: Remove less.js which is now part of css.js.

* UserInterface/Views/CSSStyleDeclarationTextEditor.css:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
Update styles to match CodeMirror changes. Update CSSStyleDeclarationTextEditor.js
to match CodeMirror API updates (doc.removeLine() has been removed, so
replaceRange() is used instead). Also the tokenTrackingController is now enabled in the
CSSStyleDeclarationTextEditor and SourceCodeTextEditor when the Option (Alt) key
is pressed instead of the Command (Cmd) key so as not to conflict with multiple
cursor placement in the CodeMirror update.

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

7 years agoASSERT when firing low memory warning
ggaren@apple.com [Tue, 15 Apr 2014 03:53:47 +0000 (03:53 +0000)]
ASSERT when firing low memory warning
https://bugs.webkit.org/show_bug.cgi?id=131659

Reviewed by Mark Hahnenberg.

* heap/Heap.cpp:
(JSC::Heap::deleteAllCompiledCode): Allow deleteAllCompiledCode to be
called when no GC is happening because that is what we do when a low
memory warning fires, and it is harmless.

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

7 years agoMallocBench should scavenge explicitly instead of waiting
ggaren@apple.com [Tue, 15 Apr 2014 03:52:39 +0000 (03:52 +0000)]
MallocBench should scavenge explicitly instead of waiting
https://bugs.webkit.org/show_bug.cgi?id=131661

Reviewed by Andreas Kling.

PerformanceTests:
* MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc
by default because it will overwrite any other mbmalloc you're working
with in the WebKitBuild directory.

* MallocBench/MallocBench/Benchmark.cpp:
(Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
and it's the only way to get FastMalloc to scavenge. (That's a bug in
FastMalloc, but we don't want it to interfere with broader testing.)

* MallocBench/MallocBench/mbmalloc.cpp:
* MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation
for system malloc.

Source/bmalloc:
Added explicit scavenge support to bmalloc. This isn't a memory win,
since bmalloc's per-thread cache is so small. But it makes testing
simpler.

* bmalloc/Allocator.cpp:
(bmalloc::Allocator::~Allocator):
(bmalloc::Allocator::scavenge):
* bmalloc/Allocator.h:
* bmalloc/Cache.cpp:
(bmalloc::Cache::operator new):
(bmalloc::Cache::operator delete):
(bmalloc::Cache::Cache):
(bmalloc::Cache::scavenge):
* bmalloc/Cache.h:
* bmalloc/Deallocator.cpp:
(bmalloc::Deallocator::~Deallocator):
(bmalloc::Deallocator::scavenge):
* bmalloc/Deallocator.h: Factored existing scavenging code into helper
functions, for reuse.

* bmalloc/Heap.cpp:
(bmalloc::sleep):
(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPages):
(bmalloc::Heap::scavengeMediumPages):
(bmalloc::Heap::scavengeLargeRanges):
* bmalloc/Heap.h: Made scavenge sleep duration a parameter. Forced
scavenging -- in response to a benchmark or a low memory warning --
wants to complete as soon as possible, so its sleep duration is 0.

* bmalloc/bmalloc.h:
(bmalloc::api::scavenge):
* bmalloc/mbmalloc.cpp: Exported the scavenge API for MallocBench's use.

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

7 years agoREGRESSION (r158617): Find on Page can get stuck in a loop when the search string...
darin@apple.com [Tue, 15 Apr 2014 03:06:21 +0000 (03:06 +0000)]
REGRESSION (r158617): Find on Page can get stuck in a loop when the search string occurs in an <input> in a <fieldset>
https://bugs.webkit.org/show_bug.cgi?id=126322

Reviewed by Ryosuke Niwa.

One additional tweak to the fix for the bug above.
Fixes crash in editing/editability/ignored-content.html test.

* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::canContainRangeEndPoint): Call through to
HTMLElement::canContainRangeEndPoint, bypassing HTMLPlugInElement override
that always returns false. Without this change, this function was always
returning false.

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

7 years agoCrash in TileController::tileRevalidationTimerFired
simon.fraser@apple.com [Tue, 15 Apr 2014 02:54:13 +0000 (02:54 +0000)]
Crash in TileController::tileRevalidationTimerFired
https://bugs.webkit.org/show_bug.cgi?id=131656
<rdar://problem/16583166>

Reviewed by Sam Weinig.

It's possible for the TileController revalidation timer to fire after
the GraphicsLayer has been destroyed, so the PlatformCALayer no longer
has an owningGraphicsLayer.

Bail from the timer callback if owningGraphicsLayer() is null.

Also some drive-by 0 -> nullptr changes.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::willBeDestroyed):
* platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::PlatformCALayer::~PlatformCALayer):
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::tileRevalidationTimerFired):

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

7 years agoUse 4kB pages on Mac
ggaren@apple.com [Tue, 15 Apr 2014 02:44:09 +0000 (02:44 +0000)]
Use 4kB pages on Mac
https://bugs.webkit.org/show_bug.cgi?id=131658

Reviewed by Sam Weinig.

This reduces memory use a lot on Membuster:

                                                          base                      patch                                Δ
        Execution Time:
            reddit_memory_warning                         18ms                       17ms                   ^ 1.06x faster
            flickr_memory_warning                         34ms                       36ms                   ! 1.06x slower
            theverge_memory_warning                       39ms                       41ms                   ! 1.05x slower

            <geometric mean>                              29ms                       29ms                   ! 1.02x slower
            <arithmetic mean>                             30ms                       31ms                   ! 1.03x slower
            <harmonic mean>                               27ms                       27ms                    ^ 1.0x faster

        Peak Memory:
            reddit_memory_warning                     16,412kB                   16,436kB                    ! 1.0x bigger
            flickr_memory_warning                     30,120kB                   30,184kB                    ! 1.0x bigger
            theverge_memory_warning                   33,408kB                   33,420kB                    ! 1.0x bigger

            <geometric mean>                          25,466kB                   25,499kB                    ! 1.0x bigger
            <arithmetic mean>                         26,647kB                   26,680kB                    ! 1.0x bigger
            <harmonic mean>                           24,181kB                   24,214kB                    ! 1.0x bigger

        Memory at End:
            reddit_memory_warning                      2,404kB                    1,920kB                  ^ 1.25x smaller
            flickr_memory_warning                      3,764kB                    3,072kB                  ^ 1.23x smaller
            theverge_memory_warning                    3,648kB                    3,132kB                  ^ 1.16x smaller

            <geometric mean>                           3,208kB                    2,644kB                  ^ 1.21x smaller
            <arithmetic mean>                          3,272kB                    2,708kB                  ^ 1.21x smaller
            <harmonic mean>                            3,139kB                    2,574kB                  ^ 1.22x smaller

* bmalloc.xcodeproj/project.pbxproj:
* bmalloc/BPlatform.h: Added.
* bmalloc/VMAllocate.h: Only use 16kB pages on iOS because the page size
is 4kB on Mac.

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

7 years agoemit_op_put_by_id should not emit a write barrier that filters on value
mhahnenberg@apple.com [Tue, 15 Apr 2014 02:20:17 +0000 (02:20 +0000)]
emit_op_put_by_id should not emit a write barrier that filters on value
https://bugs.webkit.org/show_bug.cgi?id=131654

Reviewed by Filip Pizlo.

The 32-bit implementation does this, and it can cause crashes if we later repatch the
code to allocate and store new Butterflies.

* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitWriteBarrier): We also weren't verifying that the base was a cell on
32-bit if we were passed ShouldFilterBase. I also took the liberty of sinking the tag
load down into the if statement so that we don't do it if we're not filtering on the value.
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_by_id):

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

7 years agoFix the 32-bit build.
timothy_horton@apple.com [Tue, 15 Apr 2014 00:55:15 +0000 (00:55 +0000)]
Fix the 32-bit build.

* UIProcess/mac/ViewGestureControllerMac.mm:

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

7 years agoREGRESSION (WebKit2): Programmatic scrolls in overflow-scrolling:touch don't work
simon.fraser@apple.com [Tue, 15 Apr 2014 00:47:46 +0000 (00:47 +0000)]
REGRESSION (WebKit2): Programmatic scrolls in overflow-scrolling:touch don't work
https://bugs.webkit.org/show_bug.cgi?id=131649

Reviewed by Tim Horton.

Update the UIScrollView's contentOffset when we're told that the scroll position
changed.

Also refactor slightly to have a single exception-protected block.

* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):

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

7 years agoFix the 32-bit build.
timothy_horton@apple.com [Tue, 15 Apr 2014 00:47:28 +0000 (00:47 +0000)]
Fix the 32-bit build.

* UIProcess/mac/ViewGestureControllerMac.mm:

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

7 years agoSometimes-crash under handleSwipeGesture after closing a window or quitting
timothy_horton@apple.com [Tue, 15 Apr 2014 00:41:37 +0000 (00:41 +0000)]
Sometimes-crash under handleSwipeGesture after closing a window or quitting
https://bugs.webkit.org/show_bug.cgi?id=131648
<rdar://problem/15966106>

Reviewed by Simon Fraser.

* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::ViewGestureController::trackSwipeGesture):
Keep a Objective C object with a single boolean property, isCancelled, on
the ViewGestureController, and also retained by the swipe-tracking block.
When the ViewGestureController is destroyed, we set isCancelled to YES,
and the next time the block is invoked, we will cancel the swipe without
touching the destroyed ViewGestureController.

(WebKit::ViewGestureController::handleSwipeGesture):
Don't try to handle a swipe gesture if the drawing area is missing.

(WebKit::ViewGestureController::endSwipeGesture):
Clear the swipe cancellation tracker when the gesture completes.

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

7 years ago[CSS Shapes] Remove some leftover shape-inside code
bjonesbe@adobe.com [Tue, 15 Apr 2014 00:27:13 +0000 (00:27 +0000)]
[CSS Shapes] Remove some leftover shape-inside code
https://bugs.webkit.org/show_bug.cgi?id=131641

Reviewed by Dean Jackson.

I discovered that some code had been leftover from the shape-inside
removal. This removes that leftover code.

No new tests, no behavior change.

* platform/text/BidiResolver.h:
* rendering/BidiRun.cpp:
(WebCore::BidiRun::BidiRun):
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::createLineBoxes):
(WebCore::RenderBlockFlow::constructLine):
(WebCore::computeExpansionForJustifiedText):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):

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

7 years ago[MSE][Mac] video.currentTime is sometimes negative.
jer.noble@apple.com [Tue, 15 Apr 2014 00:14:59 +0000 (00:14 +0000)]
[MSE][Mac] video.currentTime is sometimes negative.
https://bugs.webkit.org/show_bug.cgi?id=131644

Reviewed by Eric Carlson.

AVSampleBufferRenderSynchronizer will occasionally return slightly negative values
when beginning playback. Clamp the return value to 0.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):

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

7 years ago[CSSExclusions] Remove FIXME referencing closed bug
bjonesbe@adobe.com [Tue, 15 Apr 2014 00:07:15 +0000 (00:07 +0000)]
[CSSExclusions] Remove FIXME referencing closed bug
https://bugs.webkit.org/show_bug.cgi?id=131645

Reviewed by Dean Jackson.

This is silly, but the comment is really confusing as it's entirely
wrong now.

No new tests, no behavior change.

* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresRepaint):

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

7 years agoREGRESSION(r166027) Menu is shown and immediately hidden after doubletap gesture.
enrica@apple.com [Mon, 14 Apr 2014 23:47:33 +0000 (23:47 +0000)]
REGRESSION(r166027) Menu is shown and immediately hidden after doubletap gesture.
https://bugs.webkit.org/show_bug.cgi?id=131646
<rdar://problem/16614374>

Reviewed by Benjamin Poulain.

This is a problem with every gesture that changes the selection
We don't need to delay updating the selection if the selection is
being changed with a gesture.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
(-[WKContentView _selectionChanged]):

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

7 years agoBuild fixage.
akling@apple.com [Mon, 14 Apr 2014 23:22:16 +0000 (23:22 +0000)]
Build fixage.

* page/FrameView.cpp:

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

7 years agoAssertion failure !node || node->isElementNode() in
jhoneycutt@apple.com [Mon, 14 Apr 2014 23:08:51 +0000 (23:08 +0000)]
Assertion failure !node || node->isElementNode() in
WebCore::RenderBlock::inlineElementContinuation

https://bugs.webkit.org/show_bug.cgi?id=108829
<rdar://problem/13666405>

I can't reproduce this assertion failure, but there seems to be an
invalid assumption in RenderBlock::inlineElementContinuation() that
anything with the "isInline()" bit set is a RenderInline.

No new test because the test case in the bug does not repro for me.

Reviewed by Brent Fulgham.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::inlineElementContinuation):
Dave Hyatt says that this function should only return RenderInline
objects (not non-RenderInline inline objects), so update the checks
from isInline() to isRenderInline() before casting with
toRenderInline().

* rendering/RenderInline.cpp:
(WebCore::RenderInline::inlineElementContinuation):
Ditto.

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

7 years agoDo more things under memory pressure on non-iOS platforms.
akling@apple.com [Mon, 14 Apr 2014 23:03:54 +0000 (23:03 +0000)]
Do more things under memory pressure on non-iOS platforms.
<https://webkit.org/b/131625>

Reviewed by Antti Koivisto.

Rename hasReceivedMemoryPressure() to isUnderMemoryPressure() and
make it use std::atomic<bool> instead of OSAtomic primitives.

Unmask most of the PLATFORM(IOS) blocks so all platforms can take
advantage of optimizations done while under pressure. Note that
isUnderMemoryPressure() will still always return false on platforms
other than iOS/WK1, but this will change soon.

* history/PageCache.cpp:
(WebCore::PageCache::canCache):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
* page/FrameView.cpp:
(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::MemoryPressureHandler):
* platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::isUnderMemoryPressure):
* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
(WebCore::MemoryPressureHandler::clearMemoryPressure):
(WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):
(WebCore::MemoryPressureHandler::hasReceivedMemoryPressure): Deleted.
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::purgeInactiveFontDataIfNeeded):
* platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::createTilesInActiveGrid):
* platform/ios/LegacyTileGrid.mm:
(WebCore::LegacyTileGrid::shouldUseMinimalTileCoverage):
* platform/ios/LegacyTileLayerPool.mm:
(WebCore::LegacyTileLayerPool::addLayer):
* platform/ios/TileControllerMemoryHandlerIOS.cpp:
(WebCore::TileControllerMemoryHandler::tileControllerGainedUnparentedTiles):

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

7 years agoLet the bundle form client know whether a change in a text field was initiated by...
mitz@apple.com [Mon, 14 Apr 2014 22:46:22 +0000 (22:46 +0000)]
Let the bundle form client know whether a change in a text field was initiated by user typing
https://bugs.webkit.org/show_bug.cgi?id=131643

Reviewed by Sam Weinig.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added
initiatedByUserTyping parameter to the delegate method.

* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Updated overload of
textDidChangeInTextField to take the initiatedByUserTyping parameter and pass it along to
the delegate.

* WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
(API::InjectedBundle::FormClient::textDidChangeInTextField): Added initiatedByUserTyping
parameter.

* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::textDidChangeInTextField): Maintained the existing
behavior of not calling the C SPI client if the change was not initiated by user typing.
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.h: Updated for added parameter.

* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::textDidChangeInTextField): Changed to call the bundle client
function unconditionally, but pass along whether the change was initiated by user typing.

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

7 years ago[Cocoa] Add a WKWebProcessPlugInFormDelegate method corresponding to willSendSubmitEvent
mitz@apple.com [Mon, 14 Apr 2014 22:44:57 +0000 (22:44 +0000)]
[Cocoa] Add a WKWebProcessPlugInFormDelegate method corresponding to willSendSubmitEvent
https://bugs.webkit.org/show_bug.cgi?id=131639

Reviewed by Tim Horton.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared
new delegate method.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an override
of API::InjectedBundle::FormClient::willSendSubmitEvent which calls the new delegate
method.

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

7 years ago[iOS][WK2] Change the SPI used when starting the rotation animation
benjamin@webkit.org [Mon, 14 Apr 2014 22:39:18 +0000 (22:39 +0000)]
[iOS][WK2] Change the SPI used when starting the rotation animation
https://bugs.webkit.org/show_bug.cgi?id=131638

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-14
Reviewed by Tim Horton.

Having an update block where all the properties are changed is more convenient for Safari.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

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

7 years ago[iOS WK2] Hash table assertion closing a tab
simon.fraser@apple.com [Mon, 14 Apr 2014 22:37:07 +0000 (22:37 +0000)]
[iOS WK2] Hash table assertion closing a tab
https://bugs.webkit.org/show_bug.cgi?id=131640

Reviewed by Tim Horton.

Have RemoteLayerTreeContext keep track of all PlatformCALayerRemotes,
and clear their context pointer when it is being destroyed to avoid
calling into a deleted object later.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::~PlatformCALayerRemote):
(WebKit::PlatformCALayerRemote::addAnimationForKey):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
(WebKit::PlatformCALayerRemote::clearContext):
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::~RemoteLayerTreeContext):
(WebKit::RemoteLayerTreeContext::layerWasCreated):
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):

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

7 years agoFunction.bind itself is too slow
oliver@apple.com [Mon, 14 Apr 2014 22:05:44 +0000 (22:05 +0000)]
Function.bind itself is too slow
https://bugs.webkit.org/show_bug.cgi?id=131636

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:
Rather than forcing creation of an activation, we now store
bound function properties directly on the returned closure.
This is necessary to deal with code that creates many function
bindings, but does not call them very often.

This is a 60% speed up in the included js/regress test.

* builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createBuiltinExecutable):
* builtins/Function.prototype.js:
(bind.bindingFunction):
(bind.else.switch.case.1.bindingFunction.bindingFunction.bindingFunction.boundOversizedCallThunk):
(bind.else.switch.case.1.bindingFunction):
(bind.else.switch.case.2.bindingFunction.bindingFunction.bindingFunction.boundOversizedCallThunk):
(bind.else.switch.case.2.bindingFunction):
(bind.else.switch.case.3.bindingFunction.bindingFunction.bindingFunction.boundOversizedCallThunk):
(bind.else.switch.case.3.bindingFunction):
(bind.else.switch.bindingFunction):
(bind):
(bind.else.switch.case.1.bindingFunction.oversizedCall): Deleted.
(bind.else.switch.case.2.bindingFunction.oversizedCall): Deleted.
(bind.else.switch.case.3.bindingFunction.oversizedCall): Deleted.
* runtime/CommonIdentifiers.h:

LayoutTests:
New test, and fix bogus log in old one

* js/regress/function-bind-create-expected.html: Added.
* js/regress/function-bind-create.html: Added.
* js/regress/script-tests/function-bind-create.js: Added.
(test):
* js/regress/script-tests/function-bind.js:

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

7 years agoAllow dynamic changes of WKThumbnailView snapshot scale
timothy_horton@apple.com [Mon, 14 Apr 2014 21:51:17 +0000 (21:51 +0000)]
Allow dynamic changes of WKThumbnailView snapshot scale
https://bugs.webkit.org/show_bug.cgi?id=131628
<rdar://problem/16584156>

Reviewed by Beth Dakin.

* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _requestSnapshotIfNeeded]):
Don't bail from requesting a snapshot just because we already had one; we want to resnapshot.
Keep track of when we bail from requesting a snapshot because we have one in-flight, so we can request it later.

(-[_WKThumbnailView _didTakeSnapshot:]):
Apply the scale to the bitmap size (whoops!).
Make CA always resize the content to fill the thumbnail view's layer, respecting aspect ratio.
Re-snapshot if we previously deferred a snapshot.

(-[_WKThumbnailView setScale:]):
If we get a scale change, request a new snapshot.

(-[_WKThumbnailView setUsesSnapshot:]):
Never apply thumbnail scale to the page if we're using snapshots. It's unnecessary,
because scale will be applied simply when painting the software snapshot.
Apply the thumbnail scale if we're going from usesSnapshot -> !usesSnapshot.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::snapshotAtSize):
Snapshots should use the greater of the two scales, so as to never leave a portion of the snapshot unpainted.

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

7 years agoRenderLayerCompositor's m_layerForOverhangAreas should be offset by the
bdakin@apple.com [Mon, 14 Apr 2014 21:48:13 +0000 (21:48 +0000)]
RenderLayerCompositor's m_layerForOverhangAreas should be offset by the
topContentInset
https://bugs.webkit.org/show_bug.cgi?id=131632
-and corresponding-
<rdar://problem/16609602>

Reviewed by Tim Horton.

Offset m_layerForOverhangAreas by the topContentInset.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

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

7 years ago[sh4] Allow use of SubImmediates in LLINT.
julien.brianceau@gmail.com [Mon, 14 Apr 2014 21:46:18 +0000 (21:46 +0000)]
[sh4] Allow use of SubImmediates in LLINT.
https://bugs.webkit.org/show_bug.cgi?id=131608

Reviewed by Mark Lam.

Allow use of SubImmediates with const pool so the sh4 architecture can
share the arm path for setEntryAddress macro. It reduces architecture
specific code and lead to a more optimal generated code for sh4.

* llint/LowLevelInterpreter.asm:
* offlineasm/sh4.rb:

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

7 years agoREGRESSION (WebKit2 View Gestures): Double-tap doesn't work properly when there's...
timothy_horton@apple.com [Mon, 14 Apr 2014 21:38:00 +0000 (21:38 +0000)]
REGRESSION (WebKit2 View Gestures): Double-tap doesn't work properly when there's no element underneath the cursor
https://bugs.webkit.org/show_bug.cgi?id=131629
<rdar://problem/16192821>

Reviewed by Dan Bernstein.

* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
If there's nothing under the cursor, zoom towards the cursor instead of towards 0,0.

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

7 years agoEliminate CachedFrame::m_mousePressNode
ap@apple.com [Mon, 14 Apr 2014 21:24:04 +0000 (21:24 +0000)]
Eliminate CachedFrame::m_mousePressNode
https://bugs.webkit.org/show_bug.cgi?id=131626

Reviewed by Brady Eidson.

I couldn't find any observable effect of this change.

* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::CachedFrameBase):
(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::clear):
* history/CachedFrame.h:
(WebCore::CachedFrame::documentLoader):
(WebCore::CachedFrame::mousePressNode): Deleted.
Eliminated m_mousePressNode, accessor, and code that reached out to EventHandler.

* page/EventHandler.cpp:
(WebCore::EventHandler::mousePressNode): Deleted.
(WebCore::EventHandler::setMousePressNode): Deleted.
* page/EventHandler.h:
(WebCore::EventHandler::setMousePressed): Deleted. This function was already unused.

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