[GTK] URTBF after r174231.

* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkit_web_page_get_dom_document):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::didInstallPageOverlay): Deleted.
(WebKit::DrawingAreaImpl::didUninstallPageOverlay): Deleted.
(WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay): Deleted.
(WebKit::DrawingAreaImpl::setPageOverlayOpacity): Deleted.
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::createPageOverlayLayer):
(WebKit::LayerTreeHostGtk::destroyPageOverlayLayer):
(WebKit::LayerTreeHostGtk::didInstallPageOverlay): Deleted.
(WebKit::LayerTreeHostGtk::didUninstallPageOverlay): Deleted.
(WebKit::LayerTreeHostGtk::setPageOverlayNeedsDisplay): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174262 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove autoinstaller workaround for python 2.6
https://bugs.webkit.org/show_bug.cgi?id=137343

Reviewed by Daniel Bates.

Reverting <http://trac.webkit.org/changeset/124928>, neither Python
2.6, nor Snow Leopard is supported anymore, so the workaround is not
needed anymore.

* Scripts/webkitpy/common/system/autoinstall.py:
(AutoInstaller.install):
* Scripts/webkitpy/test/main.py:
(Tester._run_tests):
* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_mechanize):
(AutoinstallImportHook._install_pep8):
(AutoinstallImportHook._install_pylint):
(AutoinstallImportHook._install_buildbot):
(AutoinstallImportHook._install_coverage):
(AutoinstallImportHook._install_eliza):
(AutoinstallImportHook._install_irc):
(AutoinstallImportHook._install):
(autoinstall_everything):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174263 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove workarounds for versions of Python before 2.7
https://bugs.webkit.org/show_bug.cgi?id=137338

Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/common/system/autoinstall.py:
(AutoInstaller._extract_targz):
(AutoInstaller._unzip):
(AutoInstaller): Deleted.
(AutoInstaller._extract_all): Deleted.
* Scripts/webkitpy/common/webkitunittest.py:
(TestCase.setUp): Deleted.
* Scripts/webkitpy/layout_tests/models/test_configuration.py:
(TestConfigurationConverter.collapse_macros):
(TestConfigurationConverter.to_specifiers_list.try_collapsing):
(TestConfigurationConverter.to_specifiers_list.try_abbreviating):
(TestConfigurationConverter):
(TestConfigurationConverter.combinations): Deleted.
* Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
* Scripts/webkitpy/port/base.py:
* Scripts/webkitpy/port/driver.py:
(ContentBlock.__init__):
* Scripts/webkitpy/port/server_process.py:
(ServerProcess._reset):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r174264.
https://bugs.webkit.org/show_bug.cgi?id=137392

It broke run-webkit-tests (Requested by ebalazsfalvi on
#webkit).

Reverted changeset:

"Remove workarounds for versions of Python before 2.7"
https://bugs.webkit.org/show_bug.cgi?id=137338
http://trac.webkit.org/changeset/174264

Patch by Commit Queue <commit-queue@webkit.org> on 2014-10-03

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove workarounds for versions of Python before 2.7
https://bugs.webkit.org/show_bug.cgi?id=137338

Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/common/system/autoinstall.py:
(AutoInstaller._extract_targz):
(AutoInstaller._unzip):
(AutoInstaller): Deleted.
(AutoInstaller._extract_all): Deleted.
* Scripts/webkitpy/common/webkitunittest.py:
(TestCase.setUp): Deleted.
* Scripts/webkitpy/layout_tests/models/test_configuration.py:
(TestConfigurationConverter.collapse_macros):
(TestConfigurationConverter.to_specifiers_list.try_collapsing):
(TestConfigurationConverter.to_specifiers_list.try_abbreviating):
(TestConfigurationConverter):
(TestConfigurationConverter.combinations): Deleted.
* Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
* Scripts/webkitpy/port/base.py:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174266 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Unreviewed GTK gardening.

* platform/gtk/TestExpectations: Update test name for bug 136673 after r173418.
* platform/gtk/css1/box_properties/clear_float-expected.txt: Rebaseline after r174233.
* platform/gtk/css1/box_properties/float_on_text_elements-expected.txt: Rebaseline after r174233.
* platform/gtk/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt: Rebaseline after r174233.
* platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt: Rebaseline after r174233.
* platform/gtk/css2.1/t1602-c546-txt-align-00-b-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/multicol/float-avoidance-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/multicol/overflow-across-columns-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/multicol/overflow-across-columns-percent-height-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/multicol/overflow-unsplittable-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/multicol/positive-leading-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/multicol/vertical-lr/float-avoidance-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/multicol/vertical-rl/float-avoidance-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/regions/multiple-directionality-changes-in-variable-width-regions-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/regions/repaint/line-flow-with-floats-in-regions-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-1-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-10-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-2-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-3-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-4-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-5-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-6-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-7-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-8-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/repaint/line-flow-with-floats-9-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/text/justified-selection-at-edge-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/text/justify-ideograph-leading-expansion-expected.txt: Rebaseline after r174233.
* platform/gtk/fast/text/justify-nbsp-expected.txt: Added. Rebaseline after r174233.
* platform/gtk/fast/text/trailing-white-space-2-expected.txt: Rebaseline after r174233.
* platform/gtk/tables/mozilla/marvin/x_tbody_align_justify-expected.txt: Rebaseline after r174233.
* platform/gtk/tables/mozilla/marvin/x_td_align_justify-expected.txt: Rebaseline after r174233.
* platform/gtk/tables/mozilla/marvin/x_tfoot_align_justify-expected.txt: Rebaseline after r174233.
* platform/gtk/tables/mozilla/marvin/x_th_align_justify-expected.txt: Rebaseline after r174233.
* platform/gtk/tables/mozilla/marvin/x_thead_align_justify-expected.txt: Rebaseline after r174233.
* platform/gtk/tables/mozilla/marvin/x_tr_align_justify-expected.txt: Rebaseline after r174233.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174267 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove RefPtrHashMap
https://bugs.webkit.org/show_bug.cgi?id=137200

Reviewed by Darin Adler.

Source/WTF:

HashMap now has all the features of the RefPtr specialization of HashMap
(which lived in RefPtrHashMap.h) and is in fact more efficient when moving
items into it. For instance:

For HashMap<RefPtr<Foo>, Bar> map:

RefPtr<Foo> foo = ...;
map.add(WTF::move(foo), Bar());

will now not cause a ref() / deref(), but will successfully move the item in
without churn. The same is true if foo.release() was used.

* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
Remove references to RefPtrHashMap.h.

* wtf/RefPtrHashMap.h: Removed.

* wtf/HashMap.h:
Remove #include of RefPtrHashMap.h and add inlineGet to match the interface
exposed by the RefPtrHashMap specialization.

Tools:

* TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
Add tests for using a HashMap with RefPtr keys, focusing on ensuring that
a minimum of refcount churn occurs.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174268 268f45cc-cd09-0410-ab3c-d52691b4dbfc
TextRun::length() should return an unsigned
https://bugs.webkit.org/show_bug.cgi?id=137354

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-10-03
Reviewed by Antti Koivisto.

Currently, the m_len instance variable that backs the TextRun::length() function is
an unsigned, but the length() function implicitly casts that to an int when
returning it. This patch makes the function return an unsigned, and makes the
do any casting if necessary.

No new tests because there is no behavior change.

* platform/graphics/Font.cpp:
(WebCore::Font::drawText): Cast result to int.
(WebCore::Font::drawEmphasisMarks): Ditto.
(WebCore::Font::adjustSelectionRectForText): Ditto.
(WebCore::computeUnderlineType): Update internal type to be unsigned.
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::add): Update sentinel value to be unsigned.
(WebCore::GlyphBuffer::saveOffsetsInString): Ditto.
* platform/graphics/GraphicsContext.cpp: Update internal type to be unsigned.
* platform/graphics/TextRun.h:
(WebCore::TextRun::length): Update return type.
(WebCore::TextRun::charactersLength): Ditto.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal): Cast result to int.
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair): Remove
unnecessary casts.
(WebCore::SVGTextMetricsBuilder::advance): Ditto.
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection): Cast result to int.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174269 268f45cc-cd09-0410-ab3c-d52691b4dbfc
EventSender dispatches should be per-Document
https://bugs.webkit.org/show_bug.cgi?id=136051

Reviewed by Andreas Kling.

EventSender uses a Timer to asynchronously dispatch the same event to multiple
elements of the same type on a future run loop. However, we previously dispatched events
to elements from any Document rather than the one that requested the event send.

This patch changes EventSender to be associated with a single Document. EventSenders
for each Document are lazily allocated. Further per-Document or global optimizations
are possible.

This change also lays the groundwork for making EventSender-related DOM events
deterministic during web replay, tracked at <https://webkit.org/b/137090>.

No new tests, covered by fast/text/svg-font-trigger-load-event.html.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::implicitClose):
Dispatch pending events for this document only. Rename local variable f to frame.

* dom/Document.h:
(WebCore::Document::sharedEventSenders):
* dom/EventSender.h:
(WebCore::EventSender::EventSender):
(WebCore::EventSender::hasPendingEvents):
(WebCore::EventSender<T>::dispatchEventSoon):
(WebCore::EventSender<T>::cancelEvent):
(WebCore::EventSender<T>::dispatchPendingEvents):
(WebCore::EventSender<T>::EventSender): Deleted. The type argument was not necessary.
* dom/SharedEventSenders.cpp: Added. Lazily creates event senders as they are requested.
(WebCore::SharedEventSenders::linkLoadEventSender):
(WebCore::SharedEventSenders::styleLoadEventSender):
(WebCore::SharedEventSenders::imageBeforeloadEventSender):
(WebCore::SharedEventSenders::imageLoadEventSender):
(WebCore::SharedEventSenders::imageErrorEventSender):
* dom/SharedEventSenders.h: Added.
(WebCore::SharedEventSenders::SharedEventSenders):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::~HTMLLinkElement):
(WebCore::HTMLLinkElement::dispatchPendingEvent):
(WebCore::HTMLLinkElement::notifyLoadedSheetAndAllCriticalSubresources):
(WebCore::linkLoadEventSender): Deleted.
(WebCore::HTMLLinkElement::dispatchPendingLoadEvents): Deleted.
* html/HTMLLinkElement.h:
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::~HTMLStyleElement):
(WebCore::HTMLStyleElement::dispatchPendingEvent):
(WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):
(WebCore::styleLoadEventSender): Deleted.
(WebCore::HTMLStyleElement::dispatchPendingLoadEvents): Deleted.
* html/HTMLStyleElement.h:
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::beforeLoadEventSender):
(WebCore::ImageLoader::loadEventSender):
(WebCore::ImageLoader::errorEventSender):
(WebCore::ImageLoader::dispatchPendingEvent):
(WebCore::beforeLoadEventSender): Deleted.
(WebCore::loadEventSender): Deleted.
(WebCore::errorEventSender): Deleted.
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvents): Deleted.
(WebCore::ImageLoader::dispatchPendingLoadEvents): Deleted.
(WebCore::ImageLoader::dispatchPendingErrorEvents): Deleted.
* loader/ImageLoader.h:
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::append): Remove an early call to the EventSender for image
beforeload events. This was a performance optimization, but is no longer safe since the
document (and thus the event sender) may not be available in a synchronous document write.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Support modern for loops over StringViews
https://bugs.webkit.org/show_bug.cgi?id=137165

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-10-03
Reviewed by Darin Adler.

This patch adds two functions, codePoints() and codeUnits(), on StringView.
These two functions return small objects which have begin() and end() functions,
which means it can be used by the modern for loop style. This small class also
has an inner iterator class which can be incremented, dereferenced, and
compared.

Using these new objects looks like this:
for (UChar codeunit : stringView.codeUnits()) { } and
for (UChar32 codepoint : stringView.codePoints()) { }.

* wtf/text/StringView.h:
(WTF::StringView::codepoints):
(WTF::StringView::codeunits):
(WTF::StringViewCodePointIterator::StringViewCodePointIterator):
(WTF::StringViewCodePointIterator::Iterator::Iterator):
(WTF::StringViewCodePointIterator::Iterator::operator*):
(WTF::StringViewCodePointIterator::Iterator::operator!=):
(WTF::StringViewCodeUnitIterator::StringViewCodeUnitIterator):
(WTF::StringViewCodeUnitIterator::Iterator::Iterator):
(WTF::StringViewCodeUnitIterator::Iterator::operator*):
(WTF::StringViewCodeUnitIterator::Iterator::operator!=):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174271 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed build fix.

Fixing the Windows build after r174269.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-10-03

* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::shapeAndPlaceItem):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r173531): Use after free in WebCore::RenderStyle::fontMetrics /
WebCore::CSSPrimitiveValue::computeLengthDouble
https://bugs.webkit.org/show_bug.cgi?id=136864

Reviewed by Andreas Kling.

Source/WebCore:

FontLoader previously called updateDocumentStyleIfNeeded,
which would reset styles currently in use as part of
the tabIndex calculation. The FontLoader should instead
wait for pending stylesheets to load.

Tests: fast/css/fontloader-tab-index.html

* css/FontLoader.cpp:
(WebCore::FontLoader::notifyWhenFontsReady): Do not immediately
call loadingDone().
(WebCore::FontLoader::loadingDone): Wait for stylesheets to
finish loading rather than updating document styles.
* css/FontLoader.h:
(WebCore::FontLoader::loading): Include JS font loads when testing
for the loading state.

LayoutTests:

Test that getting the tab index on a body element with
font-relative measurements to a local @font-face do not
cause a crash.

* fast/css/fontloader-tab-index-expected.html: Added.
* fast/css/fontloader-tab-index.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Bump up and patch dependencies to allow building for aarch64
https://bugs.webkit.org/show_bug.cgi?id=137147

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-10-03
Reviewed by Martin Robinson.

The currently used versions of pixman, libffi, librsvg, glib,
glib-networking, fontconfig, libxml2, gst-plugins-base fail to configure
and/or build for aarch64, so they are bumped up and patched where
necessary. Wherever possible, the same versions and patches were used as
for the EFL port bump-up
(https://bugs.webkit.org/show_bug.cgi?id=135885).

After the bump-up, a hitherto hidden bug in gst-plugins-good caused a
regression by crashing http/tests/media/video-redirect.html . A patch
already in upstream fixes that bug.

This change does not touch xserver, which also needs bumping up, but
will be dealt with later.

* gtk/jhbuild.modules:
Specified versions and patches necessary to correctly build for aarch64.
* gtk/patches/gst-events-arent-gstobjects.patch:
Added. Patches gst-plugins-good to fix a bug in .mov file demuxing.
* gtk/patches/gst-prevent-neon-check-in-configure-from-passing-under-aarch64.patch:
Added. Patches gst-plugins-base to configure correctly for aarch64.
* gtk/patches/librsvg-2.36.1-bump-up-config.guess-to-support-aarch64.patch:
Added. Bumps up config.guess and config.sub in librsvg to recognize
aarch64.
* gtk/patches/libxml2-2.9.0-dtd.patch:
Removed. Not necessary for libxml2 v2.9.1 anymore.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
FTL should sink PutLocals
https://bugs.webkit.org/show_bug.cgi?id=137168

Reviewed by Oliver Hunt.
Source/JavaScriptCore:

        
We've known for a while that our PutLocal situation was sub-optimal. We emit them anytime we
"pass" arguments to an inlined function call, because we need to enable the runtime to grab
those arguments when doing foo.arguments where foo is inlined: our engine doesn't deoptimize
in that case but rather just relies on the arguments being flushed (i.e. a copy of their
values is spilled) at a well-known place in a well-known format.
        
The PutLocals incur two costs: (1) they are store instructions and stores ain't free, and (2)
they look like escaping sites and so they inhibit object allocation sinking.
        
But in most cases, the PutLocals are unnecessary because the inlined code never performs any
side effect that could transitively lead to function.arguments. Even if the inlined code
could do such a side effect, it may be on a rare path so there is no need to penalize the
entire function.
        
This patch implements one solution to the PutLocal problem: it aggressively sinks PutLocals
to the latest possible point. This is even more aggressive than the object allocation
sinking. That sinking algorithm avoids creating situations where an object could be
materialized more than one along any path. PutLocal sinking, on the other hand, doesn't avoid
this at all - both to make the phase cheaper and simpler and to make it more aggressive.
Every PutLocal is sunk no matter what.
        
The upside of this patch is that it eliminates many PutLocals: many of them are sunk "past
their death", thus eliminating them completely. Others are sunk to rare paths. This enables a
lot of object allocation sinking and it removes a lot of pointless store instructions.
        
It also has downsites. Sinking PutLocals increases register pressure because it increases the
live ranges of things like inlined arguments.
        
This patch is a net performance win in its current form: 1% SunSpider regression, 2% OctaneV2
progression, 0.6% Kraken regression, 1% AsmBench progression, and 0.5% CompressionBench
regression. The biggest win is on Octane/raytrace, which improves by 27%.

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.h:
* bytecode/Operands.h:
(JSC::Operands::dump): Deleted.
* bytecode/OperandsInlines.h:
(JSC::Traits>::dump):
* bytecode/VirtualRegister.h:
(JSC::VirtualRegister::isHeader):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGClobberSet.h:
(JSC::DFG::ClobberSetAdd::operator()):
(JSC::DFG::ClobberSetOverlaps::operator()):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
(JSC::DFG::NoOpClobberize::operator()):
(JSC::DFG::CheckClobberize::operator()):
(JSC::DFG::AbstractHeapOverlaps::operator()):
(JSC::DFG::ReadMethodClobberize::operator()):
(JSC::DFG::WriteMethodClobberize::operator()):
(JSC::DFG::DefMethodClobberize::operator()):
* dfg/DFGFlushFormat.h:
(JSC::DFG::merge):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::capturedVarsFor):
* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::determineMaterializationPoints):
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGPreciseLocalClobberize.h: Added.
(JSC::DFG::PreciseLocalClobberizeAdaptor::PreciseLocalClobberizeAdaptor):
(JSC::DFG::PreciseLocalClobberizeAdaptor::read):
(JSC::DFG::PreciseLocalClobberizeAdaptor::write):
(JSC::DFG::PreciseLocalClobberizeAdaptor::def):
(JSC::DFG::PreciseLocalClobberizeAdaptor::callIfAppropriate):
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):
(JSC::DFG::PreciseLocalClobberizeAdaptor::writeTop):
(JSC::DFG::forEachLocalReadByUnwind):
(JSC::DFG::preciseLocalClobberize):
* dfg/DFGPutLocalSinkingPhase.cpp: Added.
(JSC::DFG::performPutLocalSinking):
* dfg/DFGPutLocalSinkingPhase.h: Added.
* dfg/DFGSSACalculator.h:
(JSC::DFG::SSACalculator::computePhis):
* dfg/DFGValidate.cpp:

Source/WTF:

        
Make the set bits of a BitVector iterable.

* wtf/BitVector.h:
(WTF::BitVector::SetBitsIterable::SetBitsIterable):
(WTF::BitVector::SetBitsIterable::iterator::iterator):
(WTF::BitVector::SetBitsIterable::iterator::operator*):
(WTF::BitVector::SetBitsIterable::iterator::operator++):
(WTF::BitVector::SetBitsIterable::iterator::operator==):
(WTF::BitVector::SetBitsIterable::iterator::operator!=):
(WTF::BitVector::SetBitsIterable::begin):
(WTF::BitVector::SetBitsIterable::end):
(WTF::BitVector::setBits):

LayoutTests:


* js/regress/elidable-new-object-then-call-expected.txt: Added.
* js/regress/elidable-new-object-then-call.html: Added.
* js/regress/script-tests/elidable-new-object-then-call.js: Added.
(sumOfArithSeries):
(bar):
(foo):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Settle for 2 chid processes running NRWT on Windows.
* Scripts/webkitpy/port/win.py:
(WinPort.default_child_processes): 3 child processes reintroduces the sporadic crashing, will settle for 2.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Back-to-back fullscreen videos result in incorrectly sized videos
https://bugs.webkit.org/show_bug.cgi?id=137380

Reviewed by Eric Carlson.

During a normal workflow, a <video> element will create an AVPlayerLayer, then it will get a
fullscreen (hosted) parent layer, then it will be told an explicit fullscreen size. But when
a <video> element creates an AVPlayerLayer after the <video> element is already in
fullscreen mode, it sets that AVPlayerLayer's frame using the size of the hosted parent
layer, rather than the explicit fullscreen size. Instead, use the (already set) explicit
fullscreen size after creating the AVPlayerLayer.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::ensureAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r174270.
https://bugs.webkit.org/show_bug.cgi?id=137397

crashes on the bots (Requested by dethbakin on #webkit).

Reverted changeset:

"EventSender dispatches should be per-Document"
https://bugs.webkit.org/show_bug.cgi?id=136051
http://trac.webkit.org/changeset/174270

Patch by Commit Queue <commit-queue@webkit.org> on 2014-10-03


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174278 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[SVG -> OTF Converter] Support non-BMP codepoints
https://bugs.webkit.org/show_bug.cgi?id=137097

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-09-28
Reviewed by Darin Adler.

This patch has two pieces:

1) Moves write16(), overwrite32() and overwrite16() inside SVGToOTFFontConverter. This
is so that we don't have to keep passing around references to m_result everywhere. Instead,
put the output vector inside the class as an instance member variable. In addition, rename
write32() and write16() to append32() and append16(), and provide a copy of append32 inside
SVGToOTFFontConverter.

2) Change the "Codepoint" typedef to be a String, and rename it to Codepoints. This is so that
we can implement ligatures later on. Update all the places that use this variable to work with
a String of multiple codepoints.

This patch updates the CMAP table to use format 12 instead of format 4. It currently only maps
single codepoints to glyph IDs and skips all multi-codepoint glyphs. We will implement
ligatures in another patch.

Test: svg/custom/glyph-selection-non-bmp.svg

* svg/SVGToOTFFontConversion.cpp:
(WebCore::append32): Append a result to a given vector. This is for the path transcoder.
(WebCore::SVGToOTFFontConverter::releaseResult): WTF::move()'s the result.
(WebCore::SVGToOTFFontConverter::GlyphData::GlyphData): Update to take Codepoints instead of Codepoint.
(WebCore::SVGToOTFFontConverter::append32): Piece 1 above.
(WebCore::SVGToOTFFontConverter::append16): Ditto.
(WebCore::SVGToOTFFontConverter::append4ByteCode): Convenience function.
(WebCore::SVGToOTFFontConverter::overwrite32): Piece 1 above.
(WebCore::SVGToOTFFontConverter::overwrite16): Ditto.
(WebCore::SVGToOTFFontConverter::appendCMAPTable): Update to format 12.
(WebCore::SVGToOTFFontConverter::appendHEADTable): Passing in a result vector is no longer necessary.
(WebCore::SVGToOTFFontConverter::appendHHEATable): Ditto.
(WebCore::SVGToOTFFontConverter::appendHMTXTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendMAXPTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendNAMETable): Ditto.
(WebCore::SVGToOTFFontConverter::appendOS2Table): Ditto.
(WebCore::SVGToOTFFontConverter::appendPOSTTable): Ditto.
(WebCore::isValidStringForCFF): Ditto.
(WebCore::SVGToOTFFontConverter::appendCFFValidString): Ditto.
(WebCore::SVGToOTFFontConverter::appendCFFTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendVORGTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendVHEATable): Ditto.
(WebCore::SVGToOTFFontConverter::appendVMTXTable): Ditto.
(WebCore::SVGToOTFFontConverter::addCodepointRanges): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::addCodepoints): Ditto.
(WebCore::SVGToOTFFontConverter::addGlyphNames): Ditto.
(WebCore::SVGToOTFFontConverter::appendKERNSubtable): Ditto.
(WebCore::SVGToOTFFontConverter::appendKERNTable): Ditto.
(WebCore::writeCFFEncodedNumber): Passing in a result vector is no longer necessary.
(WebCore::SVGToOTFFontConverter::appendGlyphData): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::processGlyphElement): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically): Comparing Codepoints
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::calculateChecksum): Passing in a result vector is no longer necessary.
(WebCore::SVGToOTFFontConverter::appendTable): Ditto.
(WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Ditto.
(WebCore::convertSVGToOTFFont): Move out of the result vector.
(WebCore::write32): Deleted.
(WebCore::write16): Deleted.
(WebCore::overwrite32): Deleted.
(WebCore::appendCFFValidString): Deleted.
(WebCore::transcodeGlyphPaths): Deleted.
(WebCore::calculateChecksum): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174279 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r173265): UIWebView PDF loading is completely broken
https://bugs.webkit.org/show_bug.cgi?id=137386
<rdar://problem/18524717>

Reviewed by David Kilzer.

* WebView/WebPDFViewPlaceholder.h:
* WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder layout]):
(-[WebPDFViewPlaceholder finishedLoadingWithDataSource:]):
Restore important code that creates the CGDataProvider and sets _didFinishLoad
and calls _doPostLoadOrUnlockTasks after finishing a load, which was haphazardly
removed in the aforementioned revision.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
webkit-appearance: default-button styling does not set the button font color to white
https://bugs.webkit.org/show_bug.cgi?id=137399
rdar://problem/17788616

Reviewed by Dave Hyatt.

When a button is styled with -webkit-appearance: default-button, it should
use the CSSValueActivebuttontext value for its text color when the window
is active, and the normal value when the window is inactive.

Since activating (focus/blur) windows doesn't cause a style recalculation, this
is applied as a paint-time operation. However, the render tree children that
paint the text don't know that they are contained within a RenderButton
and that the button is a default type. So I added an inherited flag, similar
to what we use for visited links, to remember if we're in a button. And then
computeTextPaintStyle chooses the correct value.

We can't test this because our LayoutTest system doesn't have
an active window, and thus the default button renders like a normal
button. This should cause no regressions though. Also, the appearance is
protected behind an SPI (or Setting), so this is not exposed to the Web.

* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle): Set the flag if we're inside a default button.
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle): If we're in a default button inside an active window,
use the CSSValueActivebuttontext color.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle): Add and expose the new inherited flag: ._insideDefaultButton.
(WebCore::RenderStyle::changeRequiresRepaint): Ditto.
* rendering/style/RenderStyle.h: Ditto.

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