[Win] Unreviewed gardening.

* wtf/MathExtras.h: VS2013 provides an lrint implementation. No need to implement
our own.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
_pageExtendedBackgroundColor should not be exposed on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130093

Reviewed by Simon Fraser.

Added comment indicating that _pageExtendedBackgroundColor is deprecated.
* UIProcess/API/Cocoa/WKViewPrivate.h:

_pageExtendedBackgroundColor now returns nil, but the conversation functionality 
is maintained with a convenience method pageExtendedBackgroundColor.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView pageExtendedBackgroundColor]):
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _pageExtendedBackgroundColor]):

Added comment indicating that _pageExtendedBackgroundColor is deprecated.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

Return nil.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _pageExtendedBackgroundColor]):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165454 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add "System Font" to the list of whitelisted DRT fonts
https://bugs.webkit.org/show_bug.cgi?id=130046

Reviewed by Darin Adler.

* DumpRenderTree/mac/DumpRenderTree.mm:
(allowedFontFamilySet):
* WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Get the incomplete WebVTT Regions code to build again.
https://bugs.webkit.org/show_bug.cgi?id=130094

Reviewed by Eric Carlson.

The feature is not being turned on here, so there are no new tests.

* DerivedSources.make: Add missing IDL files for Regions.
* WebCore.xcodeproj/project.pbxproj: Add Regions-related files.
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newRegionsParsed): Add stub implementation.
* html/track/LoadableTextTrack.cpp: Add missing include file.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Correct ordering of construction
to avoid compiler warning.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165456 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][CMake] --update-gtk has no effect
https://bugs.webkit.org/show_bug.cgi?id=130088

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2014-03-11
Reviewed by Philippe Normand.

* Scripts/webkitdirs.pm:
(buildCMakeProjectOrExit): call update-webkitgtk-libs if --update-gtk has been passed
as an argument.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MarkedBlocks that are "full enough" shouldn't be swept after EdenCollections
https://bugs.webkit.org/show_bug.cgi?id=129920

Reviewed by Geoffrey Garen.

This patch introduces the notion of "retiring" MarkedBlocks. We retire a MarkedBlock
when the amount of free space in a MarkedBlock drops below a certain threshold.
Retired blocks are not considered for sweeping.

This is profitable because it reduces churn during sweeping. To build a free list, 
we have to scan through each cell in a block. After a collection, all objects that 
are live in the block will remain live until the next FullCollection, at which time
we un-retire all previously retired blocks. Thus, a small number of objects in a block
that die during each EdenCollection could cause us to do a disproportiante amount of 
sweeping for how much free memory we get back.

This patch looks like a consistent ~2% progression on boyer and is neutral everywhere else.

* heap/Heap.h:
(JSC::Heap::didRetireBlockWithFreeListSize):
* heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::tryAllocateHelper):
(JSC::MarkedAllocator::removeBlock):
(JSC::MarkedAllocator::reset):
* heap/MarkedAllocator.h:
(JSC::MarkedAllocator::MarkedAllocator):
(JSC::MarkedAllocator::forEachBlock):
* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::sweepHelper):
(JSC::MarkedBlock::clearMarksWithCollectionType):
(JSC::MarkedBlock::didRetireBlock):
* heap/MarkedBlock.h:
(JSC::MarkedBlock::willRemoveBlock):
(JSC::MarkedBlock::isLive):
* heap/MarkedSpace.cpp:
(JSC::MarkedSpace::clearNewlyAllocated):
(JSC::MarkedSpace::clearMarks):
* runtime/Options.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
GetById list caching should use something object-oriented rather than PolymorphicAccessStructureList
https://bugs.webkit.org/show_bug.cgi?id=129778

Reviewed by Geoffrey Garen.
        
Also deduplicate the GetById getter call caching. Also add some small tests for
get stubs.
        
This change reduces the amount of code involved in GetById access caching and it
creates data structures that can serve as an elegant scaffold for introducing other
kinds of caches or improving current caching styles. It will definitely make getter
performance improvements easier to implement.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printGetByIdCacheStatus):
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfo):
* bytecode/PolymorphicGetByIdList.cpp: Added.
(JSC::GetByIdAccess::GetByIdAccess):
(JSC::GetByIdAccess::~GetByIdAccess):
(JSC::GetByIdAccess::fromStructureStubInfo):
(JSC::GetByIdAccess::visitWeak):
(JSC::PolymorphicGetByIdList::PolymorphicGetByIdList):
(JSC::PolymorphicGetByIdList::from):
(JSC::PolymorphicGetByIdList::~PolymorphicGetByIdList):
(JSC::PolymorphicGetByIdList::currentSlowPathTarget):
(JSC::PolymorphicGetByIdList::addAccess):
(JSC::PolymorphicGetByIdList::isFull):
(JSC::PolymorphicGetByIdList::isAlmostFull):
(JSC::PolymorphicGetByIdList::didSelfPatching):
(JSC::PolymorphicGetByIdList::visitWeak):
* bytecode/PolymorphicGetByIdList.h: Added.
(JSC::GetByIdAccess::GetByIdAccess):
(JSC::GetByIdAccess::isSet):
(JSC::GetByIdAccess::operator!):
(JSC::GetByIdAccess::type):
(JSC::GetByIdAccess::structure):
(JSC::GetByIdAccess::chain):
(JSC::GetByIdAccess::chainCount):
(JSC::GetByIdAccess::stubRoutine):
(JSC::GetByIdAccess::doesCalls):
(JSC::PolymorphicGetByIdList::isEmpty):
(JSC::PolymorphicGetByIdList::size):
(JSC::PolymorphicGetByIdList::at):
(JSC::PolymorphicGetByIdList::operator[]):
* bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::visitWeakReferences):
* bytecode/StructureStubInfo.h:
(JSC::isGetByIdAccess):
(JSC::StructureStubInfo::initGetByIdList):
* jit/Repatch.cpp:
(JSC::generateGetByIdStub):
(JSC::tryCacheGetByID):
(JSC::patchJumpToGetByIdStub):
(JSC::tryBuildGetByIDList):
(JSC::tryBuildPutByIdList):
* tests/stress/getter.js: Added.
(foo):
(.o):
* tests/stress/polymorphic-prototype-accesses.js: Added.
(Foo):
(Bar):
(foo):
* tests/stress/prototype-getter.js: Added.
(Foo):
(foo):
* tests/stress/simple-prototype-accesses.js: Added.
(Foo):
(foo):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165459 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Some images are blank in the rebaseline server UI
https://bugs.webkit.org/show_bug.cgi?id=130104

Reviewed by Tim Horton.

Let the server check for images in the 'retries' directory
if it can't find an image otherwise.

* Scripts/webkitpy/tool/servers/rebaselineserver.py:
(RebaselineHTTPRequestHandler.test_result):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165460 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement MathML spacing around operators .
https://bugs.webkit.org/show_bug.cgi?id=115787

Reviewed by Chris Fleizach.

Source/WebCore:

This makes the <mo> operators use the lspace/rspace properties to
determine their spacing. The spacing is now consistent with the one
of <mfenced> and as a consequence bug 118843 is fixed. This also ensures
that the rendering of <mo> elements is updated when the form or
attributes are changed.

Tests: mathml/presentation/dir-mo.html
       mathml/presentation/mo-form-dynamic.html
       mathml/presentation/mo-form-minus-plus.html
       mathml/presentation/mo-form.html
       mathml/presentation/mo-lspace-rspace-dynamic.html
       mathml/presentation/mo-lspace-rspace.html
       mathml/presentation/mo-whitespaces.html

* css/mathml.css:
* mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::childrenChanged):
* mathml/MathMLInlineContainerElement.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
(WebCore::RenderMathMLOperator::SetOperatorProperties):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::updateOperatorProperties):
(WebCore::RenderMathMLOperator::updateStyle):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::updateOperatorProperties):
* rendering/mathml/RenderMathMLRow.h:
* rendering/mathml/RenderMathMLToken.h:

LayoutTests:

Add many new tests to verify the form/lspace/rspace properties of the
<mo> element and that the whitespace of the text content is collapsed.
Update fenced-mi now that bug 118843 is fixed.

* mathml/presentation/dir-mo-expected.html: Added.
* mathml/presentation/dir-mo.html: Added.
* mathml/presentation/fenced-expected.html:
* mathml/presentation/fenced-mi-expected.html:
* mathml/presentation/mo-form-dynamic-expected.html: Added.
* mathml/presentation/mo-form-dynamic.html: Added.
* mathml/presentation/mo-form-expected.html: Added.
* mathml/presentation/mo-form-minus-plus-expected.html: Added.
* mathml/presentation/mo-form-minus-plus.html: Added.
* mathml/presentation/mo-form.html: Added.
* mathml/presentation/mo-lspace-rspace-dynamic-expected.html: Added.
* mathml/presentation/mo-lspace-rspace-dynamic.html: Added.
* mathml/presentation/mo-lspace-rspace-expected.html: Added.
* mathml/presentation/mo-lspace-rspace.html: Added.
* mathml/presentation/mo-whitespaces-expected.html: Added.
* mathml/presentation/mo-whitespaces.html: Added.
* platform/mac/mathml/presentation/mo-stretch-expected.txt: update reference.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165461 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed build fix on the EFL port when used lower version of ATK

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::y): Fixed typo.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165463 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Invisible Operators should not add space.
https://bugs.webkit.org/show_bug.cgi?id=115786

Reviewed by Chris Fleizach.

Source/WebCore:

This change adds special handling for invisible operator to ensure they really behave as empty box. We now ignore their glyph widths and do not paint them.

Test: mathml/presentation/mo-invisible.html

* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
(WebCore::RenderMathMLOperator::paint):
* rendering/mathml/RenderMathMLOperator.h:

LayoutTests:

Add a reftest based on the examples of the MathML specification to verify that invisible operators do not add space.

* mathml/presentation/mo-invisible-expected.html: Added.
* mathml/presentation/mo-invisible.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165464 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Don't use NodeRenderingTraversal for pseudo elements
https://bugs.webkit.org/show_bug.cgi?id=130091

Reviewed by Andreas Kling.

Make traversing during style resolve more comprehensible by handling before/after pseudo elements explicitly.

With this patch NodeRenderingTraversal is only needed for InsertionPoints (which are nothing but an implementation
detail of the <details> element at this point).

* dom/Element.cpp:
(WebCore::shouldUseNodeRenderingTraversalSlowPath):
        
    PseudoElements don't need the slow path anymore.

(WebCore::Element::setBeforePseudoElement):
(WebCore::Element::setAfterPseudoElement):
(WebCore::Element::clearBeforePseudoElement):
(WebCore::Element::clearAfterPseudoElement):
* dom/NodeRenderingTraversal.cpp:
(WebCore::NodeRenderingTraversal::traverseParent):
(WebCore::NodeRenderingTraversal::firstChildSlow):
(WebCore::NodeRenderingTraversal::nextSiblingSlow):
(WebCore::NodeRenderingTraversal::previousSiblingSlow):
* dom/NodeRenderingTraversal.h:
(WebCore::NodeRenderingTraversal::firstChild):
* style/StyleResolveTree.cpp:
(WebCore::Style::nextSiblingRenderer):
        
    Add ::before/::after pseudo element handling here.

(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::elementInsideRegionNeedsRenderer):
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::previousSiblingRenderer):
        
    Add ::before pseudo element handling here (text node can't be ::after).

(WebCore::Style::reattachTextRenderersForWhitespaceOnlySiblingsAfterAttachIfNeeded):
(WebCore::Style::textRendererIsNeeded):
(WebCore::Style::createTextRendererIfNeeded):
(WebCore::Style::attachTextRenderer):
(WebCore::Style::updateTextRendererAfterContentChange):
(WebCore::Style::attachChildren):
(WebCore::Style::attachDistributedChildren):
        
    Handle InsertionPoints in one place.

(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
(WebCore::Style::attachRenderTree):
(WebCore::Style::resolveLocal):
(WebCore::Style::updateTextStyle):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::updateBeforeOrAfterPseudoElement):
(WebCore::Style::resolveTree):
        
    Pass the rendering parent around to various functions instead of determining it repeatedly by calling 
    NodeRenderingTraversal::parent. It is always the same for all direct children being resolved and generally just
    the parent element.



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