ChangeLog-2014-02-20 [plain text]
2014-02-20 Dean Jackson <dino@apple.com>
An unresolved WebGL Context should operate normally until used
https://bugs.webkit.org/show_bug.cgi?id=129110
Reviewed by Brent Fulgham.
Add the ability to create a special instance of WebGLRenderingContext,
that appears normal but won't actually do anything if asked. This will
be created in the case of the WebGLLoadPolicy being "pending" and helps
in the case of pages that feature detect by creating a context and
immediately deleting it.
Note that the context doesn't actually try to recover from this state
yet, although that would be a nice addition. When asked to do something
it could actually try to create the GraphicsContext3D. However, if it
fails it would then have to fire a context lost.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext): Move the load policy code out of getContext.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create): Add the ability to create a pending context.
(WebCore::WebGLRenderingContext::WebGLRenderingContext): New constructor for a pending context.
(WebCore::WebGLRenderingContext::~WebGLRenderingContext): Only delete if not pending.
(WebCore::WebGLRenderingContext::destroyGraphicsContext3D): Ditto.
(WebCore::WebGLRenderingContext::clearIfComposited): Everything below is about checking the
pending state before doing anything, and triggering a resolution if necessary.
(WebCore::WebGLRenderingContext::activeTexture):
(WebCore::WebGLRenderingContext::attachShader):
(WebCore::WebGLRenderingContext::bindAttribLocation):
(WebCore::WebGLRenderingContext::checkObjectToBeBound):
(WebCore::WebGLRenderingContext::blendColor):
(WebCore::WebGLRenderingContext::blendEquation):
(WebCore::WebGLRenderingContext::blendEquationSeparate):
(WebCore::WebGLRenderingContext::blendFunc):
(WebCore::WebGLRenderingContext::blendFuncSeparate):
(WebCore::WebGLRenderingContext::bufferData):
(WebCore::WebGLRenderingContext::bufferSubData):
(WebCore::WebGLRenderingContext::checkFramebufferStatus):
(WebCore::WebGLRenderingContext::clear):
(WebCore::WebGLRenderingContext::clearColor):
(WebCore::WebGLRenderingContext::clearDepth):
(WebCore::WebGLRenderingContext::clearStencil):
(WebCore::WebGLRenderingContext::colorMask):
(WebCore::WebGLRenderingContext::compileShader):
(WebCore::WebGLRenderingContext::compressedTexImage2D):
(WebCore::WebGLRenderingContext::compressedTexSubImage2D):
(WebCore::WebGLRenderingContext::copyTexImage2D):
(WebCore::WebGLRenderingContext::copyTexSubImage2D):
(WebCore::WebGLRenderingContext::createBuffer):
(WebCore::WebGLRenderingContext::createFramebuffer):
(WebCore::WebGLRenderingContext::createTexture):
(WebCore::WebGLRenderingContext::createProgram):
(WebCore::WebGLRenderingContext::createRenderbuffer):
(WebCore::WebGLRenderingContext::createShader):
(WebCore::WebGLRenderingContext::cullFace):
(WebCore::WebGLRenderingContext::deleteObject):
(WebCore::WebGLRenderingContext::depthFunc):
(WebCore::WebGLRenderingContext::depthMask):
(WebCore::WebGLRenderingContext::depthRange):
(WebCore::WebGLRenderingContext::detachShader):
(WebCore::WebGLRenderingContext::disable):
(WebCore::WebGLRenderingContext::disableVertexAttribArray):
(WebCore::WebGLRenderingContext::validateDrawArrays):
(WebCore::WebGLRenderingContext::validateDrawElements):
(WebCore::WebGLRenderingContext::enable):
(WebCore::WebGLRenderingContext::enableVertexAttribArray):
(WebCore::WebGLRenderingContext::finish):
(WebCore::WebGLRenderingContext::flush):
(WebCore::WebGLRenderingContext::framebufferRenderbuffer):
(WebCore::WebGLRenderingContext::framebufferTexture2D):
(WebCore::WebGLRenderingContext::frontFace):
(WebCore::WebGLRenderingContext::generateMipmap):
(WebCore::WebGLRenderingContext::getActiveAttrib):
(WebCore::WebGLRenderingContext::getActiveUniform):
(WebCore::WebGLRenderingContext::getAttachedShaders):
(WebCore::WebGLRenderingContext::getAttribLocation):
(WebCore::WebGLRenderingContext::getBufferParameter):
(WebCore::WebGLRenderingContext::getContextAttributes):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getProgramParameter):
(WebCore::WebGLRenderingContext::getProgramInfoLog):
(WebCore::WebGLRenderingContext::getRenderbufferParameter):
(WebCore::WebGLRenderingContext::getShaderParameter):
(WebCore::WebGLRenderingContext::getShaderInfoLog):
(WebCore::WebGLRenderingContext::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContext::getShaderSource):
(WebCore::WebGLRenderingContext::getTexParameter):
(WebCore::WebGLRenderingContext::getUniform):
(WebCore::WebGLRenderingContext::getUniformLocation):
(WebCore::WebGLRenderingContext::getVertexAttrib):
(WebCore::WebGLRenderingContext::getVertexAttribOffset):
(WebCore::WebGLRenderingContext::hint):
(WebCore::WebGLRenderingContext::isBuffer):
(WebCore::WebGLRenderingContext::isContextLostOrPending):
(WebCore::WebGLRenderingContext::isEnabled):
(WebCore::WebGLRenderingContext::isFramebuffer):
(WebCore::WebGLRenderingContext::isProgram):
(WebCore::WebGLRenderingContext::isRenderbuffer):
(WebCore::WebGLRenderingContext::isShader):
(WebCore::WebGLRenderingContext::isTexture):
(WebCore::WebGLRenderingContext::lineWidth):
(WebCore::WebGLRenderingContext::linkProgram):
(WebCore::WebGLRenderingContext::pixelStorei):
(WebCore::WebGLRenderingContext::polygonOffset):
(WebCore::WebGLRenderingContext::readPixels):
(WebCore::WebGLRenderingContext::releaseShaderCompiler):
(WebCore::WebGLRenderingContext::renderbufferStorage):
(WebCore::WebGLRenderingContext::sampleCoverage):
(WebCore::WebGLRenderingContext::scissor):
(WebCore::WebGLRenderingContext::shaderSource):
(WebCore::WebGLRenderingContext::stencilFunc):
(WebCore::WebGLRenderingContext::stencilFuncSeparate):
(WebCore::WebGLRenderingContext::stencilMask):
(WebCore::WebGLRenderingContext::stencilMaskSeparate):
(WebCore::WebGLRenderingContext::stencilOp):
(WebCore::WebGLRenderingContext::stencilOpSeparate):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texParameter):
(WebCore::WebGLRenderingContext::texSubImage2D):
(WebCore::WebGLRenderingContext::uniform1f):
(WebCore::WebGLRenderingContext::uniform1fv):
(WebCore::WebGLRenderingContext::uniform1i):
(WebCore::WebGLRenderingContext::uniform1iv):
(WebCore::WebGLRenderingContext::uniform2f):
(WebCore::WebGLRenderingContext::uniform2fv):
(WebCore::WebGLRenderingContext::uniform2i):
(WebCore::WebGLRenderingContext::uniform2iv):
(WebCore::WebGLRenderingContext::uniform3f):
(WebCore::WebGLRenderingContext::uniform3fv):
(WebCore::WebGLRenderingContext::uniform3i):
(WebCore::WebGLRenderingContext::uniform3iv):
(WebCore::WebGLRenderingContext::uniform4f):
(WebCore::WebGLRenderingContext::uniform4fv):
(WebCore::WebGLRenderingContext::uniform4i):
(WebCore::WebGLRenderingContext::uniform4iv):
(WebCore::WebGLRenderingContext::uniformMatrix2fv):
(WebCore::WebGLRenderingContext::uniformMatrix3fv):
(WebCore::WebGLRenderingContext::uniformMatrix4fv):
(WebCore::WebGLRenderingContext::validateProgram):
(WebCore::WebGLRenderingContext::vertexAttribPointer):
(WebCore::WebGLRenderingContext::viewport):
(WebCore::WebGLRenderingContext::forceLostContext):
(WebCore::WebGLRenderingContext::forceRestoreContext):
(WebCore::WebGLRenderingContext::platformLayer):
(WebCore::WebGLRenderingContext::removeSharedObject):
(WebCore::WebGLRenderingContext::addSharedObject):
(WebCore::WebGLRenderingContext::removeContextObject):
(WebCore::WebGLRenderingContext::addContextObject):
(WebCore::WebGLRenderingContext::detachAndRemoveAllObjects):
(WebCore::WebGLRenderingContext::stop):
(WebCore::WebGLRenderingContext::vertexAttribfImpl):
(WebCore::WebGLRenderingContext::vertexAttribfvImpl):
(WebCore::WebGLRenderingContext::vertexAttribDivisor):
* html/canvas/WebGLRenderingContext.h:
2014-02-20 Dean Jackson <dino@apple.com>
Add an unresolved WebGLPolicy and an API to resolve it
https://bugs.webkit.org/show_bug.cgi?id=129109
Reviewed by Anders Carlsson.
Add a third WebGLLoadPolicy which is "pending" allowing the page
to go ahead with creating the WebGLRenderingContext and resolve the policy
at a later time. Add a new API resolveWebGLLoadPolicy to do the resolution.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext): WebGLBlock -> WebGLBlockCreation
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::webGLPolicyForURL): WebGLAllow -> WebGLAllowCreation.
(WebCore::FrameLoaderClient::resolveWebGLPolicyForURL): New method.
* loader/FrameLoaderTypes.h: Add WebGLPendingCreation.
2014-02-20 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Enable compositing RenderLayer painting on device pixel position.
https://bugs.webkit.org/show_bug.cgi?id=128509
Reviewed by Simon Fraser.
GraphicsLayer is now positioned on device pixel boundary. This enables us to put
compositing layers on a subpixel position and animate them with device pixel
precision.
Tests: fast/sub-pixel/compositing-layers-on-subpixel-position.html
fast/sub-pixel/simple-clipping.html
* platform/LayoutUnit.h:
(WebCore::ceilToDevicePixel):
* platform/graphics/LayoutPoint.h:
(WebCore::flooredForPainting):
(WebCore::ceiledForPainting):
* platform/graphics/LayoutRect.cpp:
(WebCore::enclosingRectForPainting):
* platform/graphics/LayoutRect.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox):
(WebCore::pixelFractionForLayerPainting):
(WebCore::calculateDevicePixelOffsetFromRenderer):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::paintIntoLayer):
* rendering/RenderLayerBacking.h:
2014-02-20 Bem Jones-Bey <bjonesbe@adobe.com>
Rename border/padding/margin width/height to horizontal/vertical extent on RenderBoxModelObject
https://bugs.webkit.org/show_bug.cgi?id=129043
Reviewed by David Hyatt.
Using horizontal extent instead of width and vertical extent instead
of height makes it more obvious that these are measurements of both
border/margin/padding sides, not just one.
As David Hyatt put it: "I dislike using terms like 'width' since it
could be confused with the actual border-width CSS name, i.e., a
person new to this code would think the method was returning the pixel
width of a single border."
No new tests, no behavior change.
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::updateWidget):
* inspector/InspectorOverlay.cpp:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::checkFloatsInCleanLine):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::repaintLayerRectsForImage):
(WebCore::RenderBox::positionForPoint):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::horizontalBorderExtent):
(WebCore::RenderBoxModelObject::verticalBorderExtent):
(WebCore::RenderBoxModelObject::verticalBorderAndPaddingExtent):
(WebCore::RenderBoxModelObject::horizontalBorderAndPaddingExtent):
(WebCore::RenderBoxModelObject::verticalMarginExtent):
(WebCore::RenderBoxModelObject::horizontalMarginExtent):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::computePreferredLogicalWidths):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::crossAxisMarginExtentForChild):
(WebCore::RenderFlexibleBox::mainAxisBorderAndPaddingExtentForChild):
(WebCore::RenderFlexibleBox::computeNextFlexLine):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::localCaretRect):
(WebCore::RenderInline::generateCulledLineBoxRects):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::computePreferredLogicalWidths):
(WebCore::RenderListBox::computeLogicalHeight):
* rendering/RenderMenuList.cpp:
(RenderMenuList::computePreferredLogicalWidths):
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::trackPieceRectWithMargins):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::computeLogicalHeight):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
* rendering/line/LineLayoutState.h:
(WebCore::FloatWithRect::FloatWithRect):
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::setReferenceBoxLogicalSize):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::updateCachedBoundaries):
2014-02-20 Bem Jones-Bey <bjonesbe@adobe.com>
Rename RenderBlockFlow::clearFloats and RenderBlockFlow::newLine to be more accurate
https://bugs.webkit.org/show_bug.cgi?id=128991
Reviewed by David Hyatt.
Rename clearFloats to rebuildFloatingObjectSetFromIntrudingFloats
since it does just that.
Rename newLine to clearFloats because it actually does what the CSS
spec calls clearing floats. This also matches clearFloatsIfNeeded.
This also removes a FIXME comment that points to a bug that has
already been fixed.
This patch is based on a Blink patch by leviw:
https://src.chromium.org/viewvc/blink?revision=158598&view=revision
No new tests, no behavior change.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::clearFloats):
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::layoutRunsAndFloats):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleFloat):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
2014-02-19 Pratik Solanki <psolanki@apple.com>
ASSERT in FrameLoader::shouldInterruptLoadForXFrameOptions
https://bugs.webkit.org/show_bug.cgi?id=129081
<rdar://problem/16026440>
Reviewed by Alexey Proskuryakov.
Do not assert if the server sends us a malformed X-Frame-Options header.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
2014-02-20 Krzysztof Czech <k.czech@samsung.com>
AX: Use auto to reduce some code in loops
https://bugs.webkit.org/show_bug.cgi?id=129087
Reviewed by Chris Fleizach.
Use auto where appropriate to reduce some code.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::boundingBoxForQuads):
(WebCore::AccessibilityObject::ariaRoleToWebCoreRole):
* accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
(webkitAccessibleHypertextGetNLinks):
2014-02-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164422.
http://trac.webkit.org/changeset/164422
https://bugs.webkit.org/show_bug.cgi?id=129102
Causes assertions in
ScriptExecutionContext::canSuspendActiveDOMObjects()
(Requested by zdobersek on #webkit).
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/KeyboardEvent.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::publicURLManager):
* dom/ScriptExecutionContext.h:
* dom/ScriptRunner.h:
2014-02-20 Zan Dobersek <zdobersek@igalia.com>
Move to using std::unique_ptr for VisitedLinkState, CheckedRadioButtons
https://bugs.webkit.org/show_bug.cgi?id=128967
Reviewed by Andreas Kling.
Replace uses of OwnPtr and PassOwnPtr in the VisitedLinkState and
CheckedRadioButtons classes with std::unique_ptr.
* dom/CheckedRadioButtons.cpp:
(WebCore::RadioButtonGroup::RadioButtonGroup):
(WebCore::RadioButtonGroup::remove):
(WebCore::CheckedRadioButtons::addButton):
(WebCore::CheckedRadioButtons::removeButton):
* dom/CheckedRadioButtons.h:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
* dom/VisitedLinkState.cpp:
* dom/VisitedLinkState.h:
2014-02-20 Artur Moryc <a.moryc@samsung.com>
AX: Children Nodes for Canvas objects are not equal to Render Objects.
https://bugs.webkit.org/show_bug.cgi?id=123568
Reviewed by Chris Fleizach.
There is a difference in children nodes taken into account for RenderObject
and for NodeObject types. There is a problem with text nodes that are
focusable for EFL/GTK and therefore are not filtered out in the test like it
happens for the MAC port. Text nodes are eliminated in the
AccessibilityRenderObject::computeAccessibilityIsIgnored() method. The same
approach has been applied to the NodeObject to eliminate text nodes.
Covered by existing tests.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):
2014-02-20 Zan Dobersek <zdobersek@igalia.com>
Move to using std::unique_ptr for KeyboardEvent, ScriptExecutionContext::PendingException
https://bugs.webkit.org/show_bug.cgi?id=129061
Reviewed by Andreas Kling.
Replace uses of OwnPtr and PassOwnPtr for KeyboardEvent and ScriptExecutionContext::PendingException
classes with std::unique_ptr. ScriptExecutionContext::Task objects are still handled through OwnPtr,
but this will be addressed later.
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/KeyboardEvent.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::publicURLManager):
* dom/ScriptExecutionContext.h:
* dom/ScriptRunner.h: Remove an unnecessary PassOwnPtr header inclusion.
2014-02-20 Zan Dobersek <zdobersek@igalia.com>
Move to using std::unique_ptr for EventListenerMap, EventTarget
https://bugs.webkit.org/show_bug.cgi?id=129062
Reviewed by Andreas Kling.
Replace uses of OwnPtr and PassOwnPtr in the EventListenerMap and
EventTarget classes with std::unique_ptr.
* dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::add):
* dom/EventListenerMap.h:
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
* dom/EventTarget.h:
2014-02-20 Zan Dobersek <zdobersek@igalia.com>
Move to using std::unique_ptr for Document and related classes
https://bugs.webkit.org/show_bug.cgi?id=129063
Reviewed by Anders Carlsson.
Replace uses of OwnPtr and PassOwnPtr in the Document and related classes with std::unique_ptr.
* dom/DOMImplementation.h:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::removedLastRef):
(WebCore::Document::selectorQueryCache):
(WebCore::Document::implementation):
(WebCore::Document::formController):
(WebCore::Document::createStyleResolver):
(WebCore::Document::clearStyleResolver):
(WebCore::Document::clearAXObjectCache):
(WebCore::Document::axObjectCache):
(WebCore::Document::setParsing):
(WebCore::Document::styleResolverChanged):
(WebCore::Document::setTransformSource):
(WebCore::Document::accessSVGExtensions):
(WebCore::Document::sharedObjectPoolClearTimerFired):
(WebCore::Document::didAddTouchEventHandler):
* dom/Document.h:
* dom/DocumentEventQueue.cpp:
(WebCore::DocumentEventQueue::DocumentEventQueue):
* dom/DocumentEventQueue.h:
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addMarker):
* dom/DocumentMarkerController.h:
* dom/DocumentSharedObjectPool.cpp:
* dom/DocumentSharedObjectPool.h:
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::activeStyleSheetsContains):
* dom/DocumentStyleSheetCollection.h:
* dom/DocumentType.h:
* html/FormController.h:
* rendering/TextAutosizer.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doEnd):
2014-02-20 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Add helper method for region clipping flow content
https://bugs.webkit.org/show_bug.cgi?id=129036
Reviewed by Andrei Bucur.
Add helper method to test whether a region should clip the flow thread content
and use it thoughout the code.
Code refactoring, no functionality change, no new tests.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::RenderRegion::shouldClipFlowThreadContent):
(WebCore::RenderRegion::rectFlowPortionForBox):
* rendering/RenderRegion.h:
2014-02-20 Frédéric Wang <fred.wang@free.fr>
Implement the MathML Operator Dictionary.
https://bugs.webkit.org/show_bug.cgi?id=99620
Reviewed by Chris Fleizach.
The MathML Operator Dictionary is implemented and the corresponding mo
attributes are parsed. Currently, only the stretchy property is used for
the visual rendering and the fence/separators properties are used by the
accessibility code. Very basic heuristics to determine the form are also
added.
Tests: mathml/presentation/mo-form-fallback.html
mathml/presentation/mo-form-stretchy.html
mathml/presentation/mo-invalid-attributes.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isMathFenceOperator):
(WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
* mathml/mathattrs.in:
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::createMathMLOperator):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
* rendering/mathml/RenderMathMLFenced.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::MathMLOperatorDictionary::ExtractKey):
(WebCore::MathMLOperatorDictionary::ExtractChar):
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
(WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
(WebCore::RenderMathMLOperator::SetOperatorProperties):
(WebCore::RenderMathMLOperator::advanceForCharacter):
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::shouldAllowStretching):
(WebCore::RenderMathMLOperator::updateStyle):
* rendering/mathml/RenderMathMLOperator.h:
2014-02-19 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make GraphicsLayer's offsetFromRenderer subpixel position based.
https://bugs.webkit.org/show_bug.cgi?id=128694
Reviewed by Simon Fraser.
Changing layers from using integral types to using Float/LayoutUnits so that
we can position them on subpixels. They are still integral positioned though.
Covered by existing tests.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setOffsetFromRenderer):
(WebCore::GraphicsLayer::paintGraphicsLayerContents):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::offsetFromRenderer): removed incorrect comment.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::computeTransformOrigin):
(WebCore::RenderLayerBacking::computePerspectiveOrigin):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresOwnBackingStore):
* rendering/RenderLayerCompositor.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderRegion.h:
2014-02-19 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make GraphicsLayer::paintGraphicsLayerContents()'s cliprect FloatRect based.
https://bugs.webkit.org/show_bug.cgi?id=128911
Reviewed by Simon Fraser.
Switching from IntRect to FloatRect makes device pixel position clipping possible.
Covered by existing tests.
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::paintGraphicsLayerContents):
* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::platformCALayerPaintContents):
* platform/graphics/mac/WebLayer.mm:
(WebCore::drawLayerContents):
(-[WebSimpleLayer drawInContext:]):
2014-02-19 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: (RenderLayer)Pass non-css-pixel-snapped dirty rects to PaintInfo when painting renderer().
https://bugs.webkit.org/show_bug.cgi?id=128913
Reviewed by Simon Fraser.
This is part of the preparation to move RenderLayers to device pixel positioning.
We might need to device pixelsnapp the dirty rects later, but PaintInfo should be
able to manage that instead of doing it everywhere in the code.
Covered by existing tests.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
2014-02-19 Ryosuke Niwa <rniwa@webkit.org>
fieldset:disabled fieldset > legend:first-child input should be disabled
https://bugs.webkit.org/show_bug.cgi?id=129077
Reviewed by Antti Koivisto.
Similar to r164403. When a fieldset inside a disabled fieldset, input elements inside
the inner fieldset's first legend element child should be disabled.
Test: fast/forms/fieldset/fieldset-disabled-2.html
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::legend): Fixed the bug where it was returning the first
legend element descendent. It should be the first legend element _child_.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateAncestorDisabledState): Fixed the algorithm
to look for any ancestor fieldset that has been disabled instead of the first fieldset
ancestor and checking its disabledness.
2014-02-19 Ryosuke Niwa <rniwa@webkit.org>
Debug build fix after r164401. Removed a bogus assertion in comparePositions.
When either position is anchored at a detached node, they don't have a tree scope in common.
* editing/htmlediting.cpp:
(WebCore::comparePositions):
2014-02-19 Ryosuke Niwa <rniwa@webkit.org>
fieldset:disabled > legend:first-child legend input should not be disabled
https://bugs.webkit.org/show_bug.cgi?id=129068
Reviewed by Andreas Kling.
An input element inside a disabled fieldset element is ordinarily disabled unless it's inside
a legend element that is the first of its kind to appear in the fieldset's child node list.
Prior to this patch, an input element inside such a legend element was erroneously disabled if
we had another legend element between the two as in <fieldset disabled><legend><legend><input>.
Fixed the bug by correcting the algorithm in updateAncestorDisabledState.
Test: fast/forms/fieldset/fieldset-disabled-2.html
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateAncestorDisabledState):
2014-02-18 Ryosuke Niwa <rniwa@webkit.org>
Changing selection shouldn't synchronously update editor UI components
https://bugs.webkit.org/show_bug.cgi?id=129024
Reviewed by Brent Fulgham.
Make updates to spellchecker, alternative text controller (correction pane), and delete button controller
asynchronous for programmatically triggered selection changes.
We continue to update their states synchronously immediately after we have applied, unapplied, or reapplied
editing commands to keep states in spell checker and alternative text controller consistent. We should be
able to make them asynchronous as well in the future but that should be done in a separate patch.
* WebCore.exp.in:
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::respondToChangedSelection): This function used to enumerate all document
makers and call respondToMarkerAtEndOfWord on each one of them only to exit early when SetSelectionOptions
had DictationTriggered. This condition is now checked in Editor::respondToChangedSelection to avoid all the
unnecessary work and remove the dependency on SetSelectionOptions.
(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord): Ditto.
* editing/AlternativeTextController.h:
* editing/Editor.cpp:
(WebCore::Editor::appliedEditing): Calls updateEditorUINowIfScheduled before calling respondToAppliedEditing
on the alternative text controller.
(WebCore::Editor::unappliedEditing): Ditto.
(WebCore::Editor::reappliedEditing): Ditto.
(WebCore::Editor::Editor): Initializes newly added booleans.
(WebCore::Editor::respondToChangedSelection): Continue to call respondToChangedSelection (for API consistency)
and setStartNewKillRingSequence but defer the "editor UI updates" to spellchecker, alternative text controller
and delete button controller by firing a newly added one shot timer.
(WebCore::Editor::updateEditorUINowIfScheduled): Synchronously update the pending editor UI updates.
(WebCore::Editor::editorUIUpdateTimerFired): Extracted from respondToChangedSelection.
* editing/Editor.h:
* testing/Internals.cpp:
(WebCore::Internals::markerCountForNode): Calls updateEditorUINowIfScheduled() to update document markers.
(WebCore::Internals::markerAt): Ditto.
(WebCore::Internals::updateEditorUINowIfScheduled): Added.
(WebCore::Internals::findEditingDeleteButton): Added. Updates delete button controller synchronously.
(WebCore::Internals::hasSpellingMarker): Calls updateEditorUINowIfScheduled() to update document markers.
(WebCore::Internals::hasAutocorrectedMarker): Ditto.
* testing/Internals.h:
* testing/Internals.idl:
2014-02-19 Anders Carlsson <andersca@apple.com>
Add WTF_MAKE_FAST_ALLOCATED to more classes
https://bugs.webkit.org/show_bug.cgi?id=129064
Reviewed by Andreas Kling.
* dom/EventContext.h:
* platform/graphics/Region.h:
* platform/text/BidiResolver.h:
* rendering/LayoutState.h:
2014-02-19 Ryosuke Niwa <rniwa@webkit.org>
isEditablePosition shouldn't trigger synchronous layout
https://bugs.webkit.org/show_bug.cgi?id=129026
Reviewed by Brent Fulgham.
Just trigger style recalc instead.
* editing/htmlediting.cpp:
(WebCore::isEditablePosition):
2014-02-19 Beth Dakin <bdakin@apple.com>
UIProcess needs to know the color of the page's extended background
https://bugs.webkit.org/show_bug.cgi?id=129004
Rubber-stamped by Andreas Kling.
Missed this late-breaking review comment. Fixing now!
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
2014-02-19 Beth Dakin <bdakin@apple.com>
UIProcess needs to know the color of the page's extended background
https://bugs.webkit.org/show_bug.cgi?id=129004
Reviewed by Brent Fulgham.
This patch adds a new ChromeClient function,
pageExtendedBackgroundColorDidChange() which will be called whenever the extended
background color has changed.
New function.
* page/ChromeClient.h:
(WebCore::ChromeClient::pageExtendedBackgroundColorDidChange):
Store the extended background color in a member variable so that we can know if it
changed even if we do not have an m_layerForOverhangAreas.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):
* rendering/RenderLayerCompositor.h:
2014-02-19 Dirk Schulze <krit@webkit.org>
Missing box doesn't use border-box as reference box for clip-path
https://bugs.webkit.org/show_bug.cgi?id=129049
Reviewed by Simon Fraser.
If no reference box was specified the default reference box should be
border-box. Previously to this patch the reference box was the bounding
client rect. This was not following the specification.
http://www.w3.org/TR/2014/WD-css-masking-1-20140213/#the-clip-path
The change affects content using -webkit-clip-path in Safari. Since the
bounding client box is equalvalent to the border box most of the time
there shouldn't be to much impact.
Existing tests cover the issue.
* rendering/RenderLayer.cpp:
(WebCore::computeReferenceBox):
2014-02-19 James Craig <jcraig@apple.com>
Web Inspector: AX: clarify reason for ignored state where possible (hidden, default for tag, etc)
https://bugs.webkit.org/show_bug.cgi?id=129037
Reviewed by Timothy Hatcher.
Passing back hidden and ignoredByDefault attrs to clarify some reasons for "ignored" status.
Test Updated: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-02-19 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Updating RTCConfiguration to match WebRTC editor's draft of 01/27/2014
https://bugs.webkit.org/show_bug.cgi?id=129000
Reviewed by Eric Carlson.
Adding RTCIceTransports and RTCIdentityOption to RTCConfiguration object.
Existing test was updated.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::parseConfiguration): Taking into account iceTransports and requestIdentity
parameters.
* platform/mediastream/RTCConfiguration.h:
(WebCore::RTCConfiguration::iceTransports): Added.
(WebCore::RTCConfiguration::setIceTransports): Added.
(WebCore::RTCConfiguration::requestIdentity): Added.
(WebCore::RTCConfiguration::setRequestIdentity): Added.
(WebCore::RTCConfiguration::RTCConfiguration): Initialize iceTransports and requestIdentity with the default
values.
2014-02-19 Antti Koivisto <antti@apple.com>
Don't call to willBeDeletedFrom(Document&) when destructing document
https://bugs.webkit.org/show_bug.cgi?id=129013
Reviewed by Andreas Kling.
The document is half dead at this point.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::~ContainerNode):
2014-02-19 Daniel Bates <dabates@apple.com>
REGRESSION (r163560): Always treat SVG <tspan> and <textPath> as display inline
https://bugs.webkit.org/show_bug.cgi?id=128552
<rdar://problem/16029658>
Reviewed by Andreas Kling.
Following <http://trac.webkit.org/changeset/163560>, SVG <tspan> and <textPath> may be treated as block-
level elements depending on their CSS styles (e.g. display: block). But such elements should always be
treated as inline-level elements.
Tests: svg/text/textpath-display-block.html
svg/text/textpath-display-none.html
svg/text/tspan-display-block.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
2014-02-19 Daniel Bates <dabates@apple.com>
Do not dispatch change event twice in single step action
https://bugs.webkit.org/show_bug.cgi?id=116936
<rdar://problem/16086828>
Reviewed by Ryosuke Niwa.
Merged from Blink (patch by Kent Tamura):
https://src.chromium.org/viewvc/blink?view=rev&revision=151175
Test: fast/forms/number/number-type-update-by-change-event.html
* html/InputType.cpp:
(WebCore::InputType::stepUpFromRenderer):
2014-02-19 Brady Eidson <beidson@apple.com>
Add FeatureDefines for image controls
https://bugs.webkit.org/show_bug.cgi?id=129022
Reviewed by Jer Noble.
* Configurations/FeatureDefines.xcconfig:
2014-02-19 Piotr Grad <p.grad@samsung.com>
Setting playback rate on Media Controller modifies current time.
https://bugs.webkit.org/show_bug.cgi?id=129042
Reviewed by Jer Noble.
In ClockGeneric: when setting playback rate or stoping timer,clock was restarted using current real time
instead of provided time by setCurrentTime.
Changed impl. so that m_offset is updated when clock stops to remember last clock position.
When playbackRate is changed m_offset is updated in order to not use old time interval for new playback rate.
Test: media/video-controller-currentTime-rate.html
* html/MediaController.cpp:
(MediaController::updatePlaybackState):
* platform/ClockGeneric.cpp:
(ClockGeneric::setPlayRate):
(ClockGeneric::start):
(ClockGeneric::stop):
2014-02-19 Brady Eidson <beidson@apple.com>
Add settings/preferences for enabling image controls
https://bugs.webkit.org/show_bug.cgi?id=129027
Reviewed by Jer Noble.
* WebCore.exp.in:
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setImageControlsEnabled):
* page/Settings.h:
(WebCore::Settings::imageControlsEnabled):
2014-02-19 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] shape-outside does not properly handle different writing modes
https://bugs.webkit.org/show_bug.cgi?id=128631
Reviewed by David Hyatt.
Fix ShapeOutsideInfo to properly convert the line coordinates and
shape coordinates with respect to the writing mode and writing
direction for the lines that are affected by the shape. This is
notably different from shape inside in that shape outside needs to use
the writing mode of the container, not of the element that the shape
is applied to.
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-direction-border-box.html
fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-direction-content-box.html
fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-direction-margin-box.html
fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-direction-padding-box.html
fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-modes-border-box.html
fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-modes-content-box.html
fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-modes-margin-box.html
fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-modes-padding-box.html
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::borderWidth): Used by
ShapeInfo::setReferenceBoxLogicalSize.
(WebCore::RenderBoxModelObject::borderHeight): Ditto.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::setReferenceBoxLogicalSize): Use the
container's writing mode to determine the logical dimensions in
the case of shape outside.
(WebCore::ShapeInfo<RenderType>::computedShape): Use the new
ShapeInfo::styleForWritingMode method.
(WebCore::borderBeforeInWritingMode): Determines the borderBefore for
the passed in renderer using the writing mode passed in. The
borderBefore method on the renderer is implemented in RenderStyle,
unlike with the margin methods, so this was chosen instead of
attempting to move the border method implementation into a place
where it could take the writing mode as an argument.
(WebCore::borderAndPaddingBeforeInWritingMode): Determines the
borderAndPaddingBefore for the passed in renderer using the
given writihg mode. See above for why this method instead of doing
it like margins.
(WebCore::borderStartWithStyleForWritingMode): Determines the
borderStart for the passed in renderer using the writing mode and
direction from the style passed in. See above for why this method
instead of doing it like margins.
(WebCore::borderAndPaddingStartWithStyleForWritingMode): Determines
the borderAndPaddingStart for the passed in renderer using the
writing mode and direction from the style passed in. See above for
why this method instead of doing it like margins.
(WebCore::ShapeInfo<RenderType>::logicalTopOffset): Use the
container's writing mode to determine the logicalTopOffset in the
case of shape outside.
(WebCore::ShapeInfo<RenderType>::logicalLeftOffset): Use the
container's writing mode to determine the logicalTopOffset in the
case of shape outside.
* rendering/shapes/ShapeInfo.h:
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::styleForWritingMode): Return the entire
style because to determine start/end the writing direction is
needed in addtion to the writing mode.
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
Properly convert the containing block line into the reference box
coordinates of the shape.
(WebCore::ShapeOutsideInfo::styleForWritingMode): Return the entire
style because to determine start/end the writing direction is
needed in addtion to the writing mode.
* rendering/shapes/ShapeOutsideInfo.h:
2014-02-19 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] the GstPlayFlags enum diverged from upstream
https://bugs.webkit.org/show_bug.cgi?id=128957
Reviewed by Philippe Normand.
Removed the GstPlayFlags from the GStreamer implementation and
replaced by the use of the GFlags.
* platform/graphics/gstreamer/GStreamerUtilities.h:
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::getGstPlaysFlag): Created to get the flags by using the
GFlags infrastructure.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering):
Replaced GST_PLAY_FLAG_DOWNLOAD with getGstPlaysFlag.
2014-02-19 Zan Dobersek <zdobersek@igalia.com>
Replace WTF::bind() uses in RTCPeerConnection with C++11 lambdas
https://bugs.webkit.org/show_bug.cgi?id=129001
Reviewed by Eric Carlson.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::setLocalDescription): Pass a lambda function to
callOnMainThread() instead of using WTF::bind().
(WebCore::RTCPeerConnection::setRemoteDescription): Ditto.
2014-02-19 Dan Bernstein <mitz@apple.com>
Simplify PLATFORM(MAC) && !PLATFORM(IOS) and similar expressions
https://bugs.webkit.org/show_bug.cgi?id=129029
Reviewed by Mark Rowe.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
* config.h:
* editing/Editor.cpp:
(WebCore::Editor::copyURL):
* editing/EditorCommand.cpp:
(WebCore::createCommandMap):
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::markMisspellingsAfterTyping):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadArchive):
* page/AlternativeTextClient.h:
* page/EventHandler.cpp:
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingTree.h:
* page/scrolling/ThreadedScrollingTree.cpp:
* page/scrolling/ThreadedScrollingTree.h:
* platform/DragData.h:
* platform/FileSystem.cpp:
* platform/MemoryPressureHandler.cpp:
* platform/Pasteboard.h:
* platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/PlatformPasteboard.h:
* platform/PlatformScreen.h:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
* platform/SuddenTermination.h:
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):
* platform/ThreadGlobalData.h:
* platform/audio/mac/AudioDestinationMac.cpp:
* platform/audio/mac/AudioFileReaderMac.cpp:
* platform/audio/mac/AudioSessionMac.cpp:
* platform/graphics/DisplayRefreshMonitor.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatRect.h:
* platform/graphics/FloatSize.h:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::utiFromMIMEType):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawLineForDocumentMarker):
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension):
(WebCore::Extensions3DOpenGL::drawBuffersEXT):
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
* platform/mac/KeyEventMac.mm:
* platform/network/NetworkStateNotifier.h:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/cf/ResourceRequest.h:
* platform/network/cf/ResourceRequestCFNet.cpp:
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::reportErrorToClient):
* platform/text/TextEncodingRegistry.cpp:
(WebCore::extendTextCodecMaps):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
2014-02-18 Dan Bernstein <mitz@apple.com>
PLATFORM(MAC) is true when building for iOS
https://bugs.webkit.org/show_bug.cgi?id=129025
Reviewed by Mark Rowe.
* editing/Editor.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA) now that the former does not
include iOS.
2014-02-17 Gavin Barraclough <barraclough@apple.com>
Add fast mapping from StringImpl to JSString
https://bugs.webkit.org/show_bug.cgi?id=128625
Reviewed by Geoff Garen & Andreas Kling.
Removed JSStringCache from WebCore; call JSC::jsStringWithWeakOwner instead.
* bindings/js/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::clearWrappers):
- removed JSStringCache.
* bindings/js/DOMWrapperWorld.h:
- removed JSStringCache.
* bindings/js/JSDOMBinding.h:
(WebCore::jsStringWithCache):
- call jsStringWithWeakOwner insead of using JSStringCache.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
- renamed createLeaked -> createLeakedForMainThread.
* bindings/scripts/StaticString.pm:
(GenerateStrings):
- StringImpl has an additional field.
2014-02-18 Simon Fraser <simon.fraser@apple.com>
Remove UIWKRemoteView
https://bugs.webkit.org/show_bug.cgi?id=129015
Reviewed by Dan Bernstein.
The project referenced a maketokenizer script that disappeared
long ago.
* WebCore.xcodeproj/project.pbxproj:
2014-02-18 Simon Fraser <simon.fraser@apple.com>
border-box clip-paths jump around when outline changes
https://bugs.webkit.org/show_bug.cgi?id=128929
Reviewed by Dirk Schulze.
computeReferenceBox() for clip paths was using "rootRelativeBounds"
to position the border-box. This bounds is an enclosing bounds for
the layer and its descendants, including outlines and absolute descendants,
so it is not the correct box to use to offset the border-box.
The caller has offsetFromRoot(), which is the correct thing to use,
so use it.
Test: css3/masking/clip-path-root-relative-bounds.html
* rendering/RenderLayer.cpp:
(WebCore::computeReferenceBox):
(WebCore::RenderLayer::setupClipPath):
2014-02-18 James Craig <jcraig@apple.com>
Web Inspector: AX: more properties: exists, required, and invalid (exists was previously combined with ignored)
https://bugs.webkit.org/show_bug.cgi?id=128504
Reviewed by Timothy Hatcher.
Additions to the accessibility node inspector: exists, required, invalid.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-02-18 Ryosuke Niwa <rniwa@webkit.org>
Commit the code change supposed to happen in r164320.
* editing/Editor.cpp:
(WebCore::Editor::setIgnoreCompositionSelectionChange):
(WebCore::Editor::respondToChangedSelection):
* editing/Editor.h:
2014-02-18 Ryosuke Niwa <rniwa@webkit.org>
TextFieldInputType::handleBeforeTextInsertedEvent shouldn't use plainText
https://bugs.webkit.org/show_bug.cgi?id=128953
Reviewed by Alexey Proskuryakov.
Don't use FrameSelection's toNormalizedRange and plainText. Instead, use the cached selection start and selection
end to extract the selected text. The caches are updated inside FrameSelection::setSelection whenever selection
is inside a text form control via HTMLTextFormControlElement::selectionChanged.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
2014-02-18 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
Bottom/right sticky positioning don't correctly handle scroll containers with padding
https://bugs.webkit.org/show_bug.cgi?id=119280
Reviewed by Simon Fraser.
Take padding into account during calculation of overflow constraining rect for sticky
positioning.
Test: fast/css/sticky/sticky-bottom-overflow-padding.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::stickyPositionOffset):
2014-02-17 Jon Honeycutt <jhoneycutt@apple.com>
Crash when merging ruby bases that contain floats
https://bugs.webkit.org/show_bug.cgi?id=127515
<rdar://problem/15896562>
This crash occurs when we remove a ruby text object and decide to merge
two adjacent ruby base objects. The right ruby base's children were
being merged into the left ruby base, but the right ruby base's floats
were not being moved to the left base. This could cause us not to
descend into all nodes containing a FloatingObject in
RenderBlockFlow::markAllDescendantsWithFloatsForLayout(), because we
assume that if a block does not have a particular float in its float
list, none of its descendants will, either.
Reviewed by David Hyatt.
Test: fast/ruby/ruby-base-merge-block-children-crash-2.html
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::moveFloatsTo):
Code split out of moveAllChildrenIncludingFloatsTo().
(WebCore::RenderBlockFlow::moveAllChildrenIncludingFloatsTo):
Call moveFloatsTo().
* rendering/RenderBlockFlow.h:
Add declaration of moveFloatsTo().
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::mergeChildrenWithBase):
Move children and floats to the new base.
* rendering/RenderRubyBase.h:
Declare mergeChildrenWithBase().
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::removeChild):
Call mergeChildrenWithBase().
2014-02-18 Ryosuke Niwa <rniwa@webkit.org>
iOS build fix after r164319.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectedRange):
2014-02-18 Samuel White <samuel_white@apple.com>
AX: Searching for "immediate descendants only" can return unexpected results.
https://bugs.webkit.org/show_bug.cgi?id=128986
Reviewed by Chris Fleizach.
Missed an application of the immediateDescendantsOnly flag during the initial implementation. We
need to make sure we don't decend into the startObject first if it is provided. This fix causes
the outer loop to 'skip' the first iteration so only siblings of the startObject are considered.
No new tests, updated existing search-predicate-immediate-descendants-only.html test to cover this case.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::findMatchingObjects):
2014-02-18 Ryosuke Niwa <rniwa@webkit.org>
Merge notifyComponentsOnChangedSelection into respondToSelectionChange
https://bugs.webkit.org/show_bug.cgi?id=128993
Reviewed by Andreas Kling.
Merged notifyComponentsOnChangedSelection into respondToSelectionChange since notifyComponentsOnChangedSelection
was only added in iOS codebase in response to the code added for continuous spellchecking and alternative text controller
in respondToChangedSelection but they should have been called inside setIgnoreCompositionSelectionChange.
So merge these two functions and make respondToChangedSelection behave like setIgnoreCompositionSelectionChange.
* editing/Editor.cpp:
(WebCore::Editor::setIgnoreCompositionSelectionChange):
(WebCore::Editor::respondToChangedSelection):
* editing/Editor.h:
2014-02-18 Ryosuke Niwa <rniwa@webkit.org>
FrameSelection::textWasReplaced and setSelectedRange shouldn't trigger synchronous layout
https://bugs.webkit.org/show_bug.cgi?id=128951
Reviewed by Antti Koivisto.
Cleanup.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::textWasReplaced): Don't call updateLayout. It's totally unnecessarily.
(WebCore::FrameSelection::setSelectedRange): Ditto. Also removed the code to set affinity only when
range is collapsed since VisibleSelection::validate already does this.
2014-02-18 Eric Carlson <eric.carlson@apple.com>
Do not cache media time until media engine returns a non-zero value
https://bugs.webkit.org/show_bug.cgi?id=128976
Reviewed by Jer Noble.
No new tests, covered by existing tests.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::refreshCachedTime): Don't mark the cached time as valid
until it is non-zero.
(WebCore::HTMLMediaElement::currentTime): Return 0 if m_cachedTime is invalid.
2014-02-17 Alexey Proskuryakov <ap@apple.com>
[iOS] All WebKit clients should encrypt WebCrypto keys automatically
https://bugs.webkit.org/show_bug.cgi?id=128938
Reviewed by Dan Bernstein.
Don't pass ACLs on iOS. Key will be added to app's default Keychain access group.
Also, don't pass kSecAttrIsPermanent, which is irrelevant for password items, and
caused error -50 in DumpRenderTree for me when passed.
Added fallback to _NSGetProgname for account name, to account for tools such as
Mac DumpRenderTree that don't have bundle identifiers.
* crypto/mac/SerializedCryptoKeyWrapMac.mm:
(WebCore::masterKeyAccountNameForCurrentApplication):
(WebCore::createAndStoreMasterKey):
2014-02-18 Ryosuke Niwa <rniwa@webkit.org>
setSelectionRange should set selection without validation
https://bugs.webkit.org/show_bug.cgi?id=128949
Reviewed by Enrica Casucci.
Since positionForIndex in HTMLTextFormControlElement always returns a candidate Position, we don't have to
validate selection in setSelectionRange.
Also fixed various bugs uncovered by this change.
This patch also fixes fast/forms/input-select-webkit-user-select-none.html, which used to assert wrong outcome
so that WebKit's behavior matches that of Chrome and Firefox.
Test: fast/forms/input-select-webkit-user-select-none.html
* dom/Position.h:
(WebCore::positionInParentBeforeNode): This function had a bug that when node is a child of the shadow root
it would return a null Position. Allow a position anchored inside a shadow root.
(WebCore::positionInParentAfterNode): Ditto.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveWithoutValidationTo): Renamed from moveTo and avoided selection validation.
* editing/FrameSelection.h:
* editing/htmlediting.cpp:
(WebCore::updatePositionForNodeRemoval): Fixed the bug that this function doesn't update positions before
or after children even if the shadow host of the anchor node is getting removed. Move the position before
the shadow host to be removed in both situations.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange): moveTo is renamed to moveWithoutValidationTo.
(WebCore::HTMLTextFormControlElement::selectionChanged): Check if the cached selection offsets are different
in lieu of FrameSelection::isRange() since they're equivalent here.
(WebCore::positionForIndex): Return the position inside or after the last br when there is one to match
the canonicalization algorithm we have. It's probably harmless to return the last position in the inner text
element anyways since most of our codebase supports that but this would avoid having to rebaseline dozens
of tests and reduces the risk of this patch.
2014-02-18 Zan Dobersek <zdobersek@igalia.com>
Move IndexedDB module, LevelDB code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128964
Reviewed by Andreas Kling.
Replace uses of OwnPtr and PassOwnPtr in the IndexedDB module and LevelDB platform code with std::unique_ptr.
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::IDBDatabaseBackend):
(WebCore::IDBDatabaseBackend::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackend::processPendingCalls):
(WebCore::IDBDatabaseBackend::processPendingOpenCalls):
(WebCore::IDBDatabaseBackend::openConnection):
(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):
(WebCore::IDBDatabaseBackend::close):
* Modules/indexeddb/IDBDatabaseBackend.h:
(WebCore::IDBDatabaseBackend::hasPendingSecondHalfOpen):
(WebCore::IDBDatabaseBackend::setPendingSecondHalfOpen):
* Modules/indexeddb/IDBPendingDeleteCall.h:
(WebCore::IDBPendingDeleteCall::IDBPendingDeleteCall):
* Modules/indexeddb/IDBPendingOpenCall.h:
(WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
* Modules/indexeddb/IDBTransactionCoordinator.cpp:
* Modules/indexeddb/IDBTransactionCoordinator.h:
* Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::setUpMetadata):
(WebCore::DefaultLevelDBFactory::openLevelDB):
(WebCore::IDBBackingStoreLevelDB::IDBBackingStoreLevelDB):
(WebCore::IDBBackingStoreLevelDB::~IDBBackingStoreLevelDB):
(WebCore::IDBBackingStoreLevelDB::open):
(WebCore::IDBBackingStoreLevelDB::openInMemory):
(WebCore::IDBBackingStoreLevelDB::create):
(WebCore::IDBBackingStoreLevelDB::getDatabaseNames):
(WebCore::deleteRange):
(WebCore::IDBBackingStoreLevelDB::deleteDatabase):
(WebCore::IDBBackingStoreLevelDB::getObjectStores):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::getIndexes):
(WebCore::findGreatestKeyLessThanOrEqual):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::~LevelDBDatabase):
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::openInMemory):
(WebCore::IteratorImpl::IteratorImpl):
(WebCore::LevelDBDatabase::createIterator):
* platform/leveldb/LevelDBDatabase.h:
* platform/leveldb/LevelDBTransaction.cpp:
(WebCore::LevelDBTransaction::commit):
(WebCore::LevelDBTransaction::createIterator):
(WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
(WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
(WebCore::LevelDBWriteOnlyTransaction::LevelDBWriteOnlyTransaction):
* platform/leveldb/LevelDBTransaction.h:
* platform/leveldb/LevelDBWriteBatch.cpp:
(WebCore::LevelDBWriteBatch::LevelDBWriteBatch):
* platform/leveldb/LevelDBWriteBatch.h:
2014-02-18 David Kilzer <ddkilzer@apple.com>
Follow-up: Add type-checked casts for StyleImage and subclasses
<http://webkit.org/b/128915>
Address some style issues based on feedback from Andreas Kling.
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImageURL):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::~CSSImageSetValue):
(WebCore::CSSImageSetValue::hasFailedOrCanceledSubresources):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::hasFailedOrCanceledSubresources):
- Use the reference version of the type-checked casts since we
know the pointers are not NULL.
* rendering/style/StyleImage.h:
- Use 'styleImage' instead of 'resource' in
STYLE_IMAGE_TYPE_CASTS.
2014-02-18 Zan Dobersek <zdobersek@igalia.com>
Remove unnecessary UserActionElementSet constructor, destructor
https://bugs.webkit.org/show_bug.cgi?id=128962
Reviewed by Andreas Kling.
UserActionElementSet constructor and destructor are not necessary, as is not the
static create() function that returns PassOwnPtr<UserActionElementSet>. The implicit
constructor and destructor can take care of creating and destroying the sole HashMap
member variable.
* dom/UserActionElementSet.cpp:
* dom/UserActionElementSet.h:
2014-02-18 Myles C. Maxfield <mmaxfield@apple.com>
Rename convertFixedAndStickyPosition() to convertPositionStyle()
https://bugs.webkit.org/show_bug.cgi?id=128987
Reviewed by NOBODY. This is addressing a post-commit review from Dean Jackson.
No new tests are necessary because there is no behavior change
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::convertPositionStyle):
* editing/EditingStyle.h:
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendElement):
2014-02-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164296.
http://trac.webkit.org/changeset/164296
https://bugs.webkit.org/show_bug.cgi?id=128989
Broke many media tests (Requested by eric_carlson on #webkit).
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
2014-02-18 Myles C. Maxfield <mmaxfield@apple.com>
Convert position:sticky to position:static upon copy and paste
https://bugs.webkit.org/show_bug.cgi?id=128982
Reviewed by Simon Fraser.
This patch has two parts:
1. Make sure that position:absolute elements trigger the position:relative wrapping (as
well as position:fixed)
2. Now that we copy position:sticky, convert that to position:static
Tests: editing/pasteboard/copy-paste-converts-fixed.html
editing/pasteboard/copy-paste-converts-sticky.html
editing/pasteboard/copy-paste-wraps-position-absolute.html
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::convertFixedAndStickyPosition):
2014-02-18 David Kilzer <ddkilzer@apple.com>
Add type-checked casts for StyleImage and subclasses
<http://webkit.org/b/128915>
Reviewed by Oliver Hunt.
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::detachPendingImage):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedImageURL):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::detachPendingImage):
(WebCore::CSSImageSetValue::~CSSImageSetValue):
(WebCore::CSSImageSetValue::cachedImageSet):
(WebCore::CSSImageSetValue::hasFailedOrCanceledSubresources):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::detachPendingImage):
(WebCore::CSSImageValue::cachedImage):
(WebCore::CSSImageValue::hasFailedOrCanceledSubresources):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingShapeImage):
(WebCore::StyleResolver::loadPendingImages):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::retrieveResourcesForProperties):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- Switch from static_cast<>() operators to toTypeName() methods.
- Replace 0 with nullptr where convenient.
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleCachedImageSet.h:
* rendering/style/StyleGeneratedImage.h:
* rendering/style/StyleImage.h:
* rendering/style/StylePendingImage.h:
- Define type-checked cast macros.
2014-02-18 Sam Weinig <sam@webkit.org>
Simplify HTML tokenizer parameterization down to what is used
https://bugs.webkit.org/show_bug.cgi?id=128977
Reviewed by Alexey Proskuryakov.
- Removes support for CustomHTMLTokenizerChunkSize.
- Consolidates CustomHTMLTokenizerTimeDelay down to one implementation, using Settings::maxParseDuration
* WebCore.exp.in:
* html/parser/HTMLParserScheduler.cpp:
(WebCore::HTMLParserScheduler::HTMLParserScheduler):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::hasCustomHTMLTokenizerTimeDelay):
(WebCore::Page::customHTMLTokenizerTimeDelay):
* page/Page.h:
2014-02-18 Eric Carlson <eric.carlson@apple.com>
Do not cache media time until media engine returns a non-zero value
https://bugs.webkit.org/show_bug.cgi?id=128976
Reviewed by Jer Noble.
No new tests, covered by existing tests.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::refreshCachedTime): Don't mark the cached time as valid
until it is non-zero.
2014-02-18 Mihai Tica <mitica@adobe.com>
[CSS Blending] Add -webkit-blend-mode support for SVG.
https://bugs.webkit.org/show_bug.cgi?id=110427
Reviewed by Dirk Schulze.
Add support for blend modes to SVG. This includes adding and validating isolation for blending.
Make masked elements isolate blending by creating a transparency layer.
Tests: css3/compositing/svg-blend-color-burn.html
css3/compositing/svg-blend-color-dodge.html
css3/compositing/svg-blend-color.html
css3/compositing/svg-blend-darken.html
css3/compositing/svg-blend-difference.html
css3/compositing/svg-blend-exclusion.html
css3/compositing/svg-blend-hard-light.html
css3/compositing/svg-blend-hue.html
css3/compositing/svg-blend-layer-blend.html
css3/compositing/svg-blend-layer-clip-path.html
css3/compositing/svg-blend-layer-filter.html
css3/compositing/svg-blend-layer-mask.html
css3/compositing/svg-blend-layer-opacity.html
css3/compositing/svg-blend-layer-shadow.html
css3/compositing/svg-blend-lighten.html
css3/compositing/svg-blend-luminosity.html
css3/compositing/svg-blend-multiply-alpha.html
css3/compositing/svg-blend-multiply.html
css3/compositing/svg-blend-normal.html
css3/compositing/svg-blend-overlay.html
css3/compositing/svg-blend-saturation.html
css3/compositing/svg-blend-screen.html
css3/compositing/svg-blend-soft-light.html
* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleDidChange): Also pass a pointer to the old style when calling SVGRenderSupport::styleChanged.
* rendering/style/RenderStyle.h: Add blendMode default getter when CSS_COMPOSITING is disabled.
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::isolatesBlending): Add method.
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::styleChanged): Call updateMaskedAncestorShouldIsolateBlending only when a blend mode is set/unset.
(WebCore::SVGRenderSupport::isolatesBlending): Implement method that decides whether an SVGElement isolates or not blending.
(WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending): Traverse to the nearest ancestor having a mask.
- Set a flag causing the creation of a transparency layer when rendering the masked element.
* rendering/svg/SVGRenderSupport.h:
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent): Call GraphicsContext::setCompositeOperation.
- Isolate blending by creating a transparency layer.
- Isolate group when rendering a masked element having a blended child node.
* svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::SVGGraphicsElement): Set default m_shouldIsolateBlending to false.
* svg/SVGGraphicsElement.h: Add m_shouldIsolateBlending member, getter and setter.
(WebCore::SVGGraphicsElement::shouldIsolateBlending):
(WebCore::SVGGraphicsElement::setShouldIsolateBlending):
2014-02-18 ChangSeok Oh <changseok.oh@collabora.com>
[GTK] Unreviewed fix. Correct wrong flags, ENABLE(GTK)->PLATFORM(GTK).
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::drawArraysInstanced):
(WebCore::Extensions3DOpenGL::drawElementsInstanced):
(WebCore::Extensions3DOpenGL::vertexAttribDivisor):
2014-02-18 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Compute region ranges for inline replaced elements
https://bugs.webkit.org/show_bug.cgi?id=128800
Reviewed by Andrei Bucur.
Tests: fast/regions/hover-content-inside-iframe-in-region.html
fast/regions/select-multiple-in-region.html
When asking for the range of regions for an inline replaced box,
use the region cached on the root inline box for the inline replaced
box as the range of regions is computed only for blocks.
A future patch will extend the computation of region ranges
for inline blocks too.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
Remove the restriction set during https://bugs.webkit.org/show_bug.cgi?id=113703
and enable the code path for boxes not only for blocks.
Method RenderFlowThread::getRegionRangeForBox returns a null region when it is unable
to get the region range and we already check for null region case.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::getRegionRangeForBox):
2014-02-18 Xabier Rodriguez Calvar <calvaris@igalia.com>
Move inheriting method to the superclass in the JavaScript media controls
https://bugs.webkit.org/show_bug.cgi?id=128897
Reviewed by Jer Noble.
The inheriting method of the JavaScript multimedia controls was
moved from the subclasses to the superclass because this way it is
only defined once.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.extend): Added to replace inheritFrom in the
subclasses.
* Modules/mediacontrols/mediaControlsGtk.js:
* Modules/mediacontrols/mediaControlsiOS.js: Removed inheritFrom
and used extend.
2014-02-18 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] Fix hitting hasClass() assertion in debug with the new JS media controls
https://bugs.webkit.org/show_bug.cgi?id=128820
Reviewed by Martin Robinson.
The code introduced at r164024 caused the hit of hasClass()
assertion when getting the classNames() of an element with no
class. Now we check for it to avoid the assertion.
No new tests, current set detects the crash in many tests.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::nodeHasClass): Check for hasClass() in order not to hit
the assertion when getting the classNames() in debug mode.
2014-02-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Refactor SVGPreserveAspectRatio::parse()
https://bugs.webkit.org/show_bug.cgi?id=128658
Reviewed by Dirk Schulze.
To removed "goto" in SVGPreserveAspectRatio::parse(), this patch introduce parseInternal() to handle
existing behavior with local variables, and existing/new parse() functions invoke it, then set
those to member variables.
Motivated from Blink: https://src.chromium.org/viewvc/blink?view=rev&revision=166927
No new tests, no behavior change.
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::parse):
(WebCore::SVGPreserveAspectRatio::parseInternal):
* svg/SVGPreserveAspectRatio.h: Add parse() and parseInternal() functions.
2014-02-17 Radu Stavila <stavila@adobe.com>
[CSS Regions] Move specific named flow methods from RenderRegion to RenderNamedFlowFragment
https://bugs.webkit.org/show_bug.cgi?id=128914
Reviewed by Antti Koivisto.
Moved named flow specific methods regionContainer() and regionContainerLayer() from
RenderRegion to RenderNamedFlowFragment and renamed them to fragmentContainer and
fragmentContainerLayer.
No new tests required.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::fragmentContainer):
(WebCore::RenderNamedFlowFragment::fragmentContainerLayer):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderRegion.cpp:
* rendering/RenderRegion.h:
2014-02-17 Sangho Kim <thomas.kim@lge.com>
Move PublicURLMansger to std::unique_ptr.
https://bugs.webkit.org/show_bug.cgi?id=128891
Reviewed by Anders Carlsson.
Use std::unique_ptr and std::make_unique in place of PassOwnPtr and adoptPtr in the PublicURLManager
* dom/ScriptExecutionContext.h:
* html/PublicURLManager.cpp:
(WebCore::PublicURLManager::create):
* html/PublicURLManager.h:
2014-02-17 Ricky Mondello <rmondello@apple.com>
Expose a way to clear cookies modified after a given date
https://bugs.webkit.org/show_bug.cgi?id=128845
Reviewed by Alexey Proskuryakov.
* WebCore.exp.in: Add a symbol.
* platform/network/PlatformCookieJar.h: Declare deleteAllCookiesModifiedAfterDate.
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::deleteAllCookiesModifiedAfterDate): Add a stub.
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::deleteAllCookiesModifiedAfterDate): Ditto.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::deleteAllCookiesModifiedAfterDate): Ditto.
* platform/network/mac/CookieJarMac.mm: Add a category NSHTTPCookieStorage category with the method
used for time-based clearing so we can build on all platforms. For now, we'll check for support
at runtime.
(WebCore::deleteAllCookiesModifiedAfterDate): Added. Without foundation API, we'll ignore the passed-in
NetworkStorageSession.
2014-02-17 Benjamin Poulain <bpoulain@apple.com>
SelectorCompiler incorrectly saves a backtracking register for a child chain without descendant relation on the right
https://bugs.webkit.org/show_bug.cgi?id=128944
Reviewed by Andreas Kling.
When resolving the backtracking relations, the value of ancestorPositionSinceDescendantRelation was incorrect for the
rightmost child chain.
What was happenning is updateChainStates() would increment ancestorPositionSinceDescendantRelation even if there was
no descendant relation previously in the chain. As a result, the second SelectorFragment in the fragment chain would
save a backtracking register.
Previously this would just be a wasted register but since r163850, the number of registers available for compilation
is defined by SelectorCompiler::minimumRegisterRequirements(). Since we would have one less register available than computed,
we could run out of register and RegisterAllocator would invoke WTFCrash to avoid generating incorrect code.
This patch fixes the issue by not updating ancestorPositionSinceDescendantRelation until the first descendant relation
is seen. There was no need to fix the Adjacent relation because adjacentPositionSinceIndirectAdjacentTreeWalk already
had the correct guard.
Test: fast/selectors/querySelector-rightmost-child-chain-attribute-matching.html
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::updateChainStates):
(WebCore::SelectorCompiler::isFirstAdjacent): The name was a bad copy-paste, fix it.
2014-02-17 Dean Jackson <dino@apple.com>
Constrain replaced element layout to from-intrinsic aspect ratio if specified
https://bugs.webkit.org/show_bug.cgi?id=128629
Reviewed by Simon Fraser.
First pass at implementing -webkit-aspect-ratio: from-instrinsics;
After RenderReplaced has done layout, attempt to update the
resulting size to match the desired aspect ratio. This step
will only reduce the size of an element, and never below the
minimum dimensions.
Tests: fast/css/aspect-ratio/columns.html
fast/css/aspect-ratio/containers.html
fast/css/aspect-ratio/simple.html
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageDimensionsChanged): If we get an update
to our intrinsic dimensions, and layout depends on this, trigger
another layout pass.
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::layout): Implement the step described
above.
2014-02-17 Sam Weinig <sam@webkit.org>
Fix build.
* WebCore.exp.in:
2014-02-17 Anders Carlsson <andersca@apple.com>
Remove ENABLE_GLOBAL_FASTMALLOC_NEW
https://bugs.webkit.org/show_bug.cgi?id=127067
Reviewed by Geoffrey Garen.
* platform/Timer.h:
2014-02-17 Sam Weinig <sam@webkit.org>
Move iOS only Settings into Settings.in and make them not-iOS only
https://bugs.webkit.org/show_bug.cgi?id=128942
Reviewed by Tim Horton.
* page/Settings.cpp:
* page/Settings.h:
* page/Settings.in:
2014-02-17 Anders Carlsson <andersca@apple.com>
Remove view source code
https://bugs.webkit.org/show_bug.cgi?id=127233
Reviewed by Antti Koivisto.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::canExecuteScripts):
* css/CSSDefaultStyleSheets.cpp:
* css/CSSDefaultStyleSheets.h:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
(WebCore::DocumentRuleSets::collectFeatures):
* css/DocumentRuleSets.h:
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchUARules):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::styleForElement):
* css/view-source.css: Removed.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* dom/DOMImplementation.h:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
* html/HTMLAttributeNames.in:
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
(WebCore::HTMLFrameElementBase::openURL):
* html/HTMLFrameElementBase.h:
* html/HTMLViewSourceDocument.cpp: Removed.
* html/HTMLViewSourceDocument.h: Removed.
* html/parser/HTMLToken.h:
* html/parser/HTMLViewSourceParser.cpp: Removed.
* html/parser/HTMLViewSourceParser.h: Removed.
* html/parser/TextViewSourceParser.cpp: Removed.
* html/parser/TextViewSourceParser.h: Removed.
* inspector/InspectorOverlayPage.css:
(.tag-name):
(.node-id):
(.class-name):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedFirstData):
* page/Frame.cpp:
(WebCore::Frame::Frame):
* page/Frame.h:
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
* xml/XMLViewer.css:
(.tag):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2014-02-17 Simon Fraser <simon.fraser@apple.com>
box-shadows get truncated with a combination of transforms and clip: (affects Google Maps)
https://bugs.webkit.org/show_bug.cgi?id=128937
Reviewed by Dean Jackson.
RenderLayer::calculateLayerBounds() incorrectly assumed that if localClipRect() returns
a non-infinite rect, that rect is OK to use as the compositing bounds.
That is not a valid assumption when clip() has a larger rect than the element (e.g.
with negative top/left in the rect). In that case, localClipRect() still just
returns the background rect, but we actually need a larger compositing layer
to show the unclipped parts of descendants.
Fix by detecting clip() that exceeds the renderer bounds, and when it does,
not early returning in the UseLocalClipRectIfPossible clause.
Test: compositing/geometry/css-clip-oversize.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::localClipRect): Do a convertToLayerCoords()
because we need offsetFromRoot later, and we can pass our value down to
calculateRects(). Compute clipExceedsBounds based on the CSS clip rect.
(WebCore::RenderLayer::calculateClipRects): Don't early return if clipExceedsBounds
is true.
* rendering/RenderLayer.h:
2014-02-17 Antti Koivisto <antti@apple.com>
Make TreeScope::rootNode return a reference
https://bugs.webkit.org/show_bug.cgi?id=128934
Reviewed by Andreas Kling.
It is never null.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
* dom/ContainerNode.h:
(WebCore::Node::isTreeScope):
* dom/Document.cpp:
(WebCore::Document::buildAccessKeyMap):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::add):
(WebCore::DocumentOrderedMap::get):
(WebCore::DocumentOrderedMap::getAllElementsById):
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedNodeResolver::moveToParentOrShadowHost):
(WebCore::eventTargetRespectingTargetRules):
(WebCore::shouldEventCrossShadowBoundary):
* dom/Node.cpp:
(WebCore::Node::containingShadowRoot):
(WebCore::Node::removedFrom):
* dom/ShadowRoot.h:
(WebCore::isShadowRoot):
* dom/TreeScope.h:
(WebCore::TreeScope::rootNode):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::DOMSelection):
* page/DragController.cpp:
(WebCore::asFileInput):
* page/FocusController.cpp:
(WebCore::FocusNavigationScope::rootNode):
2014-02-17 Chris Fleizach <cfleizach@apple.com>
AX: Invalid cast in WebCore::AccessibilityTable::isDataTable (CRBug 280352)
<https://webkit.org/b/128925>
<rdar://problem/16087351>
Merged from Blink (patch by Dominic Mazzoni):
https://src.chromium.org/viewvc/blink?revision=159711&view=revision
Reviewed by Oliver Hunt.
Don't cast to a table cell element unless we are sure it is one.
Test: accessibility/display-table-cell-causes-crash.html
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
2014-02-17 Antti Koivisto <antti@apple.com>
Node constructor should take Document reference
https://bugs.webkit.org/show_bug.cgi?id=128931
Reviewed by Geoff Garen.
* dom/Attr.cpp:
(WebCore::Attr::Attr):
* dom/CharacterData.h:
(WebCore::CharacterData::CharacterData):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::~ContainerNode):
* dom/ContainerNode.h:
(WebCore::ContainerNode::ContainerNode):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Node::Node):
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::DocumentFragment):
(WebCore::DocumentFragment::create):
* dom/DocumentFragment.h:
* dom/DocumentType.cpp:
(WebCore::DocumentType::DocumentType):
* dom/Element.h:
(WebCore::Element::Element):
* dom/Entity.h:
(WebCore::Entity::Entity):
* dom/EntityReference.cpp:
(WebCore::EntityReference::EntityReference):
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::willBeDeletedFrom):
* dom/Node.h:
* dom/Notation.cpp:
* dom/Notation.h:
(WebCore::Notation::publicId):
(WebCore::Notation::systemId):
(WebCore::Notation::Notation):
Remove cruft from this non-instantiated class.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::~ShadowRoot):
* dom/TemplateContentDocumentFragment.h:
2014-02-17 Sergio Correia <sergio.correia@openbossa.org>
Replace uses of PassOwnPtr/OwnPtr with std::unique_ptr in WebCore/inspector
https://bugs.webkit.org/show_bug.cgi?id=128681
Reviewed by Timothy Hatcher.
Another step towards getting rid of PassOwnPtr/OwnPtr, now targeting
WebCore/inspector/*. Besides files in there, a few other files in
JavaScriptCore/inspector, WebKit/, WebKit2/WebProcess/WebCoreSupport/
and WebCore/testing were touched.
No new tests; no new behavior.
* WebCore.exp.in:
* inspector/CommandLineAPIHost.cpp:
* inspector/CommandLineAPIHost.h:
* inspector/DOMEditor.cpp:
* inspector/DOMPatchSupport.cpp:
* inspector/DOMPatchSupport.h:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.cpp:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorFrontendClientLocal.cpp:
* inspector/InspectorFrontendClientLocal.h:
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorHistory.cpp:
* inspector/InspectorHistory.h:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorOverlay.cpp:
* inspector/InspectorOverlay.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorStyleSheet.cpp:
* inspector/InspectorStyleSheet.h:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
* inspector/PageConsoleAgent.cpp:
* inspector/PageRuntimeAgent.h:
* inspector/WebConsoleAgent.cpp:
* inspector/WorkerRuntimeAgent.h:
* testing/Internals.cpp:
2014-02-17 Antti Koivisto <antti@apple.com>
Rename Document::m_selfOnlyRefCount to m_referencingNodeCount
https://bugs.webkit.org/show_bug.cgi?id=128916
Reviewed by Andreas Kling.
Make the name more informative. Also make it zero based (document is not considered to reference itself).
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::removedLastRef):
* dom/Document.h:
(WebCore::Document::increaseReferencingNodeCount):
(WebCore::Document::decreaseReferencingNodeCount):
(WebCore::Node::Node):
* dom/Node.cpp:
(WebCore::Node::~Node):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2014-02-17 ChangSeok Oh <changseok.oh@collabora.com>
[GTK] Build failure caused by missing jsmin module
https://bugs.webkit.org/show_bug.cgi?id=128742
Reviewed by Philippe Normand.
No new tests since no functionality changed.
* GNUmakefile.am: Relocate PYTHONPATH to make it meaningful.
2014-02-17 Radu Stavila <stavila@adobe.com>
[CSS Regions] Make regions unsplittable
https://bugs.webkit.org/show_bug.cgi?id=128811
Reviewed by David Hyatt.
At the moment, nested regions are not properly fragmented across regions. For the moment,
the regions will become unsplittable elements to avoid slicing. At a later time a proper
fragmentation algorithm should be written, also taking into consideration pagination strut.
Test: fast/regions/unsplittable-nested-region.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::isUnsplittableForPagination):
2014-02-17 Simon Fraser <simon.fraser@apple.com>
Graphics buffer issue with clip-path and fixed positioned element
https://bugs.webkit.org/show_bug.cgi?id=126262
Reviewed by Tim Horton.
If an element has a clip-path, backgroundIsKnownToBeOpaqueInRect() needs
to return false so that we don't try to make opaque compositing layers.
Test: compositing/contents-opaque/opaque-with-clip-path.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
2014-02-17 Radu Stavila <stavila@adobe.com>
[CSS Regions] The box decorations of an element overflowing a region should be clipped at the border box, not the content box
https://bugs.webkit.org/show_bug.cgi?id=128815
Reviewed by Andrei Bucur.
Elements flowed into a region should not be painted past the region's content box
if they continue to flow into another region in that direction.
If they do not continue into another region in that direction, they should be
painted all the way to the region's border box.
Regions with overflow:hidden will apply clip at the border box, not the content box.
Tests: fast/regions/box-decorations-over-region-padding-fragmented.html
fast/regions/box-decorations-over-region-padding-horiz-bt.html
fast/regions/box-decorations-over-region-padding-vert-lr.html
fast/regions/box-decorations-over-region-padding-vert-rl.html
fast/regions/box-decorations-over-region-padding.html
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::flowThreadPortionRectForClipping):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::rectFlowPortionForBox):
2014-02-17 Brendan Long <b.long@cablelabs.com>
DataCue.data should be a copy of the input ArrayBuffer, not a pointer
https://bugs.webkit.org/show_bug.cgi?id=128886
Reviewed by Eric Carlson.
No new tests, just updated existing track-datacue.html test.
* html/track/DataCue.cpp:
(WebCore::DataCue::DataCue): Add ExceptionCode and pass through to setData().
(WebCore::DataCue::data): Return a copy of m_data instead of a pointer.
(WebCore::DataCue::setData): Create a copy of the input data, or throw an exception if it's null.
* html/track/DataCue.h: Add ExceptionCode parameters to constructor and data setter.
* html/track/DataCue.idl: Same.
2014-02-17 David Kilzer <ddkilzer@apple.com>
CounterContentData::counter() and ImageContentData::image() should return references
<http://webkit.org/b/128671>
Reviewed by Darin Adler.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::contentToCSSValue):
- Update to use references. Remove useless ASSERTs.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImages):
- Update to use references. StyleResolver::loadPendingImage()
will be changed to take a reference in the near future.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
- Update to use references. The auto keyword wanted to
instantiate a StyleImage instead a reference, so it was
replaced.
* rendering/style/ContentData.h:
(WebCore::ImageContentData::ImageContentData): Add ASSERT that
m_image is not NULL.
(WebCore::ImageContentData::image): Return a reference. Remove
useless overload with identical name.
(WebCore::ImageContentData::cloneInternal): Simplify by using
implicit PassRefPtr constructor.
(WebCore::operator==): Remove unneeded deref operators.
(WebCore::CounterContentData::counter): Return a reference.
(WebCore::CounterContentData::cloneInternal): Remove unneeded
deref operator.
(WebCore::operator==): Remove unneeded deref operators.
2014-02-17 Jer Noble <jer.noble@apple.com>
[MediaControls][iOS] Make mediacontrols match the system inline controls
https://bugs.webkit.org/show_bug.cgi?id=128833
Reviewed by Eric Carlson.
Move items slightly, fix button sizes, font sizes, and colors to match the
inline controls from MoviePlayer.framework.
* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-panel):
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-play-button.paused):
(audio::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
(audio::-webkit-media-controls-time-remaining-display):
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.configureInlineControls): Do not add the status text.
(ControllerIOS.prototype.updateTime): Call updateProgress().
(ControllerIOS.prototype.progressFillStyle): Draw a slightly different color.
(ControllerIOS.prototype.updateProgress): Draw white to the left of the currentTime.
(ControllerIOS.prototype.formatTime): Single leading zero in the time display fields.
(ControllerIOS.prototype.handleTimelineChange): Call updateProgress().
2014-02-17 Manuel Rego Casasnovas <rego@igalia.com>
[CSS Grid Layout] Fix missing layout in flexible and content sized columns
https://bugs.webkit.org/show_bug.cgi?id=128672
Reviewed by Sergio Villar Senin.
RenderGrid::logicalContentHeightForChild() is called for some items at the beginning of RenderGrid::layoutGridItems()
from RenderGrid::computeUsedBreadthOfGridTracks(). This causes that the comparison inside the for loop in
RenderGrid::layoutGridItems() does not detect width changes, so elements won't be marked as needsLayout.
So the comparison is done in RenderGrid::logicalContentHeightForChild() and the element is marked to perform a layout if
the width has changed.
The issue can be reproduced easily with a simple grid with one flexible or content sized column, all the available width
is not used. On top of that, when you resize the window the flexible or content sized columns are not updating their
size properly.
CSS Grid Layout perftest results are around 4% worse, which is expected as we're adding a missing layout.
Test: fast/css-grid-layout/flex-content-sized-column-use-available-width.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalContentHeightForChild): Check width changes and mark element as needed layout if required.
2014-02-16 Andreas Kling <akling@apple.com>
Ensure that removing an iframe from the DOM tree disconnects its Frame.
<https://webkit.org/b/128889>
<rdar://problem/15671221>
Merged from Blink (patch by Adam Klein):
https://src.chromium.org/viewvc/blink?revision=156174&view=revision
SubframeLoadingDisabler wasn't catching the case when an <iframe> was,
in its unload handler, removed and re-added to the same parent.
Fix this by using a count of SubframeLoadingDisablers that are on the
stack for a given root, rather than a simple boolean.
Test: fast/frames/reattach-in-unload.html
* html/HTMLFrameOwnerElement.h:
(WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
2014-02-16 Benjamin Poulain <benjamin@webkit.org>
When applying style, attribute value matching should be case sensitive for SVG
https://bugs.webkit.org/show_bug.cgi?id=128882
Reviewed by Andreas Kling.
SelectorChecker was incorrectly matching attribute values with a case insensitve comparison
in some cases.
The choice to use case sensitive matching was taking into account the document type but not
the element type. As a result, SVG (and likely MHTML) elements were incorrectly being tested
as if they were HTML element.
With the patch, WebKit also matches the behavior of Firefox, which is great.
Tests: fast/css/case-insensitive-attribute-with-svg.html
fast/selectors/querySelector-case-insensitive-attribute-match-with-svg.html
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
2014-02-16 Benjamin Poulain <benjamin@webkit.org>
Split compilation state between querySelector and CSS matching
https://bugs.webkit.org/show_bug.cgi?id=128869
Reviewed by Antti Koivisto.
Cleanup after recent changes:
-SelectorCompiler now has a SelectorContext defining if the code is compiled for QuerySelector
or for ElementRuleCollector.
-Generalize m_selectorCannotMatchAnything by making it part of the FunctionType. FunctionType now
fully represent the type of code generation and we don't rely implicitly on m_selectorFragments being
empty.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::compileSelector):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
There is no tree marking for QuerySelector, so we can generate a simple selector
for the sibling selectors.
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
The code is split to make it simpler. The classic code generation has been moved
to generateSelectorChecker().
The decision on what to generate is reduced to a simple switch-case.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
The code that was previously in compile().
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
We should not generate tree marking on querySelector traversal. Since the constructor
now generate a SimpleChecker, it would also be incorrect to attempt to access the checkingContext
on the stack.
We can just skip the marking entierly.
* cssjit/SelectorCompiler.h:
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::execute):
With the changes of SelectorContext, we can no longer generate a complex checker for querySelector.
This code may come back in the future but at the moment it is useless.
2014-02-16 Benjamin Poulain <bpoulain@apple.com>
The FTP view is squished to the left
https://bugs.webkit.org/show_bug.cgi?id=128856
Reviewed by Andreas Kling.
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
2014-02-16 Jae Hyun Park <jae.park@company100.net>
[Coordinated Graphics] Make AreaAllocator fast allocated
https://bugs.webkit.org/show_bug.cgi?id=124995
Reviewed by Anders Carlsson.
AreaAllocator can be created and destroyed frequently (at least once per
frame) in case of animation with changing width or height. So, it's
better to make AreaAllocator fast allocated.
* platform/graphics/texmap/coordinated/AreaAllocator.h:
2014-02-16 Pratik Solanki <psolanki@apple.com>
[iOS] WebKit crashes if text is copied to pasteboard with style containing text-shadow
https://bugs.webkit.org/show_bug.cgi?id=128888
<rdar://problem/16065699>
Reviewed by Anders Carlsson.
Use the correct class on iOS so that we don't crash.
* platform/mac/HTMLConverter.mm:
(_shadowForShadowStyle):
2014-02-16 Andreas Kling <akling@apple.com>
Atomicize frequently identical ResourceResponse string members.
<https://webkit.org/b/128887>
Store the mime type, text encoding and HTTP response status text in
AtomicStrings instead of Strings to deduplicate frequently occurring
values (e.g "text/html", "utf-8" and "OK".)
Reviewed by Geoffrey Garen.
* platform/network/ResourceResponseBase.h:
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::ResourceResponse::cfURLResponse):
(WebCore::ResourceResponse::platformLazyInit):
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::platformLazyInit):
2014-02-16 Dan Bernstein <mitz@apple.com>
Speculative iOS build fix.
* dom/Document.cpp:
(WebCore::Document::Document):
2014-02-15 Antti Koivisto <antti@apple.com>
Move document life time management from TreeScope to Document
https://bugs.webkit.org/show_bug.cgi?id=128877
Reviewed by Andreas Kling.
Document life time is managed in confusing manner by TreeScopes which are also inherited to ShadowRoots.
This patches moves the life time management to Document. Nodes in shadow trees selfOnlyRef the Document instead
of the ShadowRoot. ShadowRoot is treated like any other node and selfOnlyRefs the Document as well (which it
also did earlier, indirectly).
TreeScope is devirtualized.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
Author stylesheets never match in UA shadow trees.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::~ContainerNode):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::removedLastRef):
* dom/Document.h:
(WebCore::Document::selfOnlyRef):
(WebCore::Document::selfOnlyDeref):
To avoid branches Document self-refs itself like all other Nodes. This is why deletion will now happen on ref count of 1.
(WebCore::Node::isDocumentNode):
(WebCore::Node::Node):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::add):
* dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::removedLastRef):
* dom/Node.h:
(WebCore::Node::document):
(WebCore::Node::inDocument):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::~ShadowRoot):
* dom/ShadowRoot.h:
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::~TreeScope):
(WebCore::TreeScope::setParentTreeScope):
* dom/TreeScope.h:
(WebCore::TreeScope::documentScope):
Document can no longer ever be null.
(WebCore::TreeScope::rootNode):
(WebCore::TreeScope::setDocumentScope):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveShadowTreeToNewDocument):
Manage Document selfOnlyRefs for nodes in shadow trees too.
(WebCore::TreeScopeAdopter::updateTreeScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
* dom/TreeScopeAdopter.h:
2014-02-16 Ryosuke Niwa <rniwa@webkit.org>
setSelectionRange shouldn't directly instantiate VisibleSelection
https://bugs.webkit.org/show_bug.cgi?id=128881
Reviewed by Andreas Kling.
Added a new version of moveTo for setSelectionRange.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveTo): Added.
* editing/FrameSelection.h:
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange): Use the newly added FrameSelection::moveTo
instead of manually instantiating VisibleSelection here.
2014-02-16 Dan Bernstein <mitz@apple.com>
Stop using PLATFORM(MAC) in Source except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128885
Reviewed by Anders Carlsson.
* loader/FrameLoaderClient.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/Cursor.h: Changed PLATFORM(MAC) to USE(APPKIT) around uses of NSCursor.
* platform/LocalizedStrings.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/graphics/PlatformLayer.h: Ditto.
* platform/graphics/cg/PDFDocumentImage.cpp: Ditto.
* rendering/RenderLayerCompositor.cpp: Ditto.
(WebCore::RenderLayerCompositor::requiresContentShadowLayer):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2014-02-16 Dan Bernstein <mitz@apple.com>
Speculative iOS build fix after r164184.
* dom/Node.cpp:
(WebCore::Node::defaultEventHandler):
2014-02-15 Ryosuke Niwa <rniwa@webkit.org>
DOMSelection shouldn't instantiate VisibleSelection everywhere
https://bugs.webkit.org/show_bug.cgi?id=128879
Reviewed by Antti Koivisto.
Removed explicit instantiation of VisibleSelection from various member functions of VisibleSelection.
* page/DOMSelection.cpp:
(WebCore::DOMSelection::collapse):
(WebCore::DOMSelection::collapseToEnd):
(WebCore::DOMSelection::collapseToStart):
(WebCore::DOMSelection::setBaseAndExtent):
(WebCore::DOMSelection::setPosition):
(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::getRangeAt):
(WebCore::DOMSelection::addRange):
2014-02-15 Ryosuke Niwa <rniwa@webkit.org>
Remove unused arguments from moveTo(Range*)
https://bugs.webkit.org/show_bug.cgi?id=128878
Reviewed by Antti Koivisto.
Cleanup.
* bindings/objc/DOMUIKitExtensions.mm:
(-[DOMRange move:inDirection:]):
(-[DOMRange extend:inDirection:]):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveTo):
* editing/FrameSelection.h:
2014-02-15 Filip Pizlo <fpizlo@apple.com>
Vector with inline capacity should work with non-PODs
https://bugs.webkit.org/show_bug.cgi?id=128864
Reviewed by Michael Saboff.
No new tests because no change behavior.
Deques no longer have inline capacity because it was broken, and we didn't need it
here anyway.
* page/WheelEventDeltaTracker.h:
2014-02-15 Andreas Kling <akling@apple.com>
Add checked casts for Event.
<https://webkit.org/b/128875>
Generate casting helpers for casting from Event to various subclasses
and go on static_cast replacement spree.
Reviewed by Sam Weinig.
2014-02-15 Ryosuke Niwa <rniwa@webkit.org>
HTMLTextFormControlElement::subtreeHasChanged should be called before updating selection
https://bugs.webkit.org/show_bug.cgi?id=128870
Reviewed by Darin Adler.
Extracted HTMLTextFormControlElement::didEditInnerTextValue out of HTMLTextFormControlElement::defaultEventHandler
and called it in appliedEditing, unappliedEditing, and reappliedEditing before updating selection.
* editing/Editor.cpp:
(WebCore::notifyTextFromControls): Added.
(WebCore::Editor::appliedEditing): Update text form control's internal states before updating selection.
(WebCore::Editor::unappliedEditing): Ditto.
(WebCore::Editor::reappliedEditing): Ditto.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::didEditInnerTextValue):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::subtreeHasChanged): Removed a stale assertion from the time we used to do
everything in the render tree.
2014-02-15 Andreas Kling <akling@apple.com>
Add checked casts for ScriptExecutionContext.
<https://webkit.org/b/128874>
Generate casting helpers for casting from ScriptExecutionContext to
Document and WorkerGlobalScope. Apply heartily.
Reviewed by Antti Koivisto.
2014-02-15 Alexey Proskuryakov <ap@apple.com>
[Mac] All WebKit clients should encrypt WebCrypto keys automatically
https://bugs.webkit.org/show_bug.cgi?id=128852
Reviewed by Oliver Hunt.
Install a persistent master key in Keychain on first use of WebCrypto key serialization.
The key is per application, protected with ACL.
* English.lproj/Localizable.strings:
* WebCore.exp.in:
* crypto/SerializedCryptoKeyWrap.h:
* crypto/mac/SerializedCryptoKeyWrapMac.mm:
(WebCore::masterKeyAccountNameForCurrentApplication):
(WebCore::getDefaultWebCryptoMasterKey):
(WebCore::createAndStoreMasterKey):
(WebCore::findMasterKey):
* platform/LocalizedStrings.cpp:
(WebCore::webCryptoMasterKeyKeychainLabel):
(WebCore::webCryptoMasterKeyKeychainComment):
* platform/LocalizedStrings.h:
2014-02-15 Ryosuke Niwa <rniwa@webkit.org>
computeSelectionStart and computeSelectionEnd shouldn't trigger synchronous layout
https://bugs.webkit.org/show_bug.cgi?id=128806
Reviewed by Darin Adler.
Added indexForPosition to HTMLTextFormControlElement. Like r163825, this patch traverses the DOM tree
instead of the render tree to compute the index for a given position.
We traverse the DOM Tree backwards starting at the specified Position all the way back to the beginning
of the inner text element. The index is computed as the number of characters we encountered during
this backwards DOM traversal.
It's worth noting that passedPosition.computeNodeBeforePosition() returns and only returns 0 when the
position is before the first node of its parent or inside a text node. In such cases, we call
passedPosition.containerNode() to find the parent or the text node.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition): Use indexForPosition.
(WebCore::HTMLTextFormControlElement::computeSelectionStart): Ditto.
(WebCore::HTMLTextFormControlElement::computeSelectionEnd): Dotto.
(WebCore::finishText): Cleanup. Use newlineCharacter instead of hard-coding '\n'.
(WebCore::HTMLTextFormControlElement::indexForPosition): Added. See above for the description.
* html/HTMLTextFormControlElement.h:
2014-02-15 Brent Fulgham <bfulgham@apple.com>
[Win] Avoid unnecessary asserts if "prepareToPlay" is called multiple times.
https://bugs.webkit.org/show_bug.cgi?id=128859
Reviewed by Eric Carlson.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::createPlayer): Don't assert if player exists; just return the
existing copy.
(WebCore::AVFWrapper::createPlayerItem): Ditto (but with Player Items).
2014-02-15 Darin Adler <darin@apple.com>
Remove double hashing from DatasetDOMStringMap::deleteItem
https://bugs.webkit.org/show_bug.cgi?id=128865
Reviewed by Benjamin Poulain.
* dom/DatasetDOMStringMap.cpp:
(WebCore::DatasetDOMStringMap::deleteItem): Removed call to hasAttribute, using the
result from removeAttribute instead.
* dom/Element.cpp:
(WebCore::Element::removeAttribute): Add a return value, false if nothing is removed,
and true if something is removed.
(WebCore::Element::removeAttributeNS): Ditto.
* dom/Element.h: Ditto.
2014-02-15 Piotr Grad <p.grad@samsung.com>
Setting currentTime on HTMLMediaElement with media controller should throw exception.
https://bugs.webkit.org/show_bug.cgi?id=128867.
Reviewed by Eric Carlson.
Added implementation for setting currentTime in HTMLMediaElement. Old implementation
was left to be used internally.
Test: media/video-controller-currentTime.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
2014-02-15 Anders Carlsson <andersca@apple.com>
Form controls are always painted in the active state
https://bugs.webkit.org/show_bug.cgi?id=128872
<rdar://problem/9422677>
Reviewed by Dan Bernstein.
AppKit will always paint form controls in the active state if the view doesn't have a
window. Fix this by adding a fake window whose key appearance we'll update based on the
control state. Also, rename WebCoreFlippedView to WebCoreThemeView since it stopped being
just about the flippedness a long time ago.
* platform/mac/ThemeMac.h:
* platform/mac/ThemeMac.mm:
(-[WebCoreThemeWindow hasKeyAppearance]):
Return themeWindowHasKeyAppearance.
(-[WebCoreThemeView window]):
Create a WebCoreThemeWindow object lazily and return it.
(WebCore::paintCheckbox):
(WebCore::paintRadio):
(WebCore::paintButton):
Pass the control states to ThemeMac::ensuredView.
(WebCore::ThemeMac::ensuredView):
Set themeWindowHasKeyAppearance based on the control state.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::documentViewFor):
Pass the control states to ThemeMac::ensuredView.
2014-02-15 Renata Hodovan <rhodovan.u-szeged@partner.samsung.com>
ASSERT_WITH_SECURITY_IMPLICATION in WebCore::toElement
https://bugs.webkit.org/show_bug.cgi?id=128810
Reviewed by Ryosuke Niwa.
Make CompositeEditCommand::cloneParagraphUnderNewElement() to work when |outerNode|
doesn't contain |start|.
Before this patch, CompositeEditCommand::cloneParagraphUnderNewElement() tried to copy
ancestry nodes from |start| to Document node when |start| position isn't in |outerNode|. This
patch changes CompositeEditCommand::cloneParagraphUnderNewElement() to copy |start| to
|outerNode| only if |outerNode| contains |start| position.
Merged from Blink https://src.chromium.org/viewvc/blink?revision=161762&view=revision by yosin@chromium.org.
Test: editing/execCommand/indent-with-uneditable-crash.html
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
2014-02-15 Samuel White <samuel_white@apple.com>
AX: Add ability to specify descendant type when using AXUIElementsForSearchPredicate.
https://bugs.webkit.org/show_bug.cgi?id=128747
Reviewed by Chris Fleizach.
Added support for 'immediate descendant only' to existing predicate based searching. This
addition allows VoiceOver to fetch each child element lazily (rather than all at once via AXChildren).
Test: platform/mac/accessibility/search-predicate-immediate-descendants-only.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::findMatchingObjects):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
2014-02-15 Jeremy Jones <jeremyj@apple.com>
WK2 AVKit enter fullscreen doesn't work a second time.
https://bugs.webkit.org/show_bug.cgi?id=128558
Reviewed by Jer Noble.
Lazily create WebAVPlayerController when needed.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit):
(WebVideoFullscreenInterfaceAVKit::getPlayerController):
Add getPlayerController()
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel):
(WebVideoFullscreenInterfaceAVKit::setDuration):
(WebVideoFullscreenInterfaceAVKit::setCurrentTime):
(WebVideoFullscreenInterfaceAVKit::setRate):
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
(WebVideoFullscreenInterfaceAVKit::setVideoLayer):
(WebVideoFullscreenInterfaceAVKit::enterFullscreenWithCompletionHandler):
use getPlayerController();
2014-02-15 Jer Noble <jer.noble@apple.com>
[Mac] 10X slower than Chrome when drawing a video into a canvas
https://bugs.webkit.org/show_bug.cgi?id=124599
Reviewed by Darin Adler.
Follow up patch to r159518 to address Darin's post-commit review.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::nativeImageForCurrentTime): Use nullptr.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::nativeImageForCurrentTime): Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Clear the
AVPlayerItemVideoOutput's delegate callback.
(WebCore::CVPixelBufferGetBytePointerCallback): Use static_cast.
(WebCore::CVPixelBufferReleaseBytePointerCallback): Ditto.
(WebCore::CVPixelBufferReleaseInfoCallback): Ditto.
(-[WebCoreAVFPullDelegate initWithCallback:]): Space changes.
(-[WebCoreAVFPullDelegate setCallback:]): Added.
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]): Check the value of m_callback.
2014-02-14 Andreas Kling <akling@apple.com>
CTTE: WorkerGlobalScope is always owned by a WorkerThread.
<https://webkit.org/b/128834>
Codify this by storing the owner thread as a WorkerThread& and making
thread() return a reference.
This exposed a couple of unnecessary assertions.
Reviewed by Anders Carlsson.
* Modules/notifications/WorkerGlobalScopeNotifications.cpp:
(WebCore::WorkerGlobalScopeNotifications::webkitNotifications):
* Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::create):
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::createdMessagePort):
(WebCore::ScriptExecutionContext::destroyedMessagePort):
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::pauseWorkerGlobalScope):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::removeRequestFromCache):
* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
(WebCore::DedicatedWorkerGlobalScope::postMessage):
(WebCore::DedicatedWorkerGlobalScope::importScripts):
(WebCore::DedicatedWorkerGlobalScope::thread):
* workers/DedicatedWorkerGlobalScope.h:
* workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
* workers/SharedWorkerGlobalScope.cpp:
(WebCore::SharedWorkerGlobalScope::create):
(WebCore::SharedWorkerGlobalScope::SharedWorkerGlobalScope):
(WebCore::SharedWorkerGlobalScope::thread):
* workers/SharedWorkerGlobalScope.h:
* workers/SharedWorkerThread.cpp:
(WebCore::SharedWorkerThread::createWorkerGlobalScope):
* workers/WorkerGlobalScope.cpp:
(WebCore::CloseWorkerGlobalScopeTask::performTask):
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):
(WebCore::WorkerGlobalScope::postTask):
(WebCore::WorkerGlobalScope::logExceptionToConsole):
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
(WebCore::WorkerGlobalScope::isContextThread):
* workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::thread):
* workers/WorkerMessagingProxy.cpp:
(WebCore::MessageWorkerGlobalScopeTask::performTask):
(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::runCleanupTasks):
2014-02-14 Ryosuke Niwa <rniwa@webkit.org>
setSelectionRange shouldn't trigger a synchronous layout to check focusability when text field is already focused
https://bugs.webkit.org/show_bug.cgi?id=128804
Reviewed by Enrica Casucci.
Don't trigger a synchronous layout at the beginning of setSelectionRange if the element is already focused
since we don't have to check the size of render box in that case.
We should be able to get rid of this synchronous layout entirely once we fix https://webkit.org/b/128797
but that's somewhat risky behavioral change so we'll do that in a separate patch.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectAll): Fixed the bug where selectAll selects the entire document even if the text
form contol is focused if the selection is none (i.e. not anchored to any node).
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange): Only update the layout if the element is not focused
already. Also pass in DoNotSetFocus option to setSelection since we already have the focus in that case.
2014-02-14 Dan Bernstein <mitz@apple.com>
REGRESSION (r157443): Search fields with a non-white background don’t have a round bezel
https://bugs.webkit.org/show_bug.cgi?id=126295
Reviewed by Ryosuke Niwa.
Reverted r157443 and improved comment.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isControlStyled):
2014-02-14 Brian Burg <bburg@apple.com>
Web Replay: AtomicString replay input names should be stored in a thread-local table
https://bugs.webkit.org/show_bug.cgi?id=128829
Reviewed by Andreas Kling.
Similar to how DOM event names are frequently-used AtomicStrings, replay input
names are also checked in many places as a "type tag". This patch puts all known
input names into a class held by ThreadGlobalData and adds the shortcut `inputTypes()`
so that replay input types can be referenced with `inputTypes.InputName()`.
* WebCore.xcodeproj/project.pbxproj:
* platform/ThreadGlobalData.cpp: Add inputTypes() shortcut.
(WebCore::ThreadGlobalData::ThreadGlobalData):
* platform/ThreadGlobalData.h: Add inputTypes() shortcut.
(WebCore::ThreadGlobalData::inputTypes):
* replay/ReplayInputTypes.cpp: Added.
(WebCore::ReplayInputTypes::ReplayInputTypes):
* replay/ReplayInputTypes.h: Added.
(WebCore::inputTypes): The input names are provided by per-framework macros that
are generated by the replay inputs code generator.
2014-02-14 Jer Noble <jer.noble@apple.com>
Add support for specced event handlers to HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=128292
Reviewed by Andreas Kling.
Test: media/media-event-listeners.html
Add explicit event listener IDL attributes to HTMLMediaElement.
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
2014-02-14 Oliver Hunt <oliver@apple.com>
Implement a few more Array prototype functions in JS
https://bugs.webkit.org/show_bug.cgi?id=128788
Reviewed by Gavin Barraclough.
Minor change to ensure that the inspector is treating builtins
as host functions.
Tests: js/regress/array-prototype-filter.html
js/regress/array-prototype-forEach.html
js/regress/array-prototype-map.html
js/regress/array-prototype-some.html
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
Make sure we treat builtins as regular host functions
2014-02-14 Beth Dakin <bdakin@apple.com>
Margin tiles are not created for the top and left sides when there is a < 1.0
scale factor
https://bugs.webkit.org/show_bug.cgi?id=128842
Reviewed by Simon Fraser.
floor the result of the computation whenever we have a negative origin, to ensure
that we are rounding 'up' to a larger number of tiles.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::getTileIndexRangeForRect):
2014-02-13 Ryosuke Niwa <rniwa@webkit.org>
setSelection should not synchronously trigger layout
https://bugs.webkit.org/show_bug.cgi?id=128797
Reviewed by Antti Koivisto.
Only update the appearance and reveal selection when the style and the layout is already up to date.
Otherwise, do so in performPostLayoutTasks.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::setSelection): Set m_pendingSelectionUpdate and synchronously update caret rect
if we don't need to update style or layout.
(WebCore::updateSelectionByUpdatingLayoutOrStyle): Added. Used by FrameSelection member functions to
trigger layout or style recalc whichever is needed.
(WebCore::FrameSelection::updateAndRevealSelection): Extracted from setSelection.
(WebCore::FrameSelection::absoluteCaretBounds): Call updateSelectionByUpdatingLayoutOrStyle since caret rect
is no longer updated synchronously in setSelection.
(WebCore::FrameSelection::recomputeCaretRect): Don't assert that visibleStart().absoluteCaretBounds() is
equal to m_absCaretBounds since selection may no longer be caret at this point.
(WebCore::FrameSelection::setCaretVisibility): Call updateSelectionByUpdatingLayoutOrStyle since we're
synchronously calling into updateAppearance here. In the future, we should make this asynchronous as well.
(WebCore::FrameSelection::selectionBounds): Call updateSelectionByUpdatingLayoutOrStyle since selection bounds
could be outdated. This code only triggering style recalc was presumably a bug.
* editing/FrameSelection.h:
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks): Update selection's appearance and scroll to reveal selection
as needed.
2014-02-14 Andreas Kling <akling@apple.com>
Purge remaining ENABLE(SHADOW_DOM) cruft.
<https://webkit.org/b/128827>
Remove the remaining 8.8 million lines of Shadow DOM code to align
with goals for intent to ship 60fps on mobile in 2014.
Reviewed by Antti Koivisto.
2014-02-13 Jer Noble <jer.noble@apple.com>
[MediaControls][iOS] Embedded YouTube does not show a 'paused' button state after starting
https://bugs.webkit.org/show_bug.cgi?id=128755
Reviewed by Eric Carlson.
Don't rely on "canPlay()", instead, take the information directly from the event itself. I.e., when
handling the 'play' event, switch mode to playing, and vice versa for the 'pause' event.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handlePlay):
(Controller.prototype.handlePause):
(Controller.prototype.updatePlaying):
(Controller.prototype.setPlaying):
2014-02-13 Jer Noble <jer.noble@apple.com>
[MediaControls][iOS] Start playback button is visible when playing embedded YouTube
https://bugs.webkit.org/show_bug.cgi?id=128754
Reviewed by Eric Carlson.
Update shouldHaveStartPlaybackButton to match the behavior of the plugin proxy.
Add a accessor to determine whether playback has been requested:
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::userGestureRequired):
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediacontrols/MediaControlsHost.idl:
Update the logic of shouldHaveStartPlaybackButton.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.shouldHaveStartPlaybackButton):
2014-02-13 Jer Noble <jer.noble@apple.com>
[MediaControls] Add support for a loading progress meter
https://bugs.webkit.org/show_bug.cgi?id=128651
Reviewed by Eric Carlson.
Draw the loaded ranges underneath the timeline slider. Use a -webkit-canvas()
CSS function to allow the track of the slider to reflect the current state of
the video's loadedTimeRanges property.
Since -webkit-canvas() will share a backing store with all other CSS images using
the same identifier, use a monotonically increasing identifier to uniquely identify the timeline on a per-document basis.
* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-timeline):
* Modules/mediacontrols/mediaControlsApple.js:
(Controller): Call updateProgress().
(Controller.prototype.createControls): Set up the canvas style and identifier.
(Controller.prototype.handleLoadStart): Call updateProgress().
(Controller.prototype.handleStalled): Ditto.
(Controller.prototype.handleReadyStateChange): Ditto.
(Controller.prototype.handleDurationChange): Ditto.
(Controller.prototype.handleProgress): Ditto.
(Controller.prototype.progressFillStyle): Added an easily overridable method
to determine the fill color of the progress bar.
(Controller.prototype.updateProgress): Draw the loadedTimeRanges into the timeline slider.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.progressFillStyle): Override.
2014-02-14 Benjamin Poulain <benjamin@webkit.org>
Clean up JSDOMStringMap::deleteProperty
https://bugs.webkit.org/show_bug.cgi?id=128801
Reviewed by Geoffrey Garen.
Follow up on my cleaning of JSDOMStringMapCustom, this time for deletion.
Previously, we would query for the name, then call deleteItem() if the name was
found. Instead, everything is moved to deleteItem which then return if the deletion
is successful or not.
By using convertPropertyNameToAttributeName, we can use Element::hasAttribute() directly
to find if the attribute exists or not. If it exists, we remove it.
Theoretically we could have a single pass over the attributes to find->delete but this
code is not hot enough to justify anything fancy at this point.
Finally, we no longer check for isValidPropertyName() on deletion. JSDOMStringMapCustom
was the last client of DatasetDOMStringMap::deleteItem() and it could not call deleteItem()
with invalid name since the name would have failed DatasetDOMStringMap::contains().
The spec does not specify any name checking either for deletion so we are safe just ignoring
invalid input.
* bindings/js/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::deleteProperty):
* dom/DatasetDOMStringMap.cpp:
(WebCore::DatasetDOMStringMap::deleteItem):
* dom/DatasetDOMStringMap.h:
2014-02-14 Benjamin Poulain <bpoulain@apple.com>
Improve the performance on mobile of FTPDirectoryDocument
https://bugs.webkit.org/show_bug.cgi?id=128778
Reviewed by Antti Koivisto.
Little cleanup.
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::processFilesizeString):
(WebCore::wasLastDayOfMonth):
(WebCore::processFileDateString):
(WebCore::FTPDirectoryDocumentParser::parseAndAppendOneLine):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
2014-02-14 Benjamin Poulain <benjamin@webkit.org>
Do not attempt to synchronize attributes when no Simple Selector could match an animatable attribute
https://bugs.webkit.org/show_bug.cgi?id=128728
Reviewed by Andreas Kling.
In most cases, we don't even need to test for the flag animatedSVGAttributesNotDirty.
If the selector filter could never match an animatable attribute, there is no point in testing for one.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::canMatchStyleAttribute):
Skip the second test when the local name is equal to canonicalLocalName. That is the common case.
(WebCore::SelectorCompiler::canMatchAnimatableSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributesMatching):
* svg/SVGElement.cpp:
(WebCore::addQualifiedName):
(WebCore::SVGElement::animatableAttributeForName):
(WebCore::SVGElement::isAnimatableAttribute):
(WebCore::SVGElement::filterOutAnimatableAttribute):
* svg/SVGElement.h:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::filterOutAnimatableAttribute):
* svg/SVGScriptElement.h:
Move the list of animatable attribute to a static function available in Release.
Selector matching is a lot more flexible than normal name matching. Since the local name must
always match, it is used as a key to get the full QualifiedName to compare to the selector.
Separating the list of animatable attributes between Selectors and SVGElement::isAnimatableAttribute
would be error prone. Instead, SVGElement::isAnimatableAttribute() is modified to use
SVGElement::animatableAttributeForName so that the two never get out of sync.
Since SVGScriptElement has one additional restriction to isAnimatableAttribute(), the function
filterOutAnimatableAttribute() is added to remove a qualified name from the complete list of animatable attributes.
This ensure SVGElement::animatableAttributeForName() always has the complete list, and subclasses of SVGElement
can only remove QualifiedNames, not add them.
2014-02-14 Benjamin Poulain <benjamin@webkit.org>
Make code generation of the unoptimized pseudo classes separate
https://bugs.webkit.org/show_bug.cgi?id=128704
Reviewed by Andreas Kling.
Mapping the unoptimized selectors when generating the code was useful for debugging
but those cases are so common that looping over unoptimizedPseudoCheckers was more
costly than anticipated.
This patch moves the unoptimized pseudo selector in their own array to simplify code generation.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2014-02-14 Myles C. Maxfield <mmaxfield@apple.com>
Implement text-decoration-skip: auto
https://bugs.webkit.org/show_bug.cgi?id=128786
Reviewed by Dean Jackson.
http://lists.w3.org/Archives/Public/www-style/2014Feb/0485.html
We are updating the initial value of text-decoration-skip to a new value, "auto".
On Mac + iOS, this will have the same behavior as "skip".
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-default.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::renderTextDecorationSkipFlagsToCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTextDecorationSkip):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::valueToDecorationSkip):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
2014-02-13 Simon Fraser <simon.fraser@apple.com>
Give ScrollingTree(State)Nodes a reference to another layer, which is used for moving overflow:scroll contents around
https://bugs.webkit.org/show_bug.cgi?id=128790
Reviewed by Beth Dakin.
Have scrolling tree nodes and state nodes track another layer, the
"scrolled contents layer", for accelerated overflow:scroll.
When making ScrollingTreeScrollingNodes for overflow:scroll, the node's
layer will point to the composited element's primary layer, and its
scrolledContentsLayer to the layer that gets moved around by scrolling.
Do some other cleanup on AsyncScrollingCoordinator, removing
functions that just called through to nodes.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::updateBeforeChildren):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged):
2014-02-14 Chris Fleizach <cfleizach@apple.com>
AX: WebKit needs heuristics to differentiate lists used for layout from semantic data lists, similar to the heuristics for layout tables versus data tables.
https://bugs.webkit.org/show_bug.cgi?id=122320
Reviewed by Mario Sanchez Prada.
Many authors use lists for layout, rather than presenting data. Exposing these kinds of lists to accessibility users
makes the web harder to process and listen, while degrading the importance of real lists.
This introduces heuristics to filter out layout lists with the following:
1. If it's a named list, like ol or aria=list, then it's a list.
1a. Unless the list has no children, then it's not a list.
2. If it displays visible list markers, it's a list.
3. If it does not display list markers and has only one child, it's not a list.
4. If it does not have any listitem children, it's not a list.
5. Otherwise it's a list (for now).
Test: accessibility/list-detection.html
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::determineAccessibilityRole):
(WebCore::AccessibilityList::roleValue):
* accessibility/AccessibilityList.h:
2014-02-14 Brendan Long <b.long@cablelabs.com>
Use AtomicString arguments in TrackPrivateBaseClient callbacks
https://bugs.webkit.org/show_bug.cgi?id=128765
Reviewed by Eric Carlson.
No new tests because this doesn't change functionality.
* html/track/AudioTrack.cpp:
(WebCore::AudioTrack::idChanged):
(WebCore::AudioTrack::labelChanged):
(WebCore::AudioTrack::languageChanged):
* html/track/AudioTrack.h:
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::InbandTextTrack):
(WebCore::InbandTextTrack::idChanged):
(WebCore::InbandTextTrack::labelChanged):
(WebCore::InbandTextTrack::languageChanged):
* html/track/InbandTextTrack.h:
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::idChanged):
(WebCore::VideoTrack::labelChanged):
(WebCore::VideoTrack::languageChanged):
* html/track/VideoTrack.h:
* platform/graphics/TrackPrivateBase.h:
2014-02-14 Renata Hodovan <rhodovan.u-szeged@partner.samsung.com>
ASSERTION FAILED: comparePositions(newEnd, newStart) >= 0 in WebCore::ApplyStyleCommand::updateStartEnd
https://bugs.webkit.org/show_bug.cgi?id=121791
Reviewed by Darin Adler.
If WebCore::ApplyStyleCommand::applyBlockStyle() creates a TextIterator for a range
that has an element with ReplacedElement rendering object, then a ',' is emitted in the
constructor of TextIterator. Due to this comma the end of the run range can be at the
wrong position, what makes the assertion fire. This situation can be handled the same
way in TextIterator::rangeFromLocationAndLength() as we do in case of the emitted '\n's.
Test: editing/execCommand/remove-formatting-from-iframe-in-button.html
* editing/TextIterator.cpp:
(WebCore::TextIterator::rangeFromLocationAndLength):
2014-02-14 Andrei Bucur <abucur@adobe.com>
[CSS Regions] visibility: hidden on a region should hide its content
https://bugs.webkit.org/show_bug.cgi?id=128814
Reviewed by Mihnea Ovidenie.
The patch properly checks that the content of a region layer should be painted before actually
calling the paint function (for example, when visibility: hidden is specified on a region, its
content should be hidden).
Test: fast/regions/visibility-hidden.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
2014-02-14 László Langó <llango.u-szeged@partner.samsung.com>
Follow-up fix after r164036.
Reviewed by Csaba Osztrogonác.
* dom/Document.cpp:
(WebCore::Document::create):
2014-02-13 Byungseon Shin <sun.shin@lge.com>
[MSE] Move PublicURLManager shutdown logic so ActiveDOMObjects associated with public URLs won't leak.
https://bugs.webkit.org/show_bug.cgi?id=128532
Reviewed by Jer Noble.
This fixes a leak of DOM objects by breaking the circular reference
between Document, PublicURLManager, and MediaSource.
Instead of clearing PublicURLManager at destruction-time,
which is delayed indefinitely because of the circular reference,
clear the PublicURLManager during ActiveDOMObject::stop().
Frome Blink r151890 by <acolwell@chromium.org>
<https://src.chromium.org/viewvc/blink?view=rev&revision=151890>
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::publicURLManager):
* html/DOMURL.h:
* html/PublicURLManager.cpp:
(WebCore::PublicURLManager::create):
(WebCore::PublicURLManager::PublicURLManager):
(WebCore::PublicURLManager::registerURL):
(WebCore::PublicURLManager::stop):
* html/PublicURLManager.h:
2014-02-13 Myles C. Maxfield <mmaxfield@apple.com>
Remove position:sticky runtime flag
https://bugs.webkit.org/show_bug.cgi?id=128774
Reviewed by Simon Fraser.
Rollout of r128663
No new tests are necessary because there is no behavior change.
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::isValidKeywordPropertyAndValue):
* css/CSSParserMode.h:
* dom/Document.cpp:
* dom/Document.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
2014-02-04 Gustavo Noronha Silva <gns@gnome.org>
[GTK][CMake] Generate GObject DOM bindings .symbols files
https://bugs.webkit.org/show_bug.cgi?id=126210
Reviewed by Martin Robinson.
No new tests. Build change only.
* CMakeLists.txt: list Quota module files and IDLs even if the feature
is disabled, for GTK, since we rely on that for our DOM bindings.
* PlatformGTK.cmake: add a new target to check for DOM symbols API by
running the new python script.
* bindings/gobject/GNUmakefile.am: call the new python script instead
of using a custom rule.
2014-02-13 Myles C. Maxfield <mmaxfield@apple.com>
text-decoration-skip: ink skips randomly when using SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=128709
Reviewed by Simon Fraser.
This patch simply disables skipping underlines being used with SVG fonts.
It's a stopgap until we can support skipping properly with SVG fonts.
Test: svg/custom/svg-fonts-skip-ink.html
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::ctFont):
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::dashesForIntersectionsWithRect):
2014-02-13 Daniel Bates <dabates@apple.com>
Fix the ARM build when HAVE_ARM_NEON_INTRINSICS is enabled
Add !HAVE(ARM_NEON_INTRINSICS)-guard around file-level inline function arithmeticSoftware to
avoid an unused function compiler warning when building with ARM Neon intrinsics.
* platform/graphics/filters/FEComposite.cpp:
2014-02-13 Brady Eidson <beidson@apple.com>
IDB: Three tests crash the DatabaseProcess under ~KeyedDecoder
https://bugs.webkit.org/show_bug.cgi?id=128763
Reviewed by Anders Carlsson.
No new tests (Covered by three existing tests)
* platform/KeyedCoding.h:
(WebCore::KeyedEncoder::encodeObjects): If the array is empty we still have to begin() and end() it.
2014-02-13 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
[css3-text] Support -webkit-text-decoration-skip: objects
https://bugs.webkit.org/show_bug.cgi?id=128723
Reviewed by Dean Jackson.
Implemented 'objects' value of text-decoration-skip.
http://www.w3.org/TR/2013/CR-css-text-decor-3-20130801/#text-decoration-skip
This is initial value and same behavior without
ENABLE_CSS3_TEXT_DECORATION_SKIP_INK flag. Threfore, this patch only
added parser code and constant for 'objects'.
Changed the initial value of text-decoration-skip.
The current implementation parses 'none', but the rendering code is
not match the spec, so this patch added FIXME to the rendering code.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::renderTextDecorationSkipFlagsToCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTextDecorationSkip):
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::valueToDecorationSkip):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
2014-02-13 Daniel Bates <dabates@apple.com>
Fix ARM NEON build following <http://trac.webkit.org/changeset/164058>
(https://bugs.webkit.org/show_bug.cgi?id=128767)
I inadvertently didn't include header NEONHelpers.h, which defines WebCore::loadRGBA8AsFloat().
* platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
2014-02-13 Daniel Bates <dabates@apple.com>
Write FEComposite::computeArithmeticPixelsNeon() in terms of loadRGBA8AsFloat()
https://bugs.webkit.org/show_bug.cgi?id=128767
Reviewed by Dean Jackson.
This patch was inspired by Gabor Rapcsanyi's work in <https://bugs.webkit.org/show_bug.cgi?id=90669>.
Currently we duplicate code in FEComposite::computeArithmeticPixelsNeon() to read pixel data.
Instead we should use the convenience function WebCore::loadRGBA8AsFloat. This also resolves
an uninitialized variable compiler warning in the existing code.
* platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
(WebCore::FEComposite::computeArithmeticPixelsNeon):
2014-02-13 Myles C. Maxfield <mmaxfield@apple.com>
During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
https://bugs.webkit.org/show_bug.cgi?id=128688
Reviewed by Ryosuke Niwa.
Adds a field, m_needsPositionStyleConversion, to StyledMarkupAccumulator.
Also, renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy
Test: editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::appendElement):
(WebCore::createMarkupInternal):
* page/Settings.in:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setShouldConvertPositionStyleOnCopy):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
2014-02-12 Timothy Hatcher <timothy@apple.com>
Enable inspection of recently used IndexedDB databases.
https://bugs.webkit.org/show_bug.cgi?id=128687
Reviewed by Brady Eidson & Joseph Pecoraro.
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::getDatabaseNames):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
Fix up the arguments passed to getDatabaseNames.
* WebCore.xcodeproj/project.pbxproj:
Make DOMStringList.h private so WebKit2 can use it.
* inspector/InspectorIndexedDBAgent.cpp:
Modernize the loops and remove some PLATFORM(COCOA) ifdefs to
compile the code.
* inspector/protocol/IndexedDB.json: Use number for version to
allow larger values instead of clamping to int.
2014-02-13 Chang Shu <cshu@webkit.org>
Copying (createMarkup) wrapping text results in space between wrapped lines stripped.
https://bugs.webkit.org/show_bug.cgi?id=63233
The problem is StyledMarkupAccumulator uses renderedText and the space at
the end of the text has been stripped when the tag after the text was wrapped.
Reviewed by Ryosuke Niwa.
Test: editing/pasteboard/copy-text-with-wrapped-tag.html
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::handleTextBox):
* editing/TextIterator.h:
Check the special case when the iterator runs over a range that is followed by a non-text box.
In this case, the possible last space has been collapsed and needs to be restored.
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::renderedText):
Check if the range is followed by more nodes and pass this information to the constructed TextIterator.
2014-02-13 Myles C. Maxfield <mmaxfield@apple.com>
Gaps for text-decoration-skip: ink are calculated assuming the glyph orientation is the same as the run orientation
https://bugs.webkit.org/show_bug.cgi?id=128718
Reviewed by Darin Adler.
This is a stop-gap patch to make underlines in CJK text not look terrible. A long-term fix is to refactor
showGlyphsWithAdvances to move rotation logic into a common place that the text-decoration-skip: ink code
can use.
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-orientation-upright.html
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
2014-02-13 Andreas Kling <akling@apple.com>
InsertIntoTextNodeCommand should get Settings from the Frame.
<https://webkit.org/b/128678>
EditCommands have a frame() accessor that returns a reference,
so there's no need to go through Document.
Reviewed by Anders Carlsson.
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
2014-02-13 László Langó <llango.u-szeged@partner.samsung.com>
Document should be constructable
https://bugs.webkit.org/show_bug.cgi?id=115643
Reviewed by Darin Adler.
http://www.w3.org/TR/2014/WD-dom-20140204/#interface-document
Make Document constructable so that one can do "new Document"
instead of "document.implementation.createHTMLDocument('')".
Test: fast/dom/Document/document-constructor.html
* dom/Document.cpp:
(WebCore::Document::create):
(WebCore::Document::origin):
* dom/Document.h:
* dom/Document.idl:
2014-02-13 Javier Fernandez <jfernandez@igalia.com>
[CSS Grid Layout] Rename named areas property
https://bugs.webkit.org/show_bug.cgi?id=127990
Reviewed by Sergio Villar Senin.
From Blink r165891 by <rego@igalia.com>
The property 'grid-template' has been renamed to 'grid-template-areas'
in the last two versions of the spec.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSGridTemplateAreasValue.cpp: Renamed from Source/WebCore/css/CSSGridTemplateValue.cpp.
(WebCore::CSSGridTemplateAreasValue::CSSGridTemplateAreasValue):
(WebCore::stringForPosition):
(WebCore::CSSGridTemplateAreasValue::customCSSText):
* css/CSSGridTemplateAreasValue.h: Renamed from Source/WebCore/css/CSSGridTemplateValue.h.
(WebCore::CSSGridTemplateAreasValue::create):
(WebCore::CSSGridTemplateAreasValue::~CSSGridTemplateAreasValue):
(WebCore::CSSGridTemplateAreasValue::gridAreaMap):
(WebCore::CSSGridTemplateAreasValue::rowCount):
(WebCore::CSSGridTemplateAreasValue::columnCount):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridTemplateAreas):
* css/CSSParser.h:
* css/CSSPropertyNames.in:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isGridTemplateAreasValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2014-02-13 Adrian Bunk <bunk@stusta.de>
Remove the last remnants of Maemo support
https://bugs.webkit.org/show_bug.cgi?id=85238
Reviewed by Ryosuke Niwa.
* plugins/npapi.h:
2014-02-13 ChangSeok Oh <changseok.oh@collabora.com>
Support ANGLE_instanced_arrays for GLES backend.
https://bugs.webkit.org/show_bug.cgi?id=128579
Reviewed by Dean Jackson.
Add some APIs to Extensions3D to support ANGLE_instanced_arrays for GLES backend.
At the same time, drawArraysInstanced, drawElementsInstanced and vertexAttribDivisor
are moved from GC3DOpenGL.cpp to GC3DOpenGLCommon.cpp since they could be shareable
through Extensions3D.
Covered by fast/canvas/webgl/angle-instanced-arrays.html
* platform/graphics/Extensions3D.h:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::drawArraysInstanced):
(WebCore::Extensions3DOpenGL::drawElementsInstanced):
(WebCore::Extensions3DOpenGL::vertexAttribDivisor):
* platform/graphics/opengl/Extensions3DOpenGL.h:
* platform/graphics/opengl/Extensions3DOpenGLES.cpp:
(WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
(WebCore::Extensions3DOpenGLES::drawArraysInstanced):
(WebCore::Extensions3DOpenGLES::drawElementsInstanced):
(WebCore::Extensions3DOpenGLES::vertexAttribDivisor):
(WebCore::Extensions3DOpenGLES::supportsExtension):
* platform/graphics/opengl/Extensions3DOpenGLES.h:
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::drawArraysInstanced):
(WebCore::GraphicsContext3D::drawElementsInstanced):
(WebCore::GraphicsContext3D::vertexAttribDivisor):
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2014-02-13 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] MEDIA_CONTROLS_SCRIPT support
https://bugs.webkit.org/show_bug.cgi?id=123097
Reviewed by Jer Noble.
WebKitGTK+ multimedia controls are now managed from Javascript
code. Apple controls are kept as common code and GTK+ ones are
subclassed for the specific behavior.
Both CMake and Autotools build support is provided.
* CMakeLists.txt: Added support to build the media controls
script and their associated files.
* GNUmakefile.am: Added support to generate the C++ code from the
Javascript.
* GNUmakefile.list.am: Added the media controls script associated
files.
* Modules/mediacontrols/MediaControlsHost.cpp:
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediacontrols/MediaControlsHost.idl:
(WebCore::MediaControlsHost::supportsFullscreen): Added attribute
to know if the element supports fullscreen.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.handleWrapperMouseOut):
(Controller.prototype.updatePlaying): Use clear and
resetHideControlsTimer.
(Controller.prototype.clearHideControlsTimer): Added.
(Controller.prototype.resetHideControlsTimer): Added.
* Modules/mediacontrols/mediaControlsGtk.js: Added.
(createControls): Calls ControllerGtk.
(ControllerGtk): Calls the superclass.
(contains): Defines a function to know if an object is contained
in an array.
(ControllerGtk.prototype.inheritFrom): Copies the method of the
superclass that are not reimplemented in the subclass.
(ControllerGtk.prototype.createControls): Calls the superclass and
create the remaining needed elements.
(ControllerGtk.prototype.configureInlineControls): Configures the
controls.
(ControllerGtk.prototype.setStatusHidden): Redefined empty.
(ControllerGtk.prototype.updateTime): Writes the duration and
current position. As it was so far, current time also includes
duration. If current time is bigger than 0 we show that.
(ControllerGtk.prototype.showCurrentTime): Shows current time and
hides duration label (that is included in current time).
(ControllerGtk.prototype.handlePlay): Calls the superclass and
force showing the current time.
(ControllerGtk.prototype.handleTimeUpdate): Always update the
time.
(ControllerGtk.prototype.handleMuteButtonMouseOver): Shows the
volume slider.
(ControllerGtk.prototype.handleVolumeBoxMouseOut): Hides the
volume slider.
(ControllerGtk.prototype.addControls): Adds the enclosure instead
of the panel directly. Panel is, of course, part of the enclosure.
(ControllerGtk.prototype.updateReadyState): Shows the fullscreen
button only if fullscreen is supported. Sets the volume in up or
down mode depending on its position in the document. Updates the
volume.
(ControllerGtk.prototype.setControlsType): Creates the controls it
they were not created before. Unlike Apple ones, WebKitGTK+
fullscreen and inline controls are the same.
(ControllerGtk.prototype.updatePlaying): Calls the superclass and
shows the controls if not playing.
(ControllerGtk.prototype.handleCaptionButtonClicked): Redefined
empty. To be coherent with volume, that also shows a popup, this
is handled with mouseover instead of click.
(ControllerGtk.prototype.buildCaptionMenu): Calls the superclass
to build the menu, sets some listeners, centers the popup with the
captions button, keeps the current height and sets the style to 0,
which is needed to animate it.
(ControllerGtk.prototype.destroyCaptionMenu): Hides the caption menu.
(ControllerGtk.prototype.showCaptionMenu): Resets the height to
its original. We don't animate it with CSS because we would need
to specify a height in the style and we don't know it in advance.
(ControllerGtk.prototype.hideCaptionMenu): Sets height to 0.
(ControllerGtk.prototype.captionMenuTransitionEnd): When the
captions menu transtition ends, it is destroyed.
(ControllerGtk.prototype.handleCaptionButtonMouseOver): Creates
the caption menu and shows it.
(ControllerGtk.prototype.handleCaptionButtonMouseOut): Hides the
captions menu.
(ControllerGtk.prototype.handleCaptionMouseOut): Hides the
captions menu.
* PlatformGTK.cmake: Added WebCore to the target link libraries
and initialized the variables needed at CMakelists.txt
* css/mediaControlsGtk.css:
(audio::-webkit-media-controls-panel)
(video::-webkit-media-controls-panel): Added transtion based on opacity.
(video::-webkit-media-controls-panel): Set video opacity to 0.
(video::-webkit-media-controls-panel.paused): Set video opacity to 1.
(audio::-webkit-media-controls-panel div.mute-box): Set the same
style as the mute button to preserve the layout.
(audio::-webkit-media-controls-panel div.mute-box.hidden): Sets
the display to none.
(audio::-webkit-media-controls-mute-button)
(video::-webkit-media-controls-mute-button): Removed the outline
and the margin that is managed by the mute box now.
(audio::-webkit-media-controls-play-button)
(video::-webkit-media-controls-play-button): Removed the outline.
(audio::-webkit-media-controls-time-remaining-display)
(video::-webkit-media-controls-time-remaining-display): Removed
the display.
(audio::-webkit-media-controls-current-time-display)
(video::-webkit-media-controls-current-time-display): Added the
display block.
(video::-webkit-media-controls-time-remaining-display): Set
display none.
(video::-webkit-media-controls-time-remaining-display.show): Set
display block.
(video::-webkit-media-controls-time-remaining-display.hidden): Set
display none.
(audio::-webkit-media-controls-timeline)
(video::-webkit-media-controls-timeline): Removed outline.
(audio::-webkit-media-controls-volume-slider-container)
(video::-webkit-media-controls-volume-slider-container): Set
overflow hidden and set a transition by height.
(video::-webkit-media-controls-volume-slider-container.hidden):
Set height 0.
(video::-webkit-media-controls-volume-slider-container.down): Set
bottom to be below the panel. Changed the border radius and
transition accordingly.
(video::-webkit-media-controls-panel .hidden.down): Sets default
bottom as 0.
(audio::-webkit-media-controls-volume-slider)
(video::-webkit-media-controls-volume-slider): Removed the outline.
(audio::-webkit-media-controls-toggle-closed-captions-button)
(video::-webkit-media-controls-toggle-closed-captions-button):
Removed the background that is painted from C++ and removed the
outline.
(video::-webkit-media-controls-closed-captions-container):
(video::-webkit-media-controls-closed-captions-container h3):
(video::-webkit-media-controls-closed-captions-container ul):
(video::-webkit-media-controls-closed-captions-container li):
(video::-webkit-media-controls-closed-captions-container li.selected): Changed
the style to make it more coherent with the rest of the controls.
(audio::-webkit-media-controls-fullscreen-button)
(video::-webkit-media-controls-fullscreen-button): Removed the outline.
(audio::-webkit-media-controls-panel button.hidden): Sets the
display to none.
* html/HTMLMediaElement.cpp: UserAgentScripts.h is not needed here
and build cmake build would need for changes to get this compiled.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::nodeHasPseudo): Added. Checks if a node has a certain
pseudo.
(WebCore::nodeHasClass): Added. Checks if a node has a certain
class.
(WebCore::supportsFocus): Removed some element types as outline is
now handled in CSS.
(WebCore::RenderThemeGtk::paintMediaPlayButton): Checks if the
play button has the class paused to show the play icon instead of
the pause one.
(WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
Added. Paints the captions icon.
(WebCore::RenderThemeGtk::mediaControlsScript): Added. Loads the
bundled scripts.
* platform/gtk/RenderThemeGtk.h: Added the mediaControlsScript
method and declared the redefinition of the method to play the
captions icon.
2014-02-11 Alexey Proskuryakov <ap@apple.com>
Don't crash when SerializedScriptValue deserialization fails
https://bugs.webkit.org/show_bug.cgi?id=128657
Reviewed by Oliver Hunt.
Test: crypto/subtle/postMessage-worker.html
* bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::data): Added a FIXME.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneBase::fail): Don't assert on failure.
(WebCore::SerializedScriptValue::deserialize): Never return a null JSValue, these
are not allowed.
2014-02-12 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] Rename shapeSize and others to make ShapeInfo and friends easier to understand
https://bugs.webkit.org/show_bug.cgi?id=128685
Reviewed by Alexandru Chiculita.
The ShapeInfo hierarchy has grown organically as the spec has changed,
and the naming has become very stale and confusing. The spec is now in
Last Call, so it seems like a good time to take a stab towards better
naming that matches the spec terminology and is also more consistent
in general.
No new tests, no behavior change.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::imageChanged): Use new names.
(WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Ditto.
(WebCore::shapeInfoRequiresRelayout): Ditto.
(WebCore::RenderBlock::computeShapeSize): Ditto.
(WebCore::RenderBlock::updateShapesAfterBlockLayout): Ditto.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::logicalSizeForChild): This method makes it much
cleaner to set the reference box size.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionNewFloats): Use new names.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::updateShapeOutsideInfoAfterStyleChange): Ditto.
(WebCore::RenderBox::imageChanged): Ditto.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::getShapeImageMarginRect): Rename variables.
(WebCore::ShapeInfo<RenderType>::computedShape): More renames.
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::setReferenceBoxLogicalSize): Renamed from
setShapeSize.
(WebCore::ShapeInfo::logicalLineTop): Use new names.
(WebCore::ShapeInfo::logicalLineBottom): Ditto.
(WebCore::ShapeInfo::shapeContainingBlockLogicalHeight): Ditto.
(WebCore::ShapeInfo::markShapeAsDirty): Renamed from dirtyShapeSize.
(WebCore::ShapeInfo::isShapeDirty): Renamed from shapeSizeDirty.
(WebCore::ShapeInfo::referenceBoxLogicalSize): Renamed from shapeSize.
(WebCore::ShapeInfo::logicalTopOffset): Use new names.
(WebCore::ShapeInfo::logicalLeftOffset): Ditto.
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::updateSegmentsForLine): Ditto.
(WebCore::ShapeInsideInfo::adjustLogicalLineTop): Ditto.
(WebCore::ShapeInsideInfo::computeFirstFitPositionForFloat): Ditto.
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine): Ditto.
* rendering/shapes/ShapeOutsideInfo.h:
2014-02-12 Brent Fulgham <bfulgham@apple.com>
REGRESSION: Crashing/Broken Tests Due To Unexpected 8-bit Character Data
https://bugs.webkit.org/show_bug.cgi?id=128698
Reviewed by Tim Horton.
* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::advance): Make 16-bit copy when needed.
(WebCore::UniscribeController::shapeAndPlaceItem): Handle 8-bit case when checking
for word boundaries.
2014-02-12 Benjamin Poulain <bpoulain@apple.com>
Document::childrenChanged does not necessarily have a page
Rubber stamped by Enrica Casucci.
* dom/Document.cpp:
(WebCore::Document::childrenChanged):
2014-02-12 Timothy Hatcher <timothy@apple.com>
Add a missing ": " between the URL and exception in STDOUT logs.
https://bugs.webkit.org/show_bug.cgi?id=128689
Reviewed by Joseph Pecoraro.
* page/PageConsole.cpp:
(WebCore::PageConsole::addMessage): Print ": " after calling
printSourceURLAndPosition now that it does not print it for us.
2014-02-12 Enrica Casucci <enrica@apple.com>
WK2: coordinate mapping for frames does not work when the page is scrolled.
https://bugs.webkit.org/show_bug.cgi?id=128690
<rdar://problem/16042925>
Reviewed by Simon Fraser.
We should not apply the scroll offset when using delegate scrolling.
* platform/ScrollView.cpp:
(WebCore::ScrollView::rootViewToContents):
(WebCore::ScrollView::contentsToRootView):
(WebCore::ScrollView::rootViewToTotalContents):
2014-02-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Rename PageInjectedScript* to WebInjectedScript*
https://bugs.webkit.org/show_bug.cgi?id=128660
Reviewed by Timothy Hatcher.
Rename the files update build systems and users.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/CommandLineAPIModule.cpp:
(WebCore::CommandLineAPIModule::host):
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::PageProfilerAgent::PageProfilerAgent):
(WebCore::InspectorProfilerAgent::create):
(WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::PageConsoleAgent):
(WebCore::PageConsoleAgent::addInspectedNode):
* inspector/PageConsoleAgent.h:
* inspector/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::WebConsoleAgent):
(WebCore::WebConsoleAgent::frameWindowDiscarded):
(WebCore::WebConsoleAgent::addInspectedHeapObject):
* inspector/WebConsoleAgent.h:
* inspector/WebInjectedScriptHost.cpp: Renamed from Source/WebCore/inspector/PageInjectedScriptHost.cpp.
(WebCore::WebInjectedScriptHost::type):
(WebCore::WebInjectedScriptHost::isHTMLAllCollection):
* inspector/WebInjectedScriptHost.h: Renamed from Source/WebCore/inspector/PageInjectedScriptHost.h.
* inspector/WebInjectedScriptManager.cpp: Renamed from Source/WebCore/inspector/PageInjectedScriptManager.cpp.
(WebCore::WebInjectedScriptManager::WebInjectedScriptManager):
(WebCore::WebInjectedScriptManager::disconnect):
(WebCore::WebInjectedScriptManager::didCreateInjectedScript):
(WebCore::WebInjectedScriptManager::discardInjectedScriptsFor):
* inspector/WebInjectedScriptManager.h: Renamed from Source/WebCore/inspector/PageInjectedScriptManager.h.
* inspector/WorkerConsoleAgent.cpp:
(WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
* inspector/WorkerConsoleAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/WorkerInspectorController.h:
2014-02-12 Brent Fulgham <bfulgham@apple.com>
Unreviewed iOS Build fix after r163975.
* page/EventHandler.cpp: Use wheel event stubs if !PLATFORM(MAC) || PLATFORM(IOS).
2014-02-12 Gavin Barraclough <barraclough@apple.com>
Clean up PageThrottler interface
https://bugs.webkit.org/show_bug.cgi?id=128677
Reviewed by Benjamin Poulain.
Currently, responsibility for throttling DOM timers & suspending animations is split
between the Page & the PageThrottler. Clarify by making Page responsible for suspending
animations (PageThrottler is now purely related to aspects of timer throttling), and
move all timer throttling policy to the PageThrottler, with a single function on Page to
enable (Page::setTimerThrottlingEnabled).
Also, transmit the full ViewState to the PageThrottler (not just the IsVisuallyIdle flag),
and distinguish between media & page-load activity.
* WebCore.exp.in:
- removed setDOMTimerAlignmentInterval.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
- createActivityToken -> mediaActivityToken
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::started):
- createActivityToken -> pageLoadActivityToken
* page/Page.cpp:
(WebCore::Page::Page):
- added m_timerThrottlingEnabled, made PageThrottler a member
(WebCore::Page::setIsVisuallyIdleInternal):
- update animiation suspension.
(WebCore::Page::setTimerThrottlingEnabled):
- setTimerAlignmentInterval -> setTimerThrottlingEnabled
(WebCore::Page::setViewState):
- pass viewState to PageThrottler.
(WebCore::Page::setIsVisibleInternal):
- don't update timer throttling.
* page/Page.h:
(WebCore::Page::pageThrottler):
- made PageThrottler a member.
(WebCore::Page::timerAlignmentInterval):
- inlined.
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
- initialize ViewState.
(WebCore::PageThrottler::~PageThrottler):
- clean up by calling setTimerThrottlingEnabled directly.
(WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged):
- moved from Page.
(WebCore::PageThrottler::mediaActivityToken):
(WebCore::PageThrottler::pageLoadActivityToken):
- from Page::createActivityToken
(WebCore::PageThrottler::throttlePage):
(WebCore::PageThrottler::unthrottlePage):
- don't throttle animations here.
(WebCore::PageThrottler::setViewState):
(WebCore::PageThrottler::setIsVisible):
- added, throttle Dom timers.
* page/PageThrottler.h:
* page/Settings.cpp:
(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
- removed setDOMTimerAlignmentInterval, hiddenPageDOMTimerThrottlingStateChanged moved to PageThrottler.
* page/Settings.h:
- removed setDOMTimerAlignmentInterval.
2014-02-12 Benjamin Poulain <bpoulain@apple.com>
[WK2][iOS] Add back the special viewport for the old xhtml mobile doctype
https://bugs.webkit.org/show_bug.cgi?id=128639
Reviewed by Andreas Kling.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::childrenChanged):
Document::setDocType() has been removed and the doctype update code with it.
Add a call to didReceiveDocType() to ensure the viewport is updated when the doctype is parsed.
* loader/EmptyClients.h:
* page/Chrome.cpp:
(WebCore::Chrome::didReceiveDocType):
* page/ChromeClient.h:
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::xhtmlMobileParameters):
* page/ViewportConfiguration.h:
2014-02-12 Alexey Proskuryakov <ap@apple.com>
Mountain Lion build fix.
* WebCore.exp.in: Only export WebCrypto symbols on 10.9+, because SUBTLE_CRYPTO
is not enabled on 10.8.
2014-02-12 Alexey Proskuryakov <ap@apple.com>
Wrap WebCrypto keys in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128680
Reviewed by Anders Carlsson.
Test: crypto/subtle/rsa-indexeddb.html
Added Mac code to wrap a key with AES-GCM. We then serialize it into a plist,
because more custom formats would be crazy (even the custom format in SerializedScriptValue
makes me nervous, we'll certainly need to change CryptoKey in the future).
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* crypto/CommonCryptoUtilities.h:
* crypto/SerializedCryptoKeyWrap.h: Added.
* crypto/mac/SerializedCryptoKeyWrapMac.mm: Added.
(WebCore::vectorFromNSData):
(WebCore::wrapSerializedCryptoKey):
(WebCore::unwrapSerializedCryptoKey):
2014-02-12 Brent Fulgham <bfulgham@apple.com>
Wheel events don't latch to inner scrollable elements
https://bugs.webkit.org/show_bug.cgi?id=128225
<rdar://problem/12183688>
Reviewed by Simon Fraser
* WebCore.exp.in: Add declarations for new scrolledToTop, scrolledToBottom, scrolledToLeft, and scrolledToRight.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::findScrollableContainer): New helper function to locate first node
in enclosing region of document that is capable of handling mouse wheel events.
(WebCore::isAtMaxDominantScrollPosition): Predicate to check if the scrollable
area is at the limit we will hit based on scroll direction.
(WebCore::EventHandler::handleWheelEvent): Identify the case where we have hit
the end of a scroll, and treat that as a valid 'handled' case. If the scroll event
is just starting, treat end-of-scroll as unhandled so the parent element can
handle things.
* page/EventHandler.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Use new methods
on the PlatformWheelEvent class.
(WebCore::ScrollingTree::setOrClearLatchedNode): Ditto
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::shouldConsiderLatching): Moved implementation from ScrollingTree.
(WebCore::PlatformWheelEvent::shouldClearLatchedNode): Ditto
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrolledToTop): Added
(WebCore::ScrollableArea::scrolledToBottom):Added
(WebCore::ScrollableArea::scrolledToLeft): Added
(WebCore::ScrollableArea::scrolledToRight): Added
* platform/ScrollableArea.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::scrolledToTop): Added
(WebCore::RenderListBox::scrolledToBottom): Added
(WebCore::RenderListBox::scrolledToLeft): Added
(WebCore::RenderListBox::scrolledToRight): Added
* rendering/RenderListBox.h: Changed to public inheritance of ScrollableArea to
allow generic use of this type in scroll wheel logic.
2014-02-12 Brendan Long <b.long@cablelabs.com>
Implement DataCue for metadata cues
https://bugs.webkit.org/show_bug.cgi?id=128402
Reviewed by Eric Carlson.
Test: media/track/track-datacue.html
* CMakeLists.txt: Add DataCue.
* DerivedSources.cpp: Add JSDataCue.
* DerivedSources.make: Same.
* GNUmakefile.list.am: Add DataCue and JSDataCue.
* WebCore.vcxproj/WebCore.vcxproj: Add DataCue.
* WebCore.vcxproj/WebCore.vcxproj.filters: Same.
* WebCore.xcodeproj/project.pbxproj: Add DataCue and JSDataCue.
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJS): Add DataCue wrapper.
* html/track/DataCue.cpp: Copied from Source/WebCore/html/track/TextTrack.idl.
* html/track/DataCue.h: Copied from Source/WebCore/html/track/TextTrack.idl.
* html/track/DataCue.idl: Copied from Source/WebCore/html/track/TextTrack.idl.
* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::addGenericCue): Pass ASSERT_NO_EXCEPTION to addCue().
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Same.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::addCue): Throw an exception if DataCue is added to a track that isn't kind="metadata".
* html/track/TextTrack.h: Add exception code parameter to addCue().
* html/track/TextTrack.idl: Add [RaisesException] to addCue().
* html/track/TextTrackCue.h: Add Data CueType.
2014-02-12 Zalan Bujtas <zalan@apple.com>
Subpixel layout: Clean up LayoutPoint class.
https://bugs.webkit.org/show_bug.cgi?id=128515
Reviewed by Simon Fraser.
Remove redundant functions (keep the more explicit ones).
No change in functionality.
* page/FrameView.cpp:
(WebCore::FrameView::viewportConstrainedVisibleContentRect):
* platform/graphics/LayoutPoint.h:
(WebCore::toLayoutPoint):
(WebCore::toLayoutSize):
(WebCore::roundedIntPoint):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsRects):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addFocusRingRects):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::offsetFromContainer):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addFocusRingRects):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::paintIntoRect):
2014-02-12 Zan Dobersek <zdobersek@igalia.com>
[CoordinatedGraphics] Move CoordinatedGraphicsScene, CoordinatedLayerTreeHostProxy to std::function
https://bugs.webkit.org/show_bug.cgi?id=128473
Reviewed by Anders Carlsson.
Move the CoordinatedGraphicsScene class to using std::function instead of WTF::Functional and std::bind
instead of WTF::bind. The function wrapper is now moved through function calls and not passed by reference,
and lambda functions are inlined into the dispatchOnMainThread() calls, with the CoordinatedGraphicsScene
refcount-protected.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::dispatchOnMainThread):
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::commitSceneState):
(WebCore::CoordinatedGraphicsScene::syncRemoteContent):
(WebCore::CoordinatedGraphicsScene::purgeGLResources):
(WebCore::CoordinatedGraphicsScene::commitScrollOffset):
(WebCore::CoordinatedGraphicsScene::appendUpdate):
(WebCore::CoordinatedGraphicsScene::setActive):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2014-02-12 Eric Carlson <eric.carlson@apple.com>
Cleanup the code added for https://bugs.webkit.org/show_bug.cgi?id=128125.
Not reviewed.
* html/HTMLMediaSession.cpp:
(WebCore::restrictionName): Don't need a "break" after a "return" in a case statement.
* platform/audio/MediaSession.cpp:
(WebCore::stateName): Ditto.
* platform/audio/ios/MediaSessionManagerIOS.mm:
2014-02-12 Andreas Kling <akling@apple.com>
RenderNamedFlowThread should only support RenderElement children.
<https://webkit.org/b/128675>
Tighten up flow-thread rendering so that it only supports element
children directly. This means we don't have to worry about text
renderers on this code path.
Reviewed by Antti Koivisto.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::insertedIntoTree):
(WebCore::RenderElement::willBeRemovedFromTree):
(WebCore::RenderElement::willBeDestroyed):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::nextRendererForElement):
(WebCore::RenderNamedFlowThread::addFlowChild):
(WebCore::RenderNamedFlowThread::removeFlowChild):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::insertedIntoTree):
(WebCore::RenderObject::willBeRemovedFromTree):
* style/StyleResolveTree.cpp:
(WebCore::Style::createRendererIfNeeded):
2014-02-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Modernize missed inspector files
https://bugs.webkit.org/show_bug.cgi?id=128661
Reviewed by Anders Carlsson.
Add final, override, and use nullptr where appropriate.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::asCSSStyleRule):
(WebCore::InspectorCSSAgent::discardAgent):
(WebCore::InspectorCSSAgent::disable):
(WebCore::InspectorCSSAgent::getInlineStylesForNode):
(WebCore::InspectorCSSAgent::getComputedStyleForNode):
(WebCore::InspectorCSSAgent::asInspectorStyleSheet):
(WebCore::InspectorCSSAgent::elementForId):
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
(WebCore::InspectorCSSAgent::assertStyleSheetForId):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
* inspector/InspectorFrontendClientLocal.h:
2014-02-11 Brent Fulgham <bfulgham@apple.com>
Remove some unintended copies in ranged for loops
https://bugs.webkit.org/show_bug.cgi?id=128644
Reviewed by Anders Carlsson.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments): Avoid creating/destroying
RefPtrs in loop.
2014-02-12 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Update the HTML Media Capture implementation.
https://bugs.webkit.org/show_bug.cgi?id=118465
Reviewed by Darin Adler.
Make the implementation in WebKit compatible with the 2013-05-09
version of the spec, which makes the "capture" attribute a boolean
instead of an enum.
Covered by fast/forms/file/file-input-capture.html.
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::capture): Renamed to shouldUseMediaCapture().
(WebCore::HTMLInputElement::shouldUseMediaCapture): Return a bool.
* html/HTMLInputElement.h:
* html/HTMLInputElement.idl: Turn the `capture' attribute into a
reflective boolean instead of a DOMString.
* platform/FileChooser.h:
2014-02-12 Radu Stavila <stavila@adobe.com>
[CSS Regions] Remove unused method in RenderFlowThread
https://bugs.webkit.org/show_bug.cgi?id=128373
Reviewed by Mihnea Ovidenie.
After the landing of https://bugs.webkit.org/show_bug.cgi?id=118665, the
RenderFlowThread::computeRegionClippingRect method is obsolete.
No new tests needed, this patch only removes an unused method.
* rendering/RenderFlowThread.cpp:
* rendering/RenderFlowThread.h:
2014-02-12 Mihai Tica <mitica@adobe.com>
[CSS Element Blending] Implement the software path of -webkit-blend-mode with Core Graphics.
https://bugs.webkit.org/show_bug.cgi?id=99119
Reviewed by Simon Fraser.
This patch adds support for -webkit-blend-mode with Core Graphics.
The layer promotion code that forced compositing when blending was detected has been removed.
Remaining work for the software path is to detect and implement isolation of the blending operation:
as stated in the spec, blending should be limited to the parent stacking context.
Tests: css3/compositing/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html
css3/compositing/blend-mode-parent-of-composited-blended-has-layer.html
css3/compositing/blend-mode-simple-composited.html
css3/compositing/blend-mode-with-composited-descendant-should-have-layer.html
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Remove CompositingReasonBlending.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers): Set the blendMode on the GraphicsContext.
* rendering/RenderLayer.h: paintsWithTransparency should return true when a blendMode is set.
* rendering/RenderLayerCompositor.cpp: Remove promotion code when a blendMode is detected.
(WebCore::RenderLayerCompositor::requiresCompositingLayer): Remove CompositingReasonBlending reason.
(WebCore::RenderLayerCompositor::requiresOwnBackingStore): Remove CompositingReasonBlending reason.
(WebCore::RenderLayerCompositor::reasonsForCompositing): Remove CompositingReasonBlending reason.
(WebCore::RenderLayerCompositor::logReasonsForCompositing): Remove CompositingReasonBlending reason.
* rendering/RenderLayerCompositor.h:
- Remove the requiresCompositingForBlending method
- Remove the CompositingReasonBlending from the CompositingReasons enum.
2014-02-11 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Switch repaint rect from IntRect to LayoutRect to be able to
repaint on device pixel boundaries.
https://bugs.webkit.org/show_bug.cgi?id=128477
Reviewed by Simon Fraser.
RenderLayer needs to be able to repaint on device pixel boundaries. RenderView still
repaints on integral position.
No change in functionality.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::layoutRunsAndFloats):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::clearRepaintRects):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
* rendering/RenderLayerBacking.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintUsingContainer):
(WebCore::RenderObject::repaint):
(WebCore::RenderObject::repaintRectangle):
* rendering/RenderObject.h:
2014-02-11 Dan Bernstein <mitz@apple.com>
iOS build fix fix.
* rendering/RenderElement.cpp:
(WebCore::shouldRepaintForImageAnimation):
2014-02-11 Dan Bernstein <mitz@apple.com>
iOS build fix.
* rendering/RenderElement.cpp:
(WebCore::shouldRepaintForImageAnimation):
2014-02-11 David Kilzer <ddkilzer@apple.com>
ContentData equals() methods are not inline-able
<http://webkit.org/b/128538>
Reviewed by Darin Adler.
Get rid of pure virtual equals() method in favor of
ContentData::Type enum for runtime type information.
This also lets us devirtualize the isFoo() methods.
* rendering/style/ContentData.h:
(WebCore::ContentData::type): Add.
(WebCore::ContentData::isCounter): Devirtualize.
(WebCore::ContentData::isImage): Devirtualize.
(WebCore::ContentData::isQuote): Devirtualize.
(WebCore::ContentData::isText): Devirtualize.
(WebCore::ContentData::ContentData): Add. Include
ContentData::Type parameter.
(WebCore::operator==): Add overloaded methods for each subclass.
Stop using pure virtual equals() method, check type(), and use
overloaded subclass operator==() methods.
(WebCore::operator!=): Add overloaded methods for each subclass.
2014-02-11 Andreas Kling <akling@apple.com>
Protect some RenderFlowThread functions.
<https://webkit.org/b/128642>
Make the RenderFlowThread constructor protected and a handful of
member functions private.
Reviewed by Anders Carlsson.
* rendering/RenderFlowThread.h:
2014-02-11 Andreas Kling <akling@apple.com>
Don't allocate RenderNamedFlowThread's child list separately.
<https://webkit.org/b/128640>
Since we always create the flow-thread child list, there's no reason
to put it in a separate heap allocation. Also remove the typedef and
use auto instead.
Reviewed by Anders Carlsson.
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::nextRendererForNode):
(WebCore::RenderNamedFlowThread::addFlowChild):
(WebCore::RenderNamedFlowThread::removeFlowChild):
* rendering/RenderNamedFlowThread.h:
2014-02-11 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make GraphicsLayerClient::paintContents's clip rect subpixel based.
https://bugs.webkit.org/show_bug.cgi?id=128460
Reviewed by Simon Fraser.
GraphicsClient::paintContents takes clipRect as FloatRect now so that we can paint on
subpixel position.
No change in functionality.
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::paintContents):
* platform/graphics/texmap/coordinated/CompositingCoordinator.h:
* rendering/RenderLayer.cpp:
(WebCore::cornerRect):
(WebCore::RenderLayer::scrollCornerRect):
(WebCore::resizerCornerRect):
(WebCore::RenderLayer::scrollCornerAndResizerRect):
(WebCore::RenderLayer::verticalScrollbarStart):
(WebCore::RenderLayer::horizontalScrollbarStart):
(WebCore::RenderLayer::paintResizer):
(WebCore::RenderLayer::hitTestOverflowControls):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintContents):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::paintContents):
* rendering/RenderLayerCompositor.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
2014-02-11 Antti Koivisto <antti@apple.com>
GIF animations should be suspended when outside of viewport
https://bugs.webkit.org/show_bug.cgi?id=128632
Reviewed by Andreas Kling.
Animations are driven by the paint cycle. Speculative tiles keep animations outside the actual viewport going.
Pause animations when they are outside the viewport by not painting them.
Test: fast/repaint/no-animation-outside-viewport.html
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::animationAdvanced):
Call animation specific newImageAnimationFrameAvailable instead of the generic notifyObservers.
* loader/cache/CachedImage.h:
Removed now unnecessary resumeAnimatingImagesForLoader mechanism.
Remove unnecessary shouldPauseAnimation. Pausing is now always done when by avoiding repaint.
* loader/cache/CachedImageClient.h:
(WebCore::CachedImageClient::newImageAnimationFrameAvailable):
* page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChanged):
Check if we have image animations to resume when scroll position changes.
* page/Page.cpp:
(WebCore::Page::resumeAnimatingImages):
Use the same mechanism when resuming background tabs etc.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::internalAdvanceAnimation):
Remove the shouldPauseAnimation test, always rely on pausing on invalidation.
* platform/graphics/ImageObserver.h:
* rendering/RenderBoxModelObject.cpp:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::RenderElement):
(WebCore::RenderElement::~RenderElement):
(WebCore::shouldRepaintForImageAnimation):
Factor the pausing conditions to a function. Test that the animation is withing the
visible rect.
(WebCore::RenderElement::newImageAnimationFrameAvailable):
Add renderer to the paused animation set if we don't continue the animation.
(WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded):
Resume the paused animations by triggering repaint.
* rendering/RenderElement.h:
(WebCore::RenderElement::setHasPausedImageAnimations):
(WebCore::RenderElement::hasPausedImageAnimations):
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::addRendererWithPausedImageAnimations):
(WebCore::RenderView::removeRendererWithPausedImageAnimations):
(WebCore::RenderView::resumePausedImageAnimationsIfNeeded):
* rendering/RenderView.h:
2014-02-11 Andreas Kling <akling@apple.com>
Remove unused RenderNamedFlowThread::previousRendererForNode().
<https://webkit.org/b/128637>
Reviewed by Antti Koivisto.
* rendering/RenderNamedFlowThread.cpp:
* rendering/RenderNamedFlowThread.h:
2014-02-11 Andreas Kling <akling@apple.com>
Move renderNamedFlowThreadWrapper() to RenderElement.
<https://webkit.org/b/128634>
This function is only ever called on RenderElements so move it there
from RenderObject.
Reviewed by Antti Koivisto.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::renderNamedFlowThreadWrapper):
* rendering/RenderElement.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
2014-02-11 Myles C. Maxfield <mmaxfield@apple.com>
Position and thickness of underline as text size changes
https://bugs.webkit.org/show_bug.cgi?id=16768
Reviewed by Dean Jackson.
This patch adopts the iOS codepath for underlines. It also reorganizes
drawLineForText to avoid a costly global state save & restore.
Test: fast/css3-text/css3-text-decoration/text-decoration-thickness.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::computeLineBoundsAndAntialiasingModeForText):
(WebCore::GraphicsContext::computeLineBoundsForText):
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::drawLinesForText):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
2014-02-11 Ryosuke Niwa <rniwa@webkit.org>
Frame::rectForSelection shouldn't instantiate FrameSelection
https://bugs.webkit.org/show_bug.cgi?id=128587
Reviewed by Enrica Casucci.
Made VisiblePosition::absoluteCaretBounds more interoperable with the one in FrameSelection and made
iOS's Frame::rectForScrollToVisible use that function instead.
The above change allows us to remove:
- suppressCloseTyping(), restoreCloseTyping(), and m_closeTypingSuppressions in FrameSelection
- suppressSelectionNotifications() and restoreSelectionNotifications() in EditorClient
See inline comments below for more details.
* Source/WebCore/WebCore.exp.in:
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::CaretBase::updateCaretRect):
(WebCore::FrameSelection::caretRendererWithoutUpdatingLayout):
(WebCore::DragCaretController::caretRenderer):
(WebCore::repaintCaretForLocalRect):
(WebCore::FrameSelection::recomputeCaretRect): Merged FrameSelection::localCaretRect(). Modified
the code to update caretNode when and only when caret rect is updated. Also added an assertion to
ensure absoluteCaretBounds() on FrameSelection and VisiblePosition yield the same result.
(WebCore::CaretBase::paintCaret):
* editing/FrameSelection.h:
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteCaretBounds): Fixed the bug where the old code wasn't respecting
the convention to use containing block as the renderer to paint caret.
* editing/htmlediting.cpp:
(WebCore::caretRendersInsideNode): Moved from FrameSelection.cpp.
(WebCore::rendererForCaretPainting): Ditto and renamed from caretRenderer.
(WebCore::localCaretRectInRendererForCaretPainting): Extracted from FrameSelection::updateCaretRect.
(WebCore::absoluteBoundsForLocalCaretRect): Ditto from CaretBase::absoluteBoundsForLocalRect.
* editing/htmlediting.h:
* loader/EmptyClients.h:
* page/EditorClient.h:
* page/Frame.h:
* page/ios/FrameIOS.mm:
(WebCore::Frame::rectForScrollToVisible): Reimplemented in its simplest form using VisiblePosition's
absoluteCaretBounds().
2014-02-11 Enrica Casucci <enrica@apple.com>
Support WebSelections in WK2 on iOS.
https://bugs.webkit.org/show_bug.cgi?id=127015
<rdar://problem/15211964>
Reviewed by Benjamin Poulain.
Adding few exports.
* WebCore.exp.in:
2014-02-11 Andreas Kling <akling@apple.com>
CTTE: RenderNamedFlowThread always has a WebKitNamedFlow.
<https://webkit.org/b/128623>
Codify the fact that RenderNamedFlowThread always has a corresponding
WebKitNamedFlow by storing it in a Ref, and adding an accessor that
returns a reference to get rid of all the ->'s.
Also removed some unnecessary assertions exposed by this.
Reviewed by Antti Koivisto.
* dom/NamedFlowCollection.cpp:
(WebCore::NamedFlowCollection::ensureFlowWithName):
* dom/NamedFlowCollection.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::flowThreadName):
(WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
(WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEvent):
(WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired):
(WebCore::RenderNamedFlowThread::regionOversetChangeEventTimerFired):
(WebCore::RenderNamedFlowThread::setMarkForDestruction):
(WebCore::RenderNamedFlowThread::resetMarkForDestruction):
(WebCore::RenderNamedFlowThread::isMarkedForDestruction):
* rendering/RenderNamedFlowThread.h:
2014-02-10 Myles C. Maxfield <mmaxfield@apple.com>
Convert position:fixed property to position:absolute upon copy
https://bugs.webkit.org/show_bug.cgi?id=128194
Reviewed by Simon Fraser.
This adds a Setting and Preference that allows clients to opt-in to this behavior.
This new behavior is only activated if the entire body is copied. If there is a position:fixed
element in the copied selection, it is replaced with position:absolute, and a containing
block (position:relative) is wrapped around the copied text.
This patch originally converted position:-webkit-sticky to position:relative. However, we
currently don't support copying and pasting of position:-webkit-sticky content (See below).
Therefore, this patch only deals with position:fixed.
Right now we don't copy position:-webkit-sticky. This is because:
1. When copying styled elements, we parse the style properties again
2. CSSParserContext has a flag which can disable parsing -webkit-sticky
3. There are two constructors to CSSParserContext: one that takes a document and sets up the
aforementioned flag, and a simple one that doesn't take a document and sets all the enableFoo
flags to false
4. At the relevant place within copy code, we are far removed from the Document object, so we
instead call the second constructor, thereby disabling parsing of -webkit-sticky
Test: editing/pasteboard/copy-paste-converts-sticky-and-fixed.html
* WebCore.exp.in: Export the Setting setter
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::convertFixedAndStickyPosition): Converts a single style
* editing/EditingStyle.h:
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): Remember if we found
an element which needs the position:relative containing block
(WebCore::StyledMarkupAccumulator::appendElement): Surround with the position:relative
containing block if necessary
(WebCore::createMarkupInternal):
* page/Settings.cpp:
(WebCore::Settings::Settings): New setting to opt-in to this new behavior
(WebCore::Settings::setConvertPositionStyleOnCopy):
* page/Settings.h:
(WebCore::Settings::convertPositionStyleOnCopy):
* testing/InternalSettings.cpp: Allow setting the setting from a Layout Test
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setConvertPositionStyleOnCopy):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
2014-02-11 Youenn Fablet <youennf@gmail.com>
XMLHttpRequest should not send DNT header
https://bugs.webkit.org/show_bug.cgi?id=128533
Reviewed by Alexey Proskuryakov.
Added DNT (Do Not Track) header to the list of forbidden headers.
Updated http/tests/xmlhttprequest/set-dangerous-headers.html to test that header.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData):
2014-02-10 Jeffrey Pfau <jpfau@apple.com>
Bring third-party app cache blocking behavior in line with private browsing app cache blocking behavior
https://bugs.webkit.org/show_bug.cgi?id=128557
Reviewed by Alexey Proskuryakov.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::cacheForMainRequest):
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadMainResource):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
(WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):
* loader/appcache/ApplicationCacheHost.h:
2014-02-11 Brady Eidson <beidson@apple.com>
IDB: The test after storage/indexeddb/mozilla/object-identity.html fails in cleanup code
<rdar://problem/16040663> and https://bugs.webkit.org/show_bug.cgi?id=128621
Reviewed by Alexey Proskuryakov.
Covered by storage/indexeddb/mozilla/object-identity.html.
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::abort): Clear the m_database pointer before calling the onAbort callback.
(WebCore::IDBTransactionBackend::commit): Don't run the abort code if there's no m_database pointer.
2014-02-10 Jer Noble <jer.noble@apple.com>
[EME][Mac] Move the implementation of CDMPrivateAVFoundation back into MediaPlayerPrivateAVFoundationObjC.
https://bugs.webkit.org/show_bug.cgi?id=128559
Reviewed by Dean Jackson.
To prepare for multiple simultaneous CDMs with muliple MediaPlayer types, move the implementation for
CDMPrivateAVFoundation back into its media engine.
* Modules/encryptedmedia/CDMPrivateAVFoundation.mm:
(WebCore::MediaKeyExceptionToErrorCode): Added.
(WebCore::CDMSessionAVFoundation::generateKeyRequest): Moved to MediaPlayerPrivateAVFoundationObjC.
(WebCore::CDMSessionAVFoundation::releaseKeys): Ditto.
(WebCore::CDMSessionAVFoundation::update): Ditto.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::generateKeyRequest): Added, pass through to MediaPlayerPrivate.
(WebCore::MediaPlayer::releaseKeys): Ditto.
(WebCore::MediaPlayer::update): Ditto.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Added.
(WebCore::MediaPlayerPrivateInterface::releaseKeys): Ditto.
(WebCore::MediaPlayerPrivateInterface::update): Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Moved from CDMSessionAVFoundation.
(WebCore::MediaPlayerPrivateAVFoundationObjC::releaseKeys): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::update): Ditto.
2014-01-24 Jer Noble <jer.noble@apple.com>
Run UserAgentScripts through jsmin rather than the css preprocessor
https://bugs.webkit.org/show_bug.cgi?id=127559
Reviewed by Tim Horton.
User Agent JavaScript files were being run through the c++ preprocessor to strip out
comments (and presumably to allow #if ENABLE macros, though that feature is entirely
unused). This had the side effect of removing important whitespace, namely newlines where
there would normally be an implicit semicolon.
Instead, .js files will now be run through the jsmin minifier, used by the inspector.
Jsmin will also strip comments and whitespace, but in a syntactically aware way which will
keep newlines when their presence adds an implied semicolon.
* DerivedSources.make:
* Scripts/make-js-file-arrays.py: Added.
(stringifyCodepoint):
(chunk):
(main):
2014-02-11 Andy Estes <aestes@apple.com>
[Mac] connection:willStopBufferingData: no longer exists in NSURLConnectionDelegate
https://bugs.webkit.org/show_bug.cgi?id=128583
Reviewed by Anders Carlsson.
The delegate method was removed in Snow Leopard.
* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h:
* platform/network/ResourceHandleClient.h:
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2014-02-10 Andy Estes <aestes@apple.com>
[Content Filter] Check for NULL before calling dispatch_release()
https://bugs.webkit.org/show_bug.cgi?id=128576
Reviewed by Darin Adler.
m_neFilterSourceQueue will be NULL if NEFilterSource isn't enabled, and
passing NULL to dispatch_release() is undefined.
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::~ContentFilter):
2014-01-24 Jer Noble <jer.noble@apple.com>
[MediaControls] Allow the media controls script to be debuggable by giving it a generated sourceURL
https://bugs.webkit.org/show_bug.cgi?id=127560
Reviewed by Eric Carlson.
When evaluating a script through ScriptController, if that script does not have an
explicit sourceURL, it will not appear in the resources section of the Web Inspector.
For debug builds only, give the media controls script a generated (i.e. fake) sourceURL.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2014-02-11 Samuel White <samuel_white@apple.com>
AX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaParameterizedAttribute.
https://bugs.webkit.org/show_bug.cgi?id=128397
Reviewed by Chris Fleizach.
Added text replacement support for the AXSelectTextWithCriteria parameterized attribute.
No new test. Updated platform/mac/accessibility/select-text.html to test the added functionality.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilitySelectTextCriteria::AccessibilitySelectTextCriteria):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
2014-02-11 Roger Fong <roger_fong@apple.com>
[Windows] Unreviewed. Speculative test fix.
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::pixelSnappingFactor):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
2014-02-11 Dan Bernstein <mitz@apple.com>
iOS build fix.
* platform/ios/TileGrid.mm:
(WebCore::TileGrid::dropTilesBetweenRects):
(WebCore::TileGrid::dropDistantTiles):
(WebCore::TileGrid::dropInvalidTiles):
2014-02-11 James Craig <jcraig@apple.com>
Web Inspector: AX: Accessibility Node Inspection
https://bugs.webkit.org/show_bug.cgi?id=127447
Reviewed by Timothy Hatcher.
New methods supporting WebCore::AccessibilityObject::computedRoleString()
used for Accessibility section in WebInspector Node Inspector. Other updates
support the JSON interface for the WebInspectorUI feature.
Test: accessibility/roles-computedRoleString.html
* accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
(WebCore::ariaRoleMap):
(WebCore::reverseAriaRoleMap):
(WebCore::AccessibilityObject::ariaRoleToWebCoreRole):
(WebCore::AccessibilityObject::computedRoleString):
* accessibility/AccessibilityObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper computedRoleString]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/InspectorDOMAgent.h:
* inspector/protocol/DOM.json:
2014-02-10 Oliver Hunt <oliver@apple.com>
Stop throwing when attempting to read instance properties directly from the prototype
https://bugs.webkit.org/show_bug.cgi?id=128568
Reviewed by Mark Lam.
A number of websites expect to be able to access instance properties
directly through the prototype. This is broken behavior but if we
throw an exception the entire site breaks. This patch simply makes us
return undefined when reading, and logs the error to the console.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorTestSubObj):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjCustomAttr):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjConditionalAttr4Constructor):
(WebCore::jsTestObjConditionalAttr5Constructor):
(WebCore::jsTestObjConditionalAttr6Constructor):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjStrictFloat):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
2014-02-11 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Support calc() breadth size type
https://bugs.webkit.org/show_bug.cgi?id=103761
Reviewed by Dean Jackson.
We now support using calc() in
-webkit-grid-template-{columns|rows}. This means that we now
match the specification and support all the possible ways to
specify the track breadths.
This includes a fix to CSSCalculationValue that was converting
Length values to CalcExpressionNumber and thus removing all the
info regarding length units (px, em, pt...). That's why things
like calc(10px + 20%) were shown as calc(10 + 20%) in
getComputedStyle() output.
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcPrimitiveValue::toCalcValue):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::zoomAdjustedPixelValueForLength):
(WebCore::specifiedValueForGridTrackBreadth):
(WebCore::specifiedValueForGridTrackSize):
* css/StyleResolver.cpp:
(WebCore::createGridTrackBreadth):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfMinLength):
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
(WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
2014-02-11 Brent Fulgham <bfulgham@apple.com>
Correct some uses of 'auto'
https://bugs.webkit.org/show_bug.cgi?id=128578
Reviewed by Anders Carlsson.
Correct the following instances of "for (auto ...)" to use reference or
const references to avoid copies.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::elementsFromAttribute):
* css/CSSGridTemplateValue.cpp:
(WebCore::stringForPosition):
* dom/Node.cpp:
(WebCore::NodeListsNodeData::invalidateCaches):
* inspector/PageInjectedScriptManager.cpp:
(WebCore::PageInjectedScriptManager::discardInjectedScriptsFor):
* page/WheelEventDeltaTracker.cpp:
(WebCore::WheelEventDeltaTracker::dominantScrollGestureDirection):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
* platform/graphics/mac/WebLayer.mm:
(WebCore::drawLayerContents):
* platform/ios/TileGrid.mm:
(WebCore::TileGrid::dropTilesBetweenRects):
(WebCore::TileGrid::dropDistantTiles):
(WebCore::TileGrid::dropInvalidTiles):
* rendering/InlineTextBox.cpp:
(WebCore::translateIntersectionPointsToSkipInkBoundaries):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):
2014-02-10 David Hyatt <hyatt@apple.com>
[New Multicolumn] Make columns work with line grids
https://bugs.webkit.org/show_bug.cgi?id=128555
Reviewed by Antti Koivisto.
Added line-snap-into-columns.html and line-snap-inside-columns.html
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
(WebCore::LayoutState::pageOffset):
(WebCore::LayoutState::setLineGridPaginationOrigin):
Change the LayoutState to call into the renderer to compute the line
grid pagination origin instead of doing it directly. Added the
appropriate getters and setters to enable the renderer to do this.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeLineGridPaginationOrigin):
* rendering/RenderBlock.h:
An implementation for the old multi-column code. The logic is the
same with tweaks made now that the method is on the renderer instead.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::pageLogicalTopForOffset):
Fix a bug with flow threads and pageLogicalTopForOffset. Normal CSS region-based
flow threads are never embedded in an enclosing pagination context, so they
didn't add in the firstPageLogicalTop (or subtract it when computing the region
hit). Multi-column flow threads do need to subtract out the firstPageLogicalTop,
since it can occur somewhere on the page.
Ultimately regions will need to get smarter here too if they want to work with
line grids, but for now I just fixed multi-column.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::isUnsplittableForPagination):
Undo this change, since it prevents the inheritance of line grids into the
multi-column layout.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::computeLineGridPaginationOrigin):
* rendering/RenderMultiColumnFlowThread.h:
An implementation for the new multi-column code. The logic is the
same as the old code. Code duplication is ok, since the old multi-column method
in RenderBlock will just be deleted once the new code is turned on, and it's easier
not to intertwine them.
2014-02-11 Radu Stavila <stavila@adobe.com>
[CSS Regions] Overflow above the first region is not properly painted for regions with padding
https://bugs.webkit.org/show_bug.cgi?id=128590
Reviewed by Andrei Bucur.
Painting is done using the layer of the region's container, so offsetting using the content box
of the region itself is incorrect.
Test: fast/regions/region-padding-overflow-hidden.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::regionContainer):
(WebCore::RenderRegion::regionContainerLayer):
* rendering/RenderRegion.h:
2014-02-11 Benjamin Poulain <benjamin@webkit.org>
querySelector() does not use the compiler correctly
https://bugs.webkit.org/show_bug.cgi?id=128588
Reviewed by Andreas Kling.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::execute):
I messed up the refactoring when I landed SelectorQuery. The compiled
code was not used the first time through SelectorDataList::execute.
2014-02-11 Piotr Grad <p.grad@samsung.com>
[GStreamer] High playback rate causes crash
https://bugs.webkit.org/show_bug.cgi?id=128453
Reviewed by Philippe Normand.
To high playback rate passed to GStreamer was causing crash.
Added guard in setRate method.
Test: media/video-extreme-playbackrate-crash.html
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setRate):
2014-02-10 Brady Eidson <beidson@apple.com>
IndexedDB assertion at IDBTransactionBackend::~IDBTransactionBackend()
https://bugs.webkit.org/show_bug.cgi?id=128341
Reviewed by Maciej Stachowiak.
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::~IDBTransactionBackend): "Finished" is not the only
valid value here - In WK2, "Unused" is also valid. Update the ASSERT.
2014-02-10 Alexey Proskuryakov <ap@apple.com>
Add hooks for wrapping CryptoKeys in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128567
Reviewed by Anders Carlsson.
* bindings/js/SerializedScriptValue.cpp: Changed SerializedScriptValue to serialize
wrapped keys. Added a version number to crypto key serialization.
* dom/Document.cpp:
(WebCore::Document::wrapCryptoKey):
(WebCore::Document::unwrapCryptoKey):
* dom/Document.h:
* dom/ScriptExecutionContext.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::wrapCryptoKey):
(WebCore::ChromeClient::unwrapCryptoKey):
Hand wrapping/unwrapping over to client code.
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::wrapCryptoKey):
(WebCore::WorkerGlobalScope::unwrapCryptoKey):
* workers/WorkerGlobalScope.h:
Not implemented in workers. SubtleCrypto is currently not exposed in workers. It used
to be possible in WebKit implementation to post a CryptoKey to a worker anyway,
but this doesn't work any more.
2014-02-10 ChangSeok Oh <changseok.oh@collabora.com>
Support ANGLE_instanced_arrays for linux
https://bugs.webkit.org/show_bug.cgi?id=127465
Reviewed by Martin Robinson.
Support the instanced drawing WebGL extension, ANGLE_instanced_arrays for linux platform.
This is a following patch for r162565. Relevant opengl APIs are exposed
for WebGLRenderingContext to access them.
Covered by fast/canvas/webgl/angle-instanced-arrays.html
* html/canvas/ANGLEInstancedArrays.cpp:
(WebCore::ANGLEInstancedArrays::supported):
* platform/graphics/OpenGLShims.cpp:
(WebCore::initializeOpenGLShims):
* platform/graphics/OpenGLShims.h:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension):
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::drawArraysInstanced):
(WebCore::GraphicsContext3D::drawElementsInstanced):
(WebCore::GraphicsContext3D::vertexAttribDivisor):
2014-02-10 Mark Lam <mark.lam@apple.com>
Removing limitation on JSLock’s lockDropDepth.
<https://webkit.org/b/128570>
Reviewed by Geoffrey Garen.
No new tests.
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
* platform/ios/wak/WebCoreThread.mm:
(SendDelegateMessage):
(WebThreadRunOnMainThread):
- No longer need to specify AlwaysDropLocks, because DropAllLocks is
now always unconditional.
2014-02-10 Benjamin Poulain <benjamin@webkit.org>
Clean up MarkupAccumulator::appendCharactersReplacingEntities
https://bugs.webkit.org/show_bug.cgi?id=128440
Reviewed by Ryosuke Niwa.
Some cleanup:
-Remove the copied code for the loops. Instead, use a template with the loop
parametrized by the characters type.
-Move EntityDescription from the header to the implementation.
-Make the 5 substitution strings compile-time literals. Replacement is not hot enough
to justify the static here.
* editing/MarkupAccumulator.cpp:
(WebCore::appendCharactersReplacingEntitiesInternal):
(WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
* editing/MarkupAccumulator.h:
2014-02-10 Benjamin Poulain <benjamin@webkit.org>
Add a few pseudo type to the selector compiler through function calls
https://bugs.webkit.org/show_bug.cgi?id=128514
Reviewed by Dean Jackson.
Certain pseudo type checkers rely on virtual function calls. Since those types
are uncommon, and this code generator cannot currently make virtual function calls,
the checker are added by generating a function call to a wrapper function.
To avoid code duplication between SelectorChecker and the compiler, all the relevant checking
code has been moved to a common header, SelectorCheckerTestFunctions.h.
SelectorChecker still inline the functions, while the SelectorCompiler generate local static functions
and generate calls to them as needed.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/SelectorCheckerTestFunctions.h: Added.
(WebCore::isAutofilled):
(WebCore::isDefaultButtonForForm):
(WebCore::isDisabled):
(WebCore::isEnabled):
(WebCore::isChecked):
(WebCore::isInvalid):
(WebCore::isOptionalFormControl):
(WebCore::isRequiredFormControl):
(WebCore::isValid):
(WebCore::matchesReadOnlyPseudoClass):
(WebCore::matchesReadWritePseudoClass):
(WebCore::shouldAppearIndeterminate):
(WebCore::matchesFullScreenPseudoClass):
(WebCore::matchesFutureCuePseudoClass):
(WebCore::matchesPastCuePseudoClass):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::nonConstTestFunctionWrapper):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
* dom/Element.h:
(WebCore::Element::isValidFormControlElement):
* dom/Node.h:
(WebCore::Node::toInputElement):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::isValidFormControlElement):
* html/HTMLFormControlElement.h:
2014-02-10 Benjamin Poulain <benjamin@webkit.org>
Add the basic infrastructure to compile attributes matching in selectors
https://bugs.webkit.org/show_bug.cgi?id=128484
Reviewed by Gavin Barraclough.
Tests: fast/selectors/querySelector-attribute-match-with-child-backtracking.html
fast/selectors/querySelector-long-attribute-match-with-child-backtracking.html
fast/selectors/querySelector-long-multiple-attribute-match-with-child-backtracking.html
fast/selectors/querySelector-multiple-attribute-match-with-child-backtracking.html
Add the infrastructure to match attributes. This only add basic support for the 'Set' match
type, the other match types will have to be built on top.
* cssjit/RegisterAllocator.h:
(WebCore::RegisterAllocator::availableRegisterCount):
(WebCore::RegisterAllocator::allocateRegister):
(WebCore::RegisterAllocator::deallocateRegister):
(WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
(WebCore::RegisterAllocator::restoreCalleeSavedRegisters):
(WebCore::RegisterAllocator::allocatedRegisters):
(WebCore::RegisterAllocator::RegisterAllocator):
(WebCore::RegisterAllocator::~RegisterAllocator):
In the worst case, matching attributes can take up to 10 registers. On x86_64, we have
8 caller-saved registers. The extra 2 registers are simply added by taking callee-saved registers.
RegisterAllocator is modified to know support saving and restoring callee saved registers.
The list of available registers is changed from a vector to a HashSet because the registers
are removed from arbitrary locations in restoreCalleeSavedRegisters(). The m_allocatedRegisters
remain a vector since the allocation/release pattern remain ordered.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
This new utility finds the minimum number of registers needed to compile the input. In most
cases we have plenty enough. In rare cases we need to saved a few registers to the stack.
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
(WebCore::SelectorCompiler::testIsHTMLFlagOnNode):
(WebCore::SelectorCompiler::canMatchStyleAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
The style attribute and certain SVG attributes can be modified lazily. In those cases,
the element needs to be updated before querying the attributes.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributesMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
Generate the attribute matching. For each CSSSelector matching an attribute, we generate
a loop over all the attributes of the element, maching the particular CSSSelector.
This makes no attempt at grouping related queries since those do not seem to happen a lot
in practice.
* dom/Attribute.h:
(WebCore::Attribute::nameMemoryOffset):
(WebCore::Attribute::nameMatchesFilter):
(WebCore::Attribute::matches):
* dom/ElementData.h:
(WebCore::ElementData::isUniqueFlag):
(WebCore::ElementData::arraySizeAndFlagsMemoryOffset):
(WebCore::ElementData::styleAttributeIsDirtyFlag):
(WebCore::ElementData::animatedSVGAttributesAreDirtyFlag):
(WebCore::ElementData::arraySizeOffset):
(WebCore::ShareableElementData::attributeArrayMemoryOffset):
(WebCore::UniqueElementData::attributeVectorMemoryOffset):
* dom/Node.h:
(WebCore::Node::flagIsHTML):
* dom/StyledElement.cpp:
(WebCore::StyledElement::synchronizeStyleAttributeInternal):
* dom/StyledElement.h:
(WebCore::StyledElement::synchronizeStyleAttributeInternal):
* svg/SVGElement.cpp:
(WebCore::SVGElement::synchronizeAllAnimatedSVGAttribute):
(WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
* svg/SVGElement.h:
2014-02-10 Brady Eidson <beidson@apple.com>
IDB: storage/indexeddb/mozilla/indexes.html fails
<rdar://problem/16031590> and https://bugs.webkit.org/show_bug.cgi?id=128563
Reviewed by Tim Horton.
Tested by storage/indexeddb/mozilla/indexes.html (and probably others)
* Modules/indexeddb/IDBGetResult.h:
(WebCore::IDBGetResult::IDBGetResult): Add a constructor that takes an IDBKeyData argument.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): If there’s no keyPath then skip the injection step.
2014-02-10 Benjamin Poulain <benjamin@webkit.org>
Speed up DatasetDOMStringMap::item() when the element has multiple attributes
https://bugs.webkit.org/show_bug.cgi?id=128058
Reviewed by Darin Adler.
Accessing data attributes by name through DatasetDOMStringMap involes the conversion
from JavaScript property name to attribute name (done with propertyNameMatchesAttributeName()).
When there is a single data attribute, that method is efficient. When there are several attributes,
comparing names character by character becomes a bottleneck.
This patch add an efficent path for this case: instead of converting the attribute name on the fly,
the JavaScript property name is converted to an attribute name so that it can compared by its
AtomicStringImpl pointer.
This method puts a lot more pressure on convertPropertyNameToAttributeName()'s speed. The method was
improved accordingly to compensate for its new caller.
When enumerating multiple attributes by name, this patch provides about 80% speedup.
I could not measure any slow down on the simple cases.
* dom/DatasetDOMStringMap.cpp:
(WebCore::convertPropertyNameToAttributeName):
(WebCore::DatasetDOMStringMap::item):
* dom/ElementData.h:
(WebCore::AttributeIteratorAccessor::attributeCount):
2014-02-10 Ryosuke Niwa <rniwa@webkit.org>
Address the review comments for r163825.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
(WebCore::positionForIndex):
2014-02-10 Simon Fraser <simon.fraser@apple.com>
Try to fix the 32-bit build.
* WebCore.exp.in:
2014-02-10 Filip Pizlo <fpizlo@apple.com>
Rename Operations.h to JSCInlines.h
https://bugs.webkit.org/show_bug.cgi?id=128543
Rubber stamped by Geoffrey Garen.
No new tests because no change in behavior.
* ForwardingHeaders/runtime/JSCInlines.h: Added.
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
* bindings/js/JSCryptoKeySerializationJWK.cpp:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDictionary.h:
* bindings/js/JSMessagePortCustom.cpp:
* bindings/js/JSMessagePortCustom.h:
* bindings/js/JSNodeFilterCondition.h:
* bindings/js/SerializedScriptValue.cpp:
* bindings/js/WebCoreTypedArrayController.cpp:
* bridge/c/c_utility.h:
* bridge/jsc/BridgeJSC.h:
* dom/CustomEvent.cpp:
* dom/Node.cpp:
* html/HTMLCanvasElement.cpp:
* html/HTMLImageLoader.cpp:
* html/canvas/WebGLRenderingContext.cpp:
* inspector/InspectorDOMAgent.cpp:
* inspector/WebConsoleAgent.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/filters/FEGaussianBlur.cpp:
* platform/graphics/filters/FilterEffect.cpp:
* testing/MockCDM.cpp:
* xml/XMLHttpRequest.cpp:
2014-02-09 Dean Jackson <dino@apple.com>
Update aspect-ratio property to have constraining keywords
https://bugs.webkit.org/show_bug.cgi?id=128262
Reviewed by Simon Fraser.
Add support for "from-dimensions" and "from-intrinsic"
property values to "-webkit-aspect-ratio". I also changed
the default value from "none" to "auto", because "none" doesn't
make sense any more.
Covered by enhancing existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): New keywords.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseAspectRatio): Support new keywords.
* css/CSSValueKeywords.in: Add from-dimensions and from-intrinsic.
* css/DeprecatedStyleBuilder.cpp: This now has to handle the new
values. I also changed "none" to "auto".
(WebCore::ApplyPropertyAspectRatio::applyInheritValue):
(WebCore::ApplyPropertyAspectRatio::applyInitialValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
* rendering/style/RenderStyle.h: hasAspectRatio is now aspectRatioType
and indicates one of the three keywords, or a specified number.
* rendering/style/RenderStyleConstants.h: New enum.
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-02-10 Benjamin Poulain <bpoulain@apple.com>
[WK2] Add support for image document viewport configuration
https://bugs.webkit.org/show_bug.cgi?id=128565
Reviewed by Simon Fraser.
Add proper default settings for displaying images.
* WebCore.exp.in:
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::imageDocumentParameters):
(WebCore::ViewportConfiguration::textDocumentParameters):
* page/ViewportConfiguration.h:
2014-02-10 Brendan Long <b.long@cablelabs.com>
Unreviewed GTK build fix after r163816.
* GNUmakefile.list.am: Remove HTMLMediaSource.h and HTMLMediaSource.cpp
2014-02-10 Jinwoo Song <jinwoo7.song@samsung.com>
Unreviewed EFL WebKit2 build fix after r163816.
* CMakeLists.txt: Remove HTMLMediaSource.cpp
2014-02-10 Ryosuke Niwa <rniwa@webkit.org>
HTMLTextFormControlElement::setSelectionRange shouldn't use VisiblePosition
https://bugs.webkit.org/show_bug.cgi?id=128478
Reviewed by Darin Adler.
Added positionForIndex to compute Position given a selection index. This function doesn't
synchronously trigger like visiblePositionForIndex.
Also added assertions in visiblePositionForIndex and visiblePositionForIndex to make sure
they are inverse of one another.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange): Use positionForIndex. Also removed
the now tautological assertions since we would never create a position outside the inner text
element.
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition): Fixed the bug where this
function could return a selection index beyond innerTextElement in some types of input
elements such as search fields. fast/forms/search-disabled-readonly.html hits the newly
added assertion without this change. Note we can't use visiblePositionForIndex here as that
would result in a mutual recursion with the assertion in visiblePositionForIndex.
(WebCore::HTMLTextFormControlElement::visiblePositionForIndex): Added an assertion.
(WebCore::positionForIndex): Added. It's here with prototype at the beginning of the file
so that it's right next to HTMLTextFormControlElement::innerText() where we do a similar
DOM traversal to obtain the inner text value.
2014-02-07 Jeffrey Pfau <jpfau@apple.com>
Disable access to application cache when in private browsing
https://bugs.webkit.org/show_bug.cgi?id=128426
Reviewed by Alexey Proskuryakov.
Tests: http/tests/security/appcache-in-private-browsing.html
http/tests/security/appcache-switching-private-browsing.html
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::cacheForMainRequest):
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
2014-02-10 Jer Noble <jer.noble@apple.com>
[MSE] Fix layering violations in MediaSource
https://bugs.webkit.org/show_bug.cgi?id=128546
Reviewed by Eric Carlson.
Code in Modules should be considered part of html/ and should have the
same layering properties. Get rid of HTMLMediaSource (which was intended
to allow Modules/mediasource to be considered part of platform/) and add
a new client interface allowing communication from platform/ ->
Modules/mediasource.
Replace HTMLMediaSource -> MediaSourcePrivateClient:
* html/HTMLMediaSource.cpp: Removed.
* html/HTMLMediaSource.h: Removed.
* platform/graphics/MediaSourcePrivateClient.h: Added.
(WebCore::MediaSourcePrivateClient::~MediaSourcePrivateClient):
Move registry support from HTMLMediaSource -> MediaSource.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::setRegistry): Moved from HTMLMediaSource.cpp.
* Modules/mediasource/MediaSource.h:
(WebCore::MediaSource::lookup): Ditto.
Update references to HTMLMediaSource -> MediaSource:
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::MediaSourceRegistry):
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource):
* html/HTMLMediaElement.h:
Update references to HTMLMediaSource -> MediaSourcePrivateClient:
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::load):
(WebCore::MediaPlayer::load): Ditto.
(WebCore::MediaPlayer::loadWithNextMediaEngine):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::load):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
(WebCore::MediaSourceGStreamer::open):
* platform/graphics/gstreamer/MediaSourceGStreamer.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::load):
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::load):
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
2014-02-10 Alexey Proskuryakov <ap@apple.com>
Remove some unused functions from SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128407
Reviewed by Oliver Hunt.
Removed functions that used Deprecated::ScriptValue
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValue):
(WebCore::deserializeIDBValueBuffer):
* bindings/js/SerializedScriptValue.cpp:
* bindings/js/SerializedScriptValue.h:
2014-02-10 Roger Fong <roger_fong@apple.com>
[Windows] Unreviewed test fix.
* platform/graphics/cg/GraphicsContextCG.cpp: m_pixelSnappingFactor was not set to 1.
(WebCore::GraphicsContext::platformInit):
2014-02-10 Carlos Garcia Campos <cgarcia@igalia.com>
[GLIB] Add GUniqueOutPtr and use it instead of GOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=127554
Reviewed by Gustavo Noronha Silva.
Use GUniqueOutPtr instead of GOwnPtr.
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::handleMessage):
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::handleMessage):
* platform/glib/BatteryProviderUPower.cpp:
(BatteryProviderUPower::startUpdating):
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::initializeGStreamer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::getTag):
* platform/graphics/gtk/ImageBufferGtk.cpp:
(WebCore::encodeImage):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/gtk/ImageGtk.cpp:
(WebCore::loadResourceSharedBuffer):
* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::setURIList):
* platform/gtk/FileSystemGtk.cpp:
(WebCore::readFromFile):
* platform/gtk/GamepadsGtk.cpp:
(WebCore::GamepadDeviceGtk::readCallback):
* platform/gtk/GtkInputMethodFilter.cpp:
(WebCore::GtkInputMethodFilter::handlePreeditChanged):
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::fillDataObjectFromDropData):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::systemFont):
* platform/gtk/SharedBufferGtk.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
* platform/network/gtk/CredentialBackingStore.cpp:
(WebCore::credentialForChallengeAsyncReadyCallback):
* platform/network/soup/GOwnPtrSoup.cpp: Removed.
* platform/network/soup/GOwnPtrSoup.h: Removed.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::redirectSkipCallback):
(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):
(WebCore::addFileToSoupMessageBody):
(WebCore::createSoupRequestAndMessageForHandle):
(WebCore::readCallback):
* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::connectedCallback):
(WebCore::readReadyCallback):
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::httpProxy):
2014-02-10 Darin Adler <darin@apple.com>
Automatically generate isRendererOfType in RENDER_OBJECT_TYPE_CASTS
https://bugs.webkit.org/show_bug.cgi?id=128520
Reviewed by Andreas Kling.
* rendering/RenderObject.h: Updated the RENDER_OBJECT_TYPE_CASTS macro so
that it generates isRendererOfType specializations as well as type casts
and also have the type casts use the isRendererOfType function. The macro
also now uses an argument name of "renderer" and allows for a predicate
that is more than just a single function call (see RenderTextFragment.h).
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.h:
* rendering/RenderCounter.h:
* rendering/RenderElement.h:
* rendering/RenderFrameSet.h:
* rendering/RenderLayerModelObject.h:
* rendering/RenderMenuList.h:
* rendering/RenderNamedFlowThread.h:
* rendering/RenderRubyRun.h:
* rendering/RenderTableSection.h:
* rendering/RenderText.h:
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLToken.h:
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.h:
Removed specialization of isRendererOfType, since the RENDER_OBJECT_TYPE_CASTS
macro handles that now. Also removed some unneeded semicolons.
* rendering/RenderTextFragment.h: Use RENDER_OBJECT_TYPE_CASTS instead of
hand written casts, now that it can handle a non-trivial predicate.
* rendering/RenderCombineText.h:
* rendering/RenderDetailsMarker.h:
* rendering/RenderListMarker.h:
* rendering/RenderVideo.h:
* rendering/RenderView.h:
* rendering/mathml/RenderMathMLFraction.h:
* rendering/mathml/RenderMathMLScripts.h:
* rendering/mathml/RenderMathMLSpace.h:
Removed unneeded semicolons.
2014-02-10 Darin Adler <darin@apple.com>
Stop using String::deprecatedCharacters to call WTF::Collator
https://bugs.webkit.org/show_bug.cgi?id=128517
Reviewed by Alexey Proskuryakov.
* xml/XSLTUnicodeSort.cpp:
(WebCore::xsltUnicodeSortFunction): Create the collator in a single line using the
new constructor that takes a shouldSortLowercaseFirst boolean. Use the new
collateUTF8 function instead of upconverting UTF-8 strings to UTF-16 as the old code did.
2014-02-10 Changhun Kang <temoochin@company100.net>
Remove unnecessary comment lines.
https://bugs.webkit.org/show_bug.cgi?id=127894
Reviewed by Darin Adler.
No new tests. No change in behavior.
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientHandshakeRequest):
2014-02-10 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Fix EFL build with INSPECTOR disabled
https://bugs.webkit.org/show_bug.cgi?id=125064
Reviewed by Csaba Osztrogonác.
* bindings/js/PageScriptDebugServer.cpp:
* bindings/js/PageScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
* bindings/js/WorkerScriptDebugServer.h:
* inspector/PageInjectedScriptManager.h:
2014-02-10 Zan Dobersek <zdobersek@igalia.com>
Fix a few mistakes that landed with r163749.
Rubber-stamped by Carlos Garcia Campos.
* platform/gtk/GtkTouchContextHelper.cpp:
(WebCore::GtkTouchContextHelper::handleEvent): When handling GDK_TOUCH_BEGIN, the assertion
should ensure that the sequence-to-event map doesn't yet contain pairs with the specific
sequence as the key.
2014-02-10 David Kilzer <ddkilzer@apple.com>
Add type-safe casts for ContentData subclasses
<http://webkit.org/b/128510>
Reviewed by Darin Adler.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::contentToCSSValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImages):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setContent):
- Switch to toFooContentData() methods.
* rendering/style/ContentData.h:
- Define toFooContentData() methods.
- Extract FooContentData::equals() methods so that the
toFooContentData() methods can be used.
2014-02-09 Dirk Schulze <dschulze@chromium.org>
-webkit-clip-path should support fill, stroke, view-box keywords
https://bugs.webkit.org/show_bug.cgi?id=128393
Reviewed by Dean Jackson.
CSS Masking uses the keywords fill, stroke and view-box for SVG shapes.
This patch updates the parser, style resolver and SVG implementation of
the prefixed clip-path property.
Remove the unexposed and obsolete keyword bounding-box.
Tests: svg/clip-path/clip-path-shape-fill-expected.svg
svg/clip-path/clip-path-shape-fill.svg
svg/clip-path/clip-path-shape-stroke-expected.svg
svg/clip-path/clip-path-shape-stroke.svg
svg/clip-path/clip-path-shape-view-box-expected.svg
svg/clip-path/clip-path-shape-view-box.svg
* css/CSSParser.cpp: Parse fill, stroke, view-box. Remove bounding-box.
(WebCore::isBoxValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator LayoutBox):
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClipPath::applyValue):
* rendering/RenderLayer.cpp:
(WebCore::computeReferenceBox):
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::setShapeSize):
(WebCore::ShapeInfo::logicalTopOffset):
(WebCore::ShapeInfo::logicalLeftOffset):
* rendering/style/RenderStyleConstants.h:
* rendering/svg/SVGRenderingContext.cpp: Use different reference boxes per keyword.
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
2014-02-09 Dean Jackson <dino@apple.com>
[WebGL] Remove state restorer code
https://bugs.webkit.org/show_bug.cgi?id=128516
Reviewed by Dirk Schulze.
I'm not sure what the point of the WebGLStateRestorer class was. It was
always constructed with a false parameter, and then wasn't even retained
in local scope (so wouldn't have worked anyway). Meanwhile there were
also LOTS of calls to cleanupAfterGraphicsCall, the majority of which
were a no-op. I replaced the handful of cleanupAfterGraphicsCall(true)
with the call to markContextChanged().
* html/canvas/OESVertexArrayObject.cpp:
(WebCore::OESVertexArrayObject::bindVertexArrayOES):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::activeTexture):
(WebCore::WebGLRenderingContext::attachShader):
(WebCore::WebGLRenderingContext::bindAttribLocation):
(WebCore::WebGLRenderingContext::bindBuffer):
(WebCore::WebGLRenderingContext::bindFramebuffer):
(WebCore::WebGLRenderingContext::bindRenderbuffer):
(WebCore::WebGLRenderingContext::bindTexture):
(WebCore::WebGLRenderingContext::blendColor):
(WebCore::WebGLRenderingContext::blendEquation):
(WebCore::WebGLRenderingContext::blendEquationSeparate):
(WebCore::WebGLRenderingContext::blendFunc):
(WebCore::WebGLRenderingContext::blendFuncSeparate):
(WebCore::WebGLRenderingContext::bufferData):
(WebCore::WebGLRenderingContext::bufferSubData):
(WebCore::WebGLRenderingContext::checkFramebufferStatus):
(WebCore::WebGLRenderingContext::clear):
(WebCore::WebGLRenderingContext::clearColor):
(WebCore::WebGLRenderingContext::clearDepth):
(WebCore::WebGLRenderingContext::clearStencil):
(WebCore::WebGLRenderingContext::colorMask):
(WebCore::WebGLRenderingContext::compileShader):
(WebCore::WebGLRenderingContext::compressedTexImage2D):
(WebCore::WebGLRenderingContext::compressedTexSubImage2D):
(WebCore::WebGLRenderingContext::copyTexImage2D):
(WebCore::WebGLRenderingContext::copyTexSubImage2D):
(WebCore::WebGLRenderingContext::cullFace):
(WebCore::WebGLRenderingContext::depthFunc):
(WebCore::WebGLRenderingContext::depthMask):
(WebCore::WebGLRenderingContext::depthRange):
(WebCore::WebGLRenderingContext::detachShader):
(WebCore::WebGLRenderingContext::disable):
(WebCore::WebGLRenderingContext::disableVertexAttribArray):
(WebCore::WebGLRenderingContext::validateDrawArrays):
(WebCore::WebGLRenderingContext::drawArrays):
(WebCore::WebGLRenderingContext::validateDrawElements):
(WebCore::WebGLRenderingContext::drawElements):
(WebCore::WebGLRenderingContext::enable):
(WebCore::WebGLRenderingContext::enableVertexAttribArray):
(WebCore::WebGLRenderingContext::finish):
(WebCore::WebGLRenderingContext::flush):
(WebCore::WebGLRenderingContext::framebufferRenderbuffer):
(WebCore::WebGLRenderingContext::framebufferTexture2D):
(WebCore::WebGLRenderingContext::frontFace):
(WebCore::WebGLRenderingContext::generateMipmap):
(WebCore::WebGLRenderingContext::getBufferParameter):
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getProgramParameter):
(WebCore::WebGLRenderingContext::getProgramInfoLog):
(WebCore::WebGLRenderingContext::getRenderbufferParameter):
(WebCore::WebGLRenderingContext::getShaderParameter):
(WebCore::WebGLRenderingContext::getShaderInfoLog):
(WebCore::WebGLRenderingContext::getTexParameter):
(WebCore::WebGLRenderingContext::getUniform):
(WebCore::WebGLRenderingContext::getUniformLocation):
(WebCore::WebGLRenderingContext::getVertexAttrib):
(WebCore::WebGLRenderingContext::getVertexAttribOffset):
(WebCore::WebGLRenderingContext::hint):
(WebCore::WebGLRenderingContext::lineWidth):
(WebCore::WebGLRenderingContext::linkProgram):
(WebCore::WebGLRenderingContext::pixelStorei):
(WebCore::WebGLRenderingContext::polygonOffset):
(WebCore::WebGLRenderingContext::readPixels):
(WebCore::WebGLRenderingContext::releaseShaderCompiler):
(WebCore::WebGLRenderingContext::renderbufferStorage):
(WebCore::WebGLRenderingContext::sampleCoverage):
(WebCore::WebGLRenderingContext::scissor):
(WebCore::WebGLRenderingContext::shaderSource):
(WebCore::WebGLRenderingContext::stencilFunc):
(WebCore::WebGLRenderingContext::stencilFuncSeparate):
(WebCore::WebGLRenderingContext::stencilMask):
(WebCore::WebGLRenderingContext::stencilMaskSeparate):
(WebCore::WebGLRenderingContext::stencilOp):
(WebCore::WebGLRenderingContext::stencilOpSeparate):
(WebCore::WebGLRenderingContext::texImage2DBase):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texParameter):
(WebCore::WebGLRenderingContext::texSubImage2DBase):
(WebCore::WebGLRenderingContext::uniform1f):
(WebCore::WebGLRenderingContext::uniform1fv):
(WebCore::WebGLRenderingContext::uniform1i):
(WebCore::WebGLRenderingContext::uniform1iv):
(WebCore::WebGLRenderingContext::uniform2f):
(WebCore::WebGLRenderingContext::uniform2fv):
(WebCore::WebGLRenderingContext::uniform2i):
(WebCore::WebGLRenderingContext::uniform2iv):
(WebCore::WebGLRenderingContext::uniform3f):
(WebCore::WebGLRenderingContext::uniform3fv):
(WebCore::WebGLRenderingContext::uniform3i):
(WebCore::WebGLRenderingContext::uniform3iv):
(WebCore::WebGLRenderingContext::uniform4f):
(WebCore::WebGLRenderingContext::uniform4fv):
(WebCore::WebGLRenderingContext::uniform4i):
(WebCore::WebGLRenderingContext::uniform4iv):
(WebCore::WebGLRenderingContext::uniformMatrix2fv):
(WebCore::WebGLRenderingContext::uniformMatrix3fv):
(WebCore::WebGLRenderingContext::uniformMatrix4fv):
(WebCore::WebGLRenderingContext::useProgram):
(WebCore::WebGLRenderingContext::validateProgram):
(WebCore::WebGLRenderingContext::vertexAttribPointer):
(WebCore::WebGLRenderingContext::viewport):
(WebCore::WebGLRenderingContext::vertexAttribfImpl):
(WebCore::WebGLRenderingContext::vertexAttribfvImpl):
(WebCore::WebGLRenderingContext::drawArraysInstanced):
(WebCore::WebGLRenderingContext::drawElementsInstanced):
* html/canvas/WebGLRenderingContext.h:
2014-02-09 Dean Jackson <dino@apple.com>
Remove unused layer owner from WebGLLayer
https://bugs.webkit.org/show_bug.cgi?id=128512
Reviewed by Dirk Schulze.
The m_layerOwner and ObjC category were not
used anywhere.
* platform/graphics/mac/WebGLLayer.h:
* platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer display]):
2014-02-09 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Remove PageClientEfl
https://bugs.webkit.org/show_bug.cgi?id=128508
Reviewed by Andreas Kling.
PageClientEfl was introduced for accelerated compositing of WebKit1, but
it's bad idea because it's layer violation.
Indeed, it has never been used since introduced.
* platform/Widget.h: Back to PlatformPageClient to Evas_Object.
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
Removed empty method which use PageClientEfl.
* platform/graphics/efl/GraphicsContext3DPrivate.h: Ditto.
2014-02-09 Tim Horton <timothy_horton@apple.com>
[iOS][wk2] ASSERT(WebThreadIsCurrent()) in [WebDisplayLinkHandler handleDisplayLink:]
https://bugs.webkit.org/show_bug.cgi?id=128490
Reviewed by Simon Fraser.
* platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(-[WebDisplayLinkHandler handleDisplayLink:]):
[WebDisplayLinkHandler handleDisplayLink:] has an ASSERT(WebThreadIsCurrent()).
We don't use the Web Thread in WebKit2, but it looks like isMainThread()
does the right thing (main thread if web thread is disabled, web thread
otherwise), so use that instead.
2014-02-09 Anders Carlsson <andersca@apple.com>
Add WTF_MAKE_FAST_ALLOCATED to more classes
https://bugs.webkit.org/show_bug.cgi?id=128506
Reviewed by Andreas Kling.
* dom/Node.h:
* dom/ScriptElement.h:
* loader/ImageLoader.h:
* loader/cache/CachedResourceClient.h:
* platform/TreeShared.h:
* platform/graphics/GlyphMetricsMap.h:
* rendering/InlineBox.h:
* rendering/RenderLayer.h:
* rendering/RenderObject.h:
2014-02-09 Andreas Kling <akling@apple.com>
Reduce ref churn in ChildNodesLazySnapshot iteration.
<https://webkit.org/b/128492>
Add a missing release() in ChildNodesLazySnapshot::nextNode()
so we don't have to churn the ref count.
Reviewed by Sam Weinig.
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
2014-02-09 Andreas Kling <akling@apple.com>
Reduce ref churn in ChildInsertionNotifier.
<https://webkit.org/b/128494>
All callers of notifyNodeInsertedIntoDocument() already hold a strong
reference on the Node, so there's no need to ref it again inside.
Reviewed by Anders Carlsson.
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
2014-02-09 Zan Dobersek <zdobersek@igalia.com>
Manage ShadowData through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128466
Reviewed by Andreas Kling.
Use std::unique_ptr instead of OwnPtr to manage ShadowData objects.
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::PropertyWrapperShadow::PropertyWrapperShadow):
(WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists):
(WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setTextShadow):
(WebCore::RenderStyle::setBoxShadow):
* rendering/style/RenderStyle.h:
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setShadow):
* rendering/style/SVGRenderStyleDefs.cpp:
(WebCore::StyleShadowSVGData::StyleShadowSVGData):
* rendering/style/SVGRenderStyleDefs.h:
* rendering/style/ShadowData.cpp:
(WebCore::ShadowData::ShadowData):
* rendering/style/ShadowData.h:
(WebCore::ShadowData::setNext):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
* rendering/style/StyleRareInheritedData.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
* rendering/style/StyleRareNonInheritedData.h:
2014-02-09 Carlos Garnacho <carlosg@gnome.org>
[GTK] Add touch-events related code to build
https://bugs.webkit.org/show_bug.cgi?id=98931
Reviewed by Carlos Garcia Campos.
Tests in fast/events/touch have been enabled on GTK+ now that touch
support is implemented, and thus all expected bits are there.
* platform/gtk/GtkTouchContextHelper.cpp:
* platform/gtk/GtkTouchContextHelper.h: Add helper object to track all touchpoints, handy
when creating WebTouchEvents.
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* bindings/gobject/GNUmakefile.am: Add touch related code and idls to build, those are
necessary now that GTK+ implements touch events.
2014-02-09 Zan Dobersek <zdobersek@igalia.com>
Switch the rest of CSS code from OwnPtr over to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128471
Reviewed by Andreas Kling.
Replace the remaining uses of OwnPtr in the CSS code with std::unique_ptr, covering
the CSSParser, CSSParserSelector and CSSSelector classes and a few additional, closely related classes.
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseSheet):
(WebCore::CSSParser::parseDeclaration):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::markSupportsRuleHeaderStart):
(WebCore::CSSParser::createKeyframesRule):
(WebCore::CSSParser::createStyleRule):
(WebCore::CSSParser::rewriteSpecifiersWithElementName):
(WebCore::CSSParser::rewriteSpecifiers):
* css/CSSParser.h:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::CSSParserSelector):
(WebCore::CSSParserSelector::~CSSParserSelector):
(WebCore::CSSParserSelector::adoptSelectorVector):
(WebCore::CSSParserSelector::insertTagHistory):
(WebCore::CSSParserSelector::appendTagHistory):
(WebCore::CSSParserSelector::prependTagSelector):
* css/CSSParserValues.h:
(WebCore::CSSParserSelector::releaseSelector):
(WebCore::CSSParserSelector::setTagHistory):
(WebCore::CSSParserSelector::clearTagHistory):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::setSelectorList):
* css/CSSSelector.h:
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::adoptSelectorVector):
* css/CSSSelectorList.h:
* css/CSSValueList.cpp:
* css/StyleRule.cpp:
(WebCore::StyleRuleRegion::StyleRuleRegion):
* css/StyleRule.h:
(WebCore::StyleRule::parserAdoptSelectorVector):
(WebCore::StyleRulePage::parserAdoptSelectorVector):
(WebCore::StyleRuleRegion::create):
2014-02-09 Zan Dobersek <zdobersek@igalia.com>
Manage MutationObserverInterestGroup through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128468
Reviewed by Andreas Kling.
Use std::unique_ptr instead of OwnPtr for managing MutationObserverInterestGroup objects.
* css/PropertySetCSSStyleDeclaration.cpp:
* dom/CharacterData.cpp:
(WebCore::CharacterData::dispatchModifiedEvent):
* dom/ChildListMutationScope.cpp:
(WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator):
* dom/ChildListMutationScope.h:
(WebCore::ChildListMutationAccumulator::hasObservers):
* dom/Element.cpp:
(WebCore::Element::willModifyAttribute):
* dom/MutationObserverInterestGroup.cpp:
(WebCore::MutationObserverInterestGroup::createIfNeeded):
* dom/MutationObserverInterestGroup.h:
(WebCore::MutationObserverInterestGroup::createForChildListMutation):
(WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
(WebCore::MutationObserverInterestGroup::createForAttributesMutation):
2014-02-09 Zan Dobersek <zdobersek@igalia.com>
Manage MessagePort, MessagePortChannel and friends through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128467
Reviewed by Andreas Kling.
Use std::unique_ptr instead of OwnPtr to manage MessagePort, MessagePortArray, MessagePortChannel
and MessagePortChannelArray objects.
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::handleInitMessageEvent):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::initMessageEvent):
* dom/MessageEvent.h:
(WebCore::MessageEvent::create):
* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::entangle):
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::disentanglePorts):
(WebCore::MessagePort::entanglePorts):
* dom/MessagePort.h:
* dom/MessagePortChannel.h:
* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::PlatformMessagePortChannel::EventData::EventData):
(WebCore::MessagePortChannel::createChannel):
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
* dom/default/PlatformMessagePortChannel.h:
(WebCore::PlatformMessagePortChannel::EventData::channels):
* page/DOMWindow.cpp:
(WebCore::PostMessageTimer::PostMessageTimer):
(WebCore::PostMessageTimer::event):
(WebCore::DOMWindow::postMessage):
* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::postMessage):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerConnectTask::create):
(WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
(WebCore::SharedWorkerConnectTask::performTask):
(WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
(WebCore::SharedWorkerScriptLoader::notifyFinished):
(WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
(WebCore::DefaultSharedWorkerRepository::connectToWorker):
* workers/DefaultSharedWorkerRepository.h:
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::create):
* workers/SharedWorkerGlobalScope.cpp:
(WebCore::createConnectEvent):
* workers/SharedWorkerRepository.cpp:
(WebCore::SharedWorkerRepository::connect):
* workers/SharedWorkerRepository.h:
* workers/Worker.cpp:
(WebCore::Worker::postMessage):
* workers/WorkerGlobalScopeProxy.h:
* workers/WorkerMessagingProxy.cpp:
(WebCore::MessageWorkerGlobalScopeTask::create):
(WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask):
(WebCore::MessageWorkerGlobalScopeTask::performTask):
(WebCore::MessageWorkerTask::create):
(WebCore::MessageWorkerTask::MessageWorkerTask):
(WebCore::MessageWorkerTask::performTask):
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
* workers/WorkerMessagingProxy.h:
* workers/WorkerObjectProxy.h:
2014-02-08 Ryosuke Niwa <rniwa@webkit.org>
Cleanup the interface of FrameSelection
https://bugs.webkit.org/show_bug.cgi?id=128481
Reviewed by Andreas Kling.
Removed FrameSelection::end() as intended in r163232, and the stale declaration of
paintDragCaret() which was supposed to be removed when we extracted DragCaretController.
Renamed caretRenderer() to caretRendererWithoutUpdatingLayout() to clarify the contract
as the only caller of this function is RenderBlock::paintCaret. Also renamed bounds()
to selectionBounds() to make it more easily identifiable / grep'able.
In addition, made recomputeCaretRect() and invalidateCaretRect() private.
* WebCore.exp.in:
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::caretRendererWithoutUpdatingLayout):
(WebCore::FrameSelection::selectionBounds):
(WebCore::FrameSelection::revealSelection):
* editing/FrameSelection.h:
(WebCore::FrameSelection::setCaretVisible):
* page/DragController.cpp:
(WebCore::dragLocForSelectionDrag):
* page/FrameSnapshotting.cpp:
(WebCore::snapshotSelection):
* page/win/FrameWin.cpp:
(WebCore::imageFromSelection):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
* testing/Internals.cpp:
(WebCore::Internals::selectionBounds):
2014-02-08 Dan Bernstein <mitz@apple.com>
Reverted part of r163734, because the assertion it enabled still fails when running
loader/load-defer-resume-crash.html
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::dataReceived):
2014-02-08 Ryosuke Niwa <rniwa@webkit.org>
EFL build fix after r163729.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::version):
2014-02-08 Dan Bernstein <mitz@apple.com>
Remove outdated workarounds in DocumentLoader::dataReceived
https://bugs.webkit.org/show_bug.cgi?id=128465
Reviewed by Andreas Kling.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::dataReceived):
2014-02-08 Alexey Proskuryakov <ap@apple.com>
Remove some unused functions from SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128407
Reviewed by Oliver Hunt.
Removed more unused code, particularly in API helpers. Renamed one serialize()
function to create(), because it does the same thing as other create() functions.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
* bindings/js/SerializedScriptValue.h:
2014-02-08 Brady Eidson <beidson@apple.com>
IDB: storage/indexeddb/mozilla/versionchange-abort.html fails
<rdar://problem/16018887> and https://bugs.webkit.org/show_bug.cgi?id=128442
Reviewed by Dan Bernstein.
Tested by storage/indexeddb/mozilla/versionchange-abort.html (and probably others)
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::version): If the version is NoIntVersion, return DefaultIntVersion to script.
2014-02-08 Brady Eidson <beidson@apple.com>
IDB: storage/indexeddb/mozilla/cursors.html fails
<rdar://problem/16017998> and https://bugs.webkit.org/show_bug.cgi?id=128423
Reviewed by Dan Bernstein.
Tested by storage/indexeddb/mozilla/cursors.html (And probably others)
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::OpenCursorOperation::perform): Distinguish between an error while opening the cursor
and opening a cursor that points to no records.
2014-02-08 Andreas Kling <akling@apple.com>
Remove unused ChromeClient::layoutUpdated().
<https://webkit.org/b/128470>
Nobody listens for this callback anymore so remove it.
Reviewed by Anders Carlsson.
* page/Chrome.cpp:
* page/Chrome.h:
* page/ChromeClient.h:
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2014-02-08 Dan Bernstein <mitz@apple.com>
Stop using PLATFORM(MAC) in WebCore except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128464
Reviewed by Anders Carlsson.
* Modules/webaudio/AudioContext.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::AudioContext::constructCommon):
* accessibility/AccessibilityNodeObject.cpp: Ditto.
(WebCore::AccessibilityNodeObject::visibleText):
* accessibility/AccessibilityObject.h: Ditto.
* accessibility/AccessibilityRenderObject.cpp: Ditto.
(WebCore::AccessibilityRenderObject::clickPoint):
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h: Ditto.
* bindings/js/JSInspectorFrontendHostCustom.cpp:
(WebCore::JSInspectorFrontendHost::platform): Made it explicit that this function returns
"mac" when built for iOS.
* bindings/js/ScriptController.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::ScriptController::ScriptController):
* bindings/js/ScriptController.h: Ditto.
* crypto/CryptoKey.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) &&
!PLATFORM(GTK) when checking for whether to use CoreCrypto.
* crypto/keys/CryptoKeyRSA.h: Ditto.
* dom/Clipboard.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* dom/Document.cpp: Ditto.
(WebCore::Document::implicitClose):
* dom/KeyboardEvent.h: Ditto.
* editing/Editor.cpp: Ditto.
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::copyImage):
* editing/Editor.h: Ditto.
* editing/FrameSelection.h: Ditto.
* editing/TypingCommand.cpp: Ditto.
(WebCore::TypingCommand::typingAddedToOpenCommand):
* history/HistoryItem.h: Ditto.
* html/HTMLMediaElement.cpp: Ditto.
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h: Ditto.
* html/HTMLPlugInElement.cpp: Ditto.
(WebCore::registeredPluginReplacements):
* html/HTMLPlugInImageElement.cpp: Ditto.
(WebCore::HTMLPlugInImageElement::setDisplayState):
* html/HTMLSelectElement.cpp: Ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/shadow/MediaControlElements.cpp: Ditto.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
* html/shadow/MediaControlElements.h: Ditto.
* inspector/InspectorIndexedDBAgent.cpp: Ditto.
* loader/CookieJar.cpp: Ditto.
* loader/DocumentLoader.cpp: Ditto.
(WebCore::DocumentLoader::dataReceived):
* loader/DocumentLoader.h: Ditto.
(WebCore::DocumentLoader::didTellClientAboutLoad):
* loader/EmptyClients.h: Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadArchive): Added !PLATFORM(IOS) around Mac-only workaround.
(WebCore::FrameLoader::defaultObjectContentType): Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::FrameLoader::subresourceCachePolicy): Ditto.
* loader/ResourceBuffer.h: Changed PLATFORM(MAC) to USE(FOUNDATION) around functions that
are implemented using Foundation.
* loader/ResourceLoadScheduler.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::ResourceLoadScheduler::scheduleLoad):
* loader/ResourceLoader.cpp: Ditto.
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
* loader/ResourceLoader.h: Ditto.
* loader/archive/cf/LegacyWebArchive.cpp: Ditto.
* loader/cache/CachedResource.cpp: Changed PLATFORM(MAC) to USE(FOUNDATION) around function
that is implemented using other USE(FOUNDATION)-guarded code.
* loader/cache/CachedResource.h: Ditto.
* page/Chrome.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* page/ChromeClient.h: Ditto.
* page/ContextMenuClient.h: Ditto.
* page/ContextMenuController.cpp: Ditto.
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::createAndAppendFontSubMenu):
(WebCore::ContextMenuController::createAndAppendSpellingAndGrammarSubMenu):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
* page/DragClient.h: Ditto.
* page/DragController.cpp: Ditto.
(WebCore::dragLocForDHTMLDrag):
(WebCore::dragLocForSelectionDrag):
(WebCore::DragController::startDrag):
(WebCore::DragController::doImageDrag):
* page/EditorClient.h: Ditto.
* page/EventHandler.cpp: Ditto.
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::logicalScrollRecursively):
(WebCore::EventHandler::clearDragState):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::defaultWheelEventHandler):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
* page/EventHandler.h: Ditto.
* page/FrameView.cpp: Ditto.
(WebCore::FrameView::layout):
* page/Page.h: Ditto.
* page/Settings.cpp: Ditto.
* page/Settings.h: Ditto.
* page/scrolling/ScrollingCoordinator.cpp: Ditto.
* page/scrolling/ScrollingCoordinator.h: Ditto.
* page/scrolling/ScrollingStateNode.h: Removed unused #include.
* page/scrolling/ScrollingThread.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::ScrollingThread::createThreadIfNeeded):
* page/scrolling/ScrollingThread.h: Ditto.
* platform/network/cf/ResourceRequest.h: Added !PLATFORM(IOS) around
applyWebArchiveHackForMail.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Ditto.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Ditto.
* plugins/PluginViewNone.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA)
* rendering/RenderBox.cpp: Ditto.
(WebCore::RenderBox::logicalScroll):
* rendering/RenderLayerBacking.cpp: Ditto.
(WebCore::RenderLayerBacking::createGraphicsLayer):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
* rendering/RenderMenuList.h: Ditto.
* rendering/RenderText.cpp: Ditto.
(WebCore::RenderText::previousOffsetForBackwardDeletion):
* rendering/break_lines.cpp: Removed unused #include.
* testing/js/WebCoreTestSupport.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* xml/XSLStyleSheetLibxslt.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) &&
!PLATFORM(GTK) around soft-linking libxslt.
* xml/XSLTExtensions.cpp: Ditto.
* xml/XSLTProcessorLibxslt.cpp: Ditto.
* xml/XSLTUnicodeSort.cpp: Ditto.
2014-02-08 Andreas Kling <akling@apple.com>
Remove unused ChromeClient::formStateDidChange().
<https://webkit.org/b/128469>
Nobody listens for this callback anymore so remove it and stop
spamming no-op virtual dispatches in forms code.
Reviewed by Anders Carlsson.
* html/FileInputType.cpp:
(WebCore::FileInputType::setFiles):
* html/HTMLFormControlElementWithState.cpp:
* html/HTMLFormControlElementWithState.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::setValue):
(WebCore::HTMLInputElement::setValueFromRenderer):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::selectOption):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updateValue):
(WebCore::HTMLTextAreaElement::setValueCommon):
* loader/EmptyClients.h:
* page/ChromeClient.h:
2014-02-08 Chris J. Shull <chrisjshull@gmail.com>
Web Inspector: Find evaluates attributes in a case sensitive manner
https://bugs.webkit.org/show_bug.cgi?id=128405
Reviewed by Timothy Hatcher.
Changed matchesAttribute to ignore case.
Updated existing test with additional cases:
inspector-protocol/dom/dom-search.html
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::matchesAttribute):
2014-02-08 Andreas Kling <akling@apple.com>
Remove unused FrameLoaderClient::dispatchWillOpenSocketStream().
<https://webkit.org/b/128472>
Nobody listens for this callback anymore so remove it.
Reviewed by Anders Carlsson.
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::willOpenSocketStream):
* loader/FrameLoaderClient.h:
2014-02-08 Ryosuke Niwa <rniwa@webkit.org>
Split UserTriggered into FireSelectEvent and RevealSelection for selection options
https://bugs.webkit.org/show_bug.cgi?id=128441
Reviewed by Darin Adler.
Split UserTriggered by FireSelectEvent and RevealSelection for selection options.
Also added defaultSetSelectionOptions() to abstract away the default options.
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
* editing/Editor.cpp:
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::reappliedEditing):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveTo):
(WebCore::FrameSelection::setSelectionByMouseIfDifferent): UserTriggered | DoNotRevealSelection
is replaced by FireSelectEvent.
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Check options & FireSelectEvent
instead of options & UserTriggered.
(WebCore::FrameSelection::setSelection): Check options & RevealSelection instead of
options & UserTriggered && !(options & DoNotRevealSelection).
(WebCore::FrameSelection::prepareForDestruction):
(WebCore::FrameSelection::setBase):
(WebCore::FrameSelection::setExtent):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::wordSelectionContainingCaretSelection):
* editing/FrameSelection.h:
(WebCore::FrameSelection::defaultSetSelectionOptions): Added.
* editing/SpellingCorrectionCommand.cpp:
(WebCore::SpellingCorrectionCommand::doApply):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::selectionChanged): Renamed the argument.
* html/HTMLTextFormControlElement.h:
2014-02-08 Zan Dobersek <zdobersek@igalia.com>
Move TreeScope, IdTargetObserverRegistry to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127276
Reviewed by Andreas Kling.
Replace uses of OwnPtr in the TreeScope and IdTargetObserverRegistry classes with std::unique_ptr.
* dom/IdTargetObserverRegistry.cpp:
(WebCore::IdTargetObserverRegistry::addObserver):
* dom/IdTargetObserverRegistry.h:
(WebCore::IdTargetObserverRegistry::IdTargetObserverRegistry):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::destroyTreeScopeData):
(WebCore::TreeScope::addElementById):
(WebCore::TreeScope::addElementByName):
(WebCore::TreeScope::addImageMap):
(WebCore::TreeScope::labelElementForId):
* dom/TreeScope.h:
(WebCore::TreeScope::shouldCacheLabelsByForAttribute):
2014-02-08 Anders Carlsson <andersca@apple.com>
Slight CTTE in PingLoader
https://bugs.webkit.org/show_bug.cgi?id=128462
Reviewed by Dan Bernstein.
PingLoader always wants a non-null frame.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::sendPings):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::continueAfterPingLoader):
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
(WebCore::PingLoader::createPingLoader):
(WebCore::PingLoader::PingLoader):
* loader/PingLoader.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
2014-02-08 Dan Bernstein <mitz@apple.com>
Remove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
https://bugs.webkit.org/show_bug.cgi?id=128456
Reviewed by Anders Carlsson.
Updated fast/css/getComputedStyle and svg/css results.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Removed CSSPropertyWebKitHighlight case.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Ditto.
* css/CSSPropertyNames.in: Removed -webkit-highlight.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Removed
CSSPropertyWebKitHighlight handler.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty): Removed CSSPropertyWebKitHighlight case.
* page/Chrome.cpp: Removed customHighlightRect and paintCustomHighlight.
* page/ChromeClient.h: Ditto.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Removed painting custom highlight.
* rendering/InlineTextBox.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns): Removed adding overflow for custom
highlights.
* rendering/RenderBox.cpp: Removed paintCustomHighlight.
* rendering/RenderBox.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced): Removed painting custom highlight.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Ditto.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): Ditto.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint): Ditto.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::paint): Ditto.
* rendering/RootInlineBox.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout): Removed highlight comparison.
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Removed initializer.
(WebCore::StyleRareInheritedData::operator==): Removed highlight comparison.
* rendering/style/StyleRareInheritedData.h: Removed highlight member variable.
2014-02-08 Dan Bernstein <mitz@apple.com>
One more build fix fix.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
2014-02-08 Dan Bernstein <mitz@apple.com>
More (and more correct) iOS build fix after r163712.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
* page/ios/FrameIOS.mm:
(WebCore::Frame::wordsInCurrentParagraph):
2014-02-08 Dan Bernstein <mitz@apple.com>
iOS build fix after r163712.
* page/ios/FrameIOS.mm:
(WebCore::Frame::indexCountOfWordPrecedingSelection):
(WebCore::Frame::wordsInCurrentParagraph):
2014-02-08 Darin Adler <darin@apple.com>
Change TextIterator to use StringView, preparing to wean it from deprecatedCharacters
https://bugs.webkit.org/show_bug.cgi?id=128233
Reviewed by Anders Carlsson.
* accessibility/AccessibilityNodeObject.cpp: Removed unneeded TextIterator.h include.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasMisspelling): Updated to use StringView for checkSpelling.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling): Changed to take a StringView.
(AXAttributedStringAppendText): Ditto.
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Pass StringView.
* editing/Editor.cpp:
(WebCore::Editor::misspelledWordAtCaretOrRange): Pass StringView.
(WebCore::Editor::misspelledSelectionString): Ditto.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Ditto.
* editing/TextCheckingHelper.cpp:
(WebCore::findGrammaticalErrors): Renamed this function. Changed to use StringView.
(WebCore::findMisspellings): Use StringView.
(WebCore::TextCheckingHelper::findFirstMisspelling): Ditto. Also separated out assertions
that were asserting multiple things with &&.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.
(WebCore::TextCheckingHelper::findFirstGrammarDetail): Ditto.
(WebCore::TextCheckingHelper::findFirstBadGrammar): Ditto.
(WebCore::TextCheckingHelper::isUngrammatical): Ditto.
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange): Ditto.
(WebCore::checkTextOfParagraph): Ditto.
* editing/TextCheckingHelper.h: Made TextCheckingParagraph::text public. Deleted
TextCheckingParagraph::textDeprecatedCharacters. Added comments about additional
TextCheckingParagraph refinements. Changed checkTextOfParagraph to take a client
reference instead of pointer and StringView instead of characters pointer with length.
* editing/TextIterator.cpp:
(WebCore::TextIterator::appendTextToStringBuilder): Use data members directly,
rather than using functions, since we already checked m_textCharacters for null.
(WebCore::CharacterIterator::string): Use text() instead of characters().
(WebCore::WordAwareIterator::WordAwareIterator): Removed initialization of
m_previousText now that it's a StringView rather than a pointer.
(WebCore::WordAwareIterator::advance): Use TextIterator::text instead of
TextIterator::characters. Also added a FIXME about a fundamental problem
with the implementation of this class!
(WebCore::WordAwareIterator::length): Updated for m_previousText change.
(WebCore::WordAwareIterator::text): Replaced WordAwareIterator::characters with this.
(WebCore::SearchBuffer::append): Changed to take a StringView.
(WebCore::SearchBuffer::prependContext): Ditto.
(WebCore::SearchBuffer::isWordStartMatch): Use StringView.
(WebCore::SearchBuffer::search): Ditto.
(WebCore::findPlainText): Ditto.
* editing/TextIterator.h: Added TextIterator::text that returns a StringView, and
renamed TextIterator::characters to TextIterator::deprecatedTextIteratorCharacters
(easy to search for in source code). Added SimplifiedBackwardsTextIterator::text
and removed SimplifiedBackwardsTextIterator::characters. Added CharacterIterator::text,
and removed CharacterIterator::characters. Added WordAwareIterator::text and removed
WorkdAwareIterator::characters. Changed WordAwareIterator data members to use StringView.
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::appendTrailingWhitespace): Use TextIterator::text instead
of TextIterator::characters.
* editing/VisibleUnits.cpp:
(WebCore::previousBoundary): Updated to use StringView.
(WebCore::nextBoundary): Ditto.
(WebCore::startWordBoundary): Ditto.
(WebCore::startOfWord): Ditto.
(WebCore::endWordBoundary): Ditto.
(WebCore::endOfWord): Fixed formatting.
(WebCore::previousWordPositionBoundary): Updated to use StringView.
(WebCore::previousWordPosition): Fixed formatting and got rid of local variable.
(WebCore::nextWordPositionBoundary): Updated to use StringView.
(WebCore::nextWordPosition): Fixed formatting and got rid of local variable.
(WebCore::inSameLine): Fixed formatting.
(WebCore::isStartOfLine): Ditto.
(WebCore::isEndOfLine): Ditto.
(WebCore::absoluteLineDirectionPointToLocalPointInBlock): Changed to take a reference.
(WebCore::previousLinePosition): Fixed formatting chand changed to pass a reference.
(WebCore::nextLinePosition): Ditto.
(WebCore::startSentenceBoundary): Updated to use StringView and got rid of a local.
(WebCore::startOfSentence): Fixed formatting.
(WebCore::endSentenceBoundary): Updated to use StringView and got rid of a local.
(WebCore::endOfSentence): Fixed formatting.
(WebCore::previousSentencePositionBoundary): Updated to use StringView and got rid of
a local.
(WebCore::previousSentencePosition): Ditto.
(WebCore::nextSentencePositionBoundary): Ditto.
(WebCore::nextSentencePosition): Fixed formatting.
(WebCore::endOfParagraph): Ditto.
(WebCore::inSameParagraph): Ditto.
(WebCore::isStartOfParagraph): Ditto.
(WebCore::isEndOfParagraph): Ditto.
(WebCore::inSameBlock): Ditto.
(WebCore::isStartOfBlock): Ditto.
(WebCore::isEndOfBlock): Ditto.
(WebCore::startOfDocument): Ditto.
(WebCore::endOfDocument): Ditto.
(WebCore::inSameDocument): Ditto.
(WebCore::isStartOfDocument): Ditto.
(WebCore::isEndOfDocument): Ditto.
(WebCore::isEndOfEditableOrNonEditableContent): Ditto.
* loader/EmptyClients.h: Use StringView.
* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter editingAttributedStringFromRange:]): Use StringView.
* platform/text/TextBoundaries.cpp:
(WebCore::endOfFirstWordBoundaryContext): Use StringView and unsigned.
(WebCore::startOfLastWordBoundaryContext): Ditto.
* platform/text/TextBoundaries.h: Change interfaces to use StringView,
and in some cases, unsigned instead of int. All call sites were better off
with unsigned.
* platform/text/TextCheckerClient.h: Use StringView.
* platform/text/mac/TextBoundaries.mm: Changed conditionals to say
USE(APPKIT) instead of PLATFORM(IOS), since that's the real issue.
(WebCore::isSkipCharacter): Tweaked formatting.
(WebCore::isWhitespaceCharacter): Ditto.
(WebCore::isWordDelimitingCharacter): Ditto, also removed local variable.
(WebCore::isSymbolCharacter): Ditto.
(WebCore::tokenizerForString): Ditto.
(WebCore::findSimpleWordBoundary): Use StringView. Also changed to mostly
use unsigned instead of int.
(WebCore::findComplexWordBoundary): Use StringView. Also restructured to
be much more readable, with early returns and such.
(WebCore::findWordBoundary): Use StringView and unsigned.
(WebCore::findEndWordBoundary): Removed redudant copy of the findWordBoundary
function and changed this to just call findWordBoundary. The reason this
function exists is to optimize this case for some non-Mac, non-iOS platforms.
We can always do that for Mac and/or iOS later if we like.
(WebCore::findNextWordFromIndex): Use StringView. Also use wordBreakIterator
instead of using UBreakIterator directly so we get a cached iterator instead
of creating and destroying a new one each time this function is called.
* bindings/objc/DOMUIKitExtensions.mm: Removed unneeded includes.
* dom/Element.cpp: Ditto.
* dom/PositionIterator.cpp: Ditto.
* editing/ApplyBlockElementCommand.cpp: Ditto.
* editing/IndentOutdentCommand.cpp: Ditto.
* editing/InsertListCommand.cpp: Ditto.
* editing/markup.cpp: Ditto.
* html/HTMLElement.cpp: Ditto.
* html/HTMLTextAreaElement.cpp: Ditto.
* page/Frame.cpp: Ditto.
* rendering/RenderTextControl.cpp: Ditto.
2014-02-08 Andreas Kling <akling@apple.com>
Remove two unused function declarations.
Scrub "highQualityRepaintTimerFired" declarations from RenderImage
and RenderBoxModelObject since they're not actually defined.
* rendering/RenderBoxModelObject.h:
* rendering/RenderImage.h:
2014-02-08 Andreas Kling <akling@apple.com>
CTTE: SVGTRefTargetEventListener is always owned by SVGTRefElement.
<https://webkit.org/b/128432>
Tighten up the relationship between SVGTRefElement and its internal
event listener helper by storing the listener in a Ref, and making
the listeners backpointer to the element be a reference.
Reviewed by Anders Carlsson.
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefTargetEventListener::create):
(WebCore::SVGTRefTargetEventListener::SVGTRefTargetEventListener):
(WebCore::SVGTRefTargetEventListener::operator==):
(WebCore::SVGTRefTargetEventListener::handleEvent):
(WebCore::SVGTRefElement::SVGTRefElement):
* svg/SVGTRefElement.h:
2014-02-07 Andreas Kling <akling@apple.com>
Devirtualize RenderBlockFlowRareData.
<https://webkit.org/b/128427>
This class had a virtual destructor for no reason. Removing it
shrinks RenderBlockFlowRareData by 8 bytes.
Reviewed by Anders Carlsson.
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::~RenderBlockFlowRareData):
2014-02-08 Andreas Kling <akling@apple.com>
Use renderer iterators in two more places.
<https://webkit.org/b/128371>
Reviewed by Antti Koivisto.
* dom/Position.cpp:
(WebCore::Position::primaryDirection):
Use lineageOfType instead of walking the parent chain.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::insertOnlyThisLayer):
Use childrenOfType instead of walking the children.
2014-02-07 David Kilzer <ddkilzer@apple.com>
[ASan] Use new/delete in PODFreeListArena
<http://webkit.org/b/128437>
Reviewed by Oliver Hunt.
* platform/PODFreeListArena.h:
(WebCore::PODFreeListArena::allocateObject): Use new when
ADDRESS_SANITIZER is defined.
(WebCore::PODFreeListArena::freeObject): Use delete when
ADDRESS_SANITIZER is defined.
2014-02-07 Ryosuke Niwa <rniwa@webkit.org>
Merge updateSelectionCachesIfSelectionIsInsideTextFormControl into setSelectionWithoutUpdatingAppearance
https://bugs.webkit.org/show_bug.cgi?id=128439
Reviewed by Anders Carlsson.
FrameSelection::selectAll had a superfluous call to updateSelectionCachesIfSelectionIsInsideTextFormControl
because it wasn't setting UserTriggered option to avoid revealing selection.
Call setSelection with UserTriggered and recently added DoNotRevealSelection option and merge
updateSelectionCachesIfSelectionIsInsideTextFormControl into setSelectionWithoutUpdatingAppearance.
Also rename local variables in setSelectionWithoutUpdatingAppearance, newSelection to
newSelectionPossiblyWithoutDirection and s to newSelection so that they're self explanatory.
In addition, we now update the input element's selection caches before calling
selectFrameElementInParentIfFullySelected but this should be fine because selection cannot simultaneously
select the entire document and be inside a text form control.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::selectAll):
2014-02-07 Ryosuke Niwa <rniwa@webkit.org>
EFL build fix attempt after r163662.
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeIDBKey):
2014-02-07 Ryosuke Niwa <rniwa@webkit.org>
FrameSelection's destructor shouldn't notify accessibility
https://bugs.webkit.org/show_bug.cgi?id=128421
Reviewed by Benjamin Poulain.
Extracted setSelectionWithoutUpdatingAppearance out of setSelection and called it in prepareForDestruction
instead of setting DoNotUpdateAppearance option. This new function doesn't reveal selection or notify
accessibility code in addition to not updating appearance.
Note that all implementations of notifyAccessibilityForSelectionChange in FrameSelectionAtk.cpp and
FrameSelectionMac.mm exit early when the selection type is not caret or either start or end is null,
which is already the case inside FrameSelection's destructor. In addition, revealSelection is never called
when selection change was not triggered by user so there should be no behavioral change from this patch.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::prepareForDestruction):
* editing/FrameSelection.h:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Added the trivial implementation in the case
accessibility is disabled to tidy up call sites.
2014-02-07 Martin Robinson <mrobinson@igalia.com>
Build fix for the GTK+ CMake build
* PlatformGTK.cmake: VTTCue.idl was unintentionally added to the list of GObject DOM bindings
output files. Remove it.
2014-02-07 Dirk Schulze <krit@webkit.org>
Per CSSOM, computed rect() function values must be comma separated
https://bugs.webkit.org/show_bug.cgi?id=128401
Reviewed by Simon Fraser.
Updated tests.
* css/Rect.h:
(WebCore::Rect::generateCSSString):
2014-02-07 Gavin Barraclough <barraclough@apple.com>
Remove isInitialState flag from Page::setViewState
https://bugs.webkit.org/show_bug.cgi?id=128428
Reviewed by Sam Weinig.
* WebCore.exp.in:
- removed isInitialState.
* page/Page.cpp:
(WebCore::Page::setViewState):
- removed isInitialState.
(WebCore::Page::setIsVisible):
- removed isInitialState.
(WebCore::Page::setIsVisibleInternal):
- removed isInitialState.
* page/Page.h:
- removed isInitialState.
2014-02-07 Simon Fraser <simon.fraser@apple.com>
Encode requestedScrollPosition on ScrollingStateScrollingNodes to send to the UI process
https://bugs.webkit.org/show_bug.cgi?id=128416
Reviewed by Tim Horton.
Change requestedScrollPosition() to be a FloatPoint, and export
ScrollingStateScrollingNode::setRequestedScrollPosition(WebCore::FloatPoint const&, bool)
for WK2.
* WebCore.exp.in:
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
* page/scrolling/ScrollingStateScrollingNode.h:
2014-02-07 Beth Dakin <bdakin@apple.com>
Should get rid of TileController's CoverageForSlowScrolling mode
https://bugs.webkit.org/show_bug.cgi?id=128339
Reviewed by Simon Fraser.
This patch gets rid of CoverageForSlowScrolling in the TileController. It also
makes sure that margin tiles are properly invalidated on pages with slow repaint
objects that cause slow scrolling.
When we invalidate because of slow scrolling, don’t clip the update rect to the
layer bounds.
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsSlowPath):
Call new RenderObject paint function repaintSlowRepaintObject() instead of the
more-generic repaint().
(WebCore::FrameView::repaintSlowRepaintObjects):
Remove CoverageForSlowScrolling.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
Handle repainting a slow repaint object. Don’t clip when we shouldn’t, use the
RenderView’s backgroundRect as a repaintRect when this is the root background
since that will take the extended background rect into consideration.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintSlowRepaintObject):
* rendering/RenderObject.h:
2014-02-06 Filip Pizlo <fpizlo@apple.com>
More FTL build scaffolding
https://bugs.webkit.org/show_bug.cgi?id=128330
Reviewed by Geoffrey Garen.
The FTL already has tests.
* Configurations/FeatureDefines.xcconfig:
2014-02-07 Alexey Proskuryakov <ap@apple.com>
Remove some unused functions from SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128407
Reviewed by Anders Carlsson.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::undefinedValue):
(WebCore::SerializedScriptValue::nullValue):
* bindings/js/SerializedScriptValue.h:
2014-02-07 Brady Eidson <beidson@apple.com>
IDB: Some Mozilla cursor mutation tests fail
<rdar://problem/16011680> and https://bugs.webkit.org/show_bug.cgi?id=128374
Reviewed by Sam Weinig.
Tested by:
storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html
storage/indexeddb/mozilla/cursor-mutation.html
The previous comment about LevelDB was wrong.
Apparently calling onSuccess() with a null SharedBuffer means the cursor reached the end.
Update to distinguish between an error and reaching the end:
* Modules/indexeddb/IDBCursorBackendOperations.cpp:
(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):
Add a new IDBKey type - Maximum - To be used in comparisons between keys.
This will allow the DatabaseProcess to operate on the range of all keys:
* Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::compare):
* Modules/indexeddb/IDBKey.h:
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::IDBKeyData):
(WebCore::IDBKeyData::maybeCreateIDBKey):
(WebCore::IDBKeyData::isolatedCopy):
(WebCore::IDBKeyData::encode):
(WebCore::IDBKeyData::decode):
(WebCore::IDBKeyData::compare):
(WebCore::IDBKeyData::loggingString):
* Modules/indexeddb/IDBKeyData.h:
(WebCore::IDBKeyData::minimum):
(WebCore::IDBKeyData::maximum):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::idbKeyToJSValue):
Remove an unused callback:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBRequest.h:
2014-02-07 Roger Fong <roger_fong@apple.com>
CGContextGetUserSpaceToDeviceSpaceTransform returns the wrong value on Windows.
https://bugs.webkit.org/show_bug.cgi?id=128395.
Rubberstamped by Zalan Bujtas.
The call essentially returns 0 and causes an assertion failure when running many layout tests.
* platform/graphics/cg/GraphicsContextCG.cpp: Don't make the call on Windows. We default to 1.
(WebCore::GraphicsContext::platformInit):
2014-02-07 Dan Bernstein <mitz@apple.com>
iOS build fix.
* platform/PlatformKeyboardEvent.h: Fixed a typo.
2014-02-07 Dan Bernstein <mitz@apple.com>
Stop using PLATFORM(MAC) in WebCore/platform except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128404
Reviewed by Anders Carlsson.
* Configurations/WebCore.xcconfig: Removed KeyEventMac.mm from
EXCLUDED_SOURCE_FILE_NAMES_iphoneos, because that file contains !PLATFORM(IOS) guards.
Removed WheelEventMac.mm from the same definition, because that file no longer exists.
* platform/ContentFilter.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/ContextMenu.h: Ditto.
* platform/ContextMenuItem.h: Ditto.
* platform/Cursor.cpp: Ditto.
* platform/Cursor.h: Ditto.
* platform/DragData.cpp: Ditto.
* platform/DragImage.cpp: Ditto.
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): Changed PLATFORM(MAC) to USE(CF) && !PLATFORM(WIN).
* platform/LocalizedStrings.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::contextMenuItemTagSearchWeb):
* platform/LocalizedStrings.h: Ditto.
* platform/MIMETypeRegistry.cpp: Ditto.
(WebCore::initializeSupportedImageMIMETypesForEncoding):
* platform/PasteboardStrategy.h: Ditto.
* platform/PlatformKeyboardEvent.h: Ditto.
* platform/PlatformMenuDescription.h: Ditto.
* platform/PlatformSpeechSynthesizer.h: Ditto.
* platform/PlatformWheelEvent.h: Ditto.
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/SchemeRegistry.cpp: Ditto.
(WebCore::localURLSchemes):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely):
* platform/ScrollAnimator.cpp: Ditto.
(WebCore::ScrollAnimator::handleWheelEvent):
* platform/ScrollAnimator.h: Ditto.
* platform/ScrollView.cpp: Ditto.
* platform/ScrollView.h: Ditto.
* platform/ScrollbarThemeComposite.h: Ditto.
* platform/SharedBuffer.h: Changed PLATFORM(MAC) to USE(FOUNDATION) around NSData-related
code.
* platform/URL.h: Changed PLATFORM(MAC) to USE(FOUNDATION) around NSURL-related code.
* platform/Widget.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/Widget.h: Ditto.
* platform/audio/AudioSession.cpp: Changed !PLATFORM(MAC) && !PLATFORM(IOS) to
!PLATFORM(COCOA).
* platform/audio/HRTFElevation.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/audio/MediaSessionManager.cpp: Ditto.
* platform/audio/mac/AudioSessionMac.cpp: Updated comment.
* platform/audio/mac/MediaSessionManagerMac.cpp: Removed PLATFORM(MAC) from Cocoa-only file.
* platform/cf/SharedBufferCF.cpp: Changed !PLATFORM(MAC) to !USE(FOUNDATION) and updated
comment.
* platform/cf/URLCF.cpp: Changed !PLATFORM(MAC) to !USE(FOUNDATION).
* platform/graphics/BitmapImage.h: Changed one instance of PLATFORM(MAC) to
USE(CG) || USE(APPKIT), and another to PLATFORM(COCOA).
* platform/graphics/DisplayRefreshMonitor.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
* platform/graphics/DisplayRefreshMonitor.h: Ditto.
* platform/graphics/FloatPoint.h: Collapsed nested #ifs into a single #if.
* platform/graphics/FloatRect.h: Ditto.
* platform/graphics/FloatSize.h: Ditto.
* platform/graphics/Font.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/graphics/Font.h: Ditto.
* platform/graphics/FontCache.cpp: Ditto.
(WebCore::FontCache::getFontData):
* platform/graphics/FontCache.h: Ditto. Also removed redundant friend class declaration.
* platform/graphics/FontGlyphs.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::FontGlyphs::glyphDataAndPageForCharacter):
* platform/graphics/GlyphPage.h: Ditto.
* platform/graphics/GraphicsContext3D.h: Ditto.
* platform/graphics/Image.h: Changed PLATFORM(MAC) to USE(APPKIT) around use of NSImage.
Changed another PLATFORM(MAC) to PLATFORM(COCOA).
* platform/graphics/IntRect.h: Collapsed nested #ifs into a single #if.
* platform/graphics/IntSize.h: Ditto.
* platform/graphics/MediaPlayer.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::installedMediaEngines):
(WebCore::MediaPlayer::supportsType):
* platform/graphics/SimpleFontData.cpp: Ditto.
(WebCore::SimpleFontData::nonSyntheticItalicFontData):
(WebCore::SimpleFontData::DerivedFontData::~DerivedFontData):
* platform/graphics/SimpleFontData.h: Ditto.
* platform/graphics/TiledBacking.h: Ditto.
* platform/graphics/ca/GraphicsLayerCA.cpp: Ditto.
(WebCore::GraphicsLayerCA::filtersCanBeComposited):
(WebCore::GraphicsLayerCA::createPlatformCALayer):
* platform/graphics/ca/LayerFlushScheduler.h: Ditto.
* platform/graphics/ca/PlatformCAAnimation.h: Ditto.
* platform/graphics/ca/PlatformCAFilters.h: Ditto.
* platform/graphics/ca/PlatformCALayer.h: Ditto.
* platform/graphics/cg/BitmapImageCG.cpp: Ditto.
* platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
(WebCore::GraphicsContext::setAllowsFontSmoothing):
* platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Ditto.
* platform/graphics/cg/ImageBufferCG.cpp: Ditto.
* platform/graphics/cg/ImageBufferDataCG.h: Ditto.
* platform/graphics/cg/ImageCG.cpp: Ditto.
* platform/graphics/cg/ImageSourceCG.cpp: Ditto.
(WebCore::ImageSource::setData):
* platform/graphics/cg/ImageSourceCG.h: Ditto.
* platform/graphics/cg/PathCG.cpp: Ditto.
(WebCore::Path::platformAddPathForRoundedRect):
* platform/graphics/cg/PatternCG.cpp: Ditto.
* platform/graphics/gpu/DrawingBuffer.h: Ditto.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::createQTMovieView): Removed PLATFORM(MAC) guards, since
this file is only used on Mac and iOS.
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension): Changed the GL_EXT_draw_buffers check to
match the implementation.
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: Changed PLATFORM(MAC) to
PLATFORM(COCOA).
* platform/mac/KeyEventMac.mm: Added !PLATFORM(IOS).
* platform/mac/PlatformEventFactoryMac.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/mac/WebCoreSystemInterface.h: Ditto. Removed redundant check for PLATFORM(MAC).
* platform/mac/WebCoreSystemInterface.mm: Removed redundant check for PLATFORM(MAC).
* platform/network/Credential.h: Changed PLATFORM(IOS) || PLATFORM(MAC) to PLATFORM(COCOA).
* platform/network/NetworkStateNotifier.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/network/NetworkStorageSession.h: Ditto.
* platform/network/NetworkingContext.h: Ditto.
* platform/network/ProtectionSpace.cpp: Ditto.
(WebCore::ProtectionSpace::receivesCredentialSecurely):
* platform/network/ResourceHandle.cpp: Ditto.
(WebCore::ResourceHandle::clearAuthentication):
(WebCore::ResourceHandle::shouldContentSniffURL):
* platform/network/ResourceHandle.h: Ditto.
* platform/network/ResourceHandleClient.cpp: Ditto.
* platform/network/ResourceHandleClient.h: Ditto.
* platform/network/ResourceHandleInternal.h: Ditto.
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/ResourceRequestBase.cpp: Ditto.
* platform/network/cf/AuthenticationCF.h: Ditto.
* platform/network/cf/CookieStorageCFNet.cpp: Ditto.
* platform/network/cf/CredentialStorageCFNet.cpp: Ditto.
* platform/network/cf/FormDataStreamCFNet.cpp: Ditto.
* platform/network/cf/NetworkStorageSessionCFNet.cpp: Ditto.
(WebCore::NetworkStorageSession::switchToNewTestingSession):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
* platform/network/cf/ResourceError.h: Ditto.
* platform/network/cf/ResourceHandleCFNet.cpp: Ditto.
(WebCore::ResourceHandle::createCFURLConnection):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
* platform/network/cf/ResourceRequest.h: Ditto.
(WebCore::ResourceRequest::ResourceRequest):
* platform/network/cf/ResourceRequestCFNet.cpp: Ditto.
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::setStorageSession):
* platform/network/cf/ResourceResponse.h: Ditto.
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
* platform/network/mac/ResourceResponseMac.mm: Ditto.
* platform/posix/FileSystemPOSIX.cpp: Changed PLATFORM(MAC) to OS(DARWIN) &&
!PLATFORM(EFL) && !PLATFORM(GTK).
* platform/text/TextBoundaries.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
2014-02-07 Ryosuke Niwa <rniwa@webkit.org>
Revert r154384 and r154674 as they broke selection rect computations for text with ligatures.
* platform/graphics/Font.cpp:
(WebCore::Font::drawText):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::selectionRectForText):
(WebCore::Font::offsetForPosition):
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText):
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::offsetForPositionForSimpleText):
* platform/graphics/GlyphBuffer.h:
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advanceOneCharacter):
* platform/graphics/WidthIterator.h:
2014-02-07 Benjamin Poulain <bpoulain@apple.com>
[WK2] Add support for text document viewport configuration
https://bugs.webkit.org/show_bug.cgi?id=128359
Reviewed by Simon Fraser.
Define a set of ViewportParameters suitable for displaying text documents.
Add a documents class for text document to differentiate them from other type of documents.
* WebCore.exp.in:
* dom/Document.h:
(WebCore::Document::isTextDocument):
* html/TextDocument.cpp:
(WebCore::TextDocument::TextDocument):
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::webpageParameters):
(WebCore::ViewportConfiguration::plainTextParameters):
* page/ViewportConfiguration.h:
2014-02-07 Bem Jones-Bey <bjonesbe@adobe.com>
FloatingObject::unsafeClone should not copy m_originatingLine
https://bugs.webkit.org/show_bug.cgi?id=128381
Reviewed by Andreas Kling.
Copying the originatingLine allows to break the invariant that the
floating object must only contain lines that are owned by the renderer
it is attached to.
* rendering/FloatingObjects.cpp:
(WebCore::FloatingObject::unsafeClone):
2014-02-07 Brendan Long <b.long@cablelabs.com>
Update TextTrack API to current spec
https://bugs.webkit.org/show_bug.cgi?id=122218
Refactoring VTTCue out of TextTrackCue.
Reviewed by Eric Carlson.
Test: media/track/track-vttcue.html
* CMakeLists.txt: Add VTTCue and rename RenderTextTrackCue to RenderVTTCue.
* DerivedSources.cpp: Same.
* DerivedSources.make: Same.
* GNUmakefile.list.am: Same.
* PlatformGTK.cmake: Same.
* WebCore.vcxproj/WebCore.vcxproj: Same.
* WebCore.vcxproj/WebCore.vcxproj.filters: Same.
* WebCore.xcodeproj/project.pbxproj: Same.
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJS): Use VTTCue DOM wrapper for VTTCue and its subclasses.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Convert to VTTCue as needed.
(WebCore::HTMLMediaElement::textTrackRemoveCue): Same.
* html/HTMLMediaElement.h: Only print cue.text in debug output if the cue type has a .text attribute
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Convert to VTTCue as needed, and fix TextTrackCueBox to VTTCueBox.
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Convert to VTTCue as needed.
* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::addGenericCue): Use refactored VTTCue attributes.
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Use VTTCue's constructor instead of deprecated TextTrackCue constructor.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::setMode): Convert to VTTCue as needed.
(WebCore::TextTrack::hasCue): Make this function only accept VTTCues, since it's only used for them anyway, and convert existing cues to VTTCues as needed.
* html/track/TextTrack.h: Same as hasCue above.
* html/track/TextTrackCue.cpp: Refactor a lot of code out. Everything that was removed went to VTTCue.cpp.
(WebCore::TextTrackCue::create): For backwards compatibility, just call VTTCue::create().
(WebCore::TextTrackCue::TextTrackCue): Refactor a lot of code out.
(WebCore::TextTrackCue::~TextTrackCue): Same.
(WebCore::TextTrackCue::didChange): Same.
(WebCore::TextTrackCue::setIsActive): Same.
* html/track/TextTrackCue.h: Same.
* html/track/TextTrackCue.idl: Remove VTTCue attributes and add custom toJS function.
* html/track/TextTrackCueGeneric.cpp: Use VTTCue instead of TextTrackCue.
* html/track/TextTrackCueGeneric.h: Same.
* html/track/VTTCue.cpp: Copied from Source/WebCore/html/track/TextTrackCue.cpp.
* html/track/VTTCue.h: Copied from Source/WebCore/html/track/TextTrackCue.h.
* html/track/VTTCue.idl: Copied from Source/WebCore/html/track/TextTrackCue.idl.
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::getNewCues): Use VTTCue instead of TextTrackCue.
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride): Use VTTCueBox instead of TextTrackCueBox.
* rendering/RenderVTTCue.cpp: Renamed from Source/WebCore/rendering/RenderTextTrackCue.cpp. Changed to use VTTCue instead of TextTrackCue.
* rendering/RenderVTTCue.h: Renamed from Source/WebCore/rendering/RenderTextTrackCue.h. Changed to use VTTCue instead of TextTrackCue.
* rendering/RenderingAllInOne.cpp: Rename RenderTextTrackCue to RenderVTTCue.
2014-02-07 Gavin Barraclough <barraclough@apple.com>
Should report user input to PageThrottler
https://bugs.webkit.org/show_bug.cgi?id=128398
Reviewed by Tim Horton.
Make sure we wake from AppNap if there is user interaction.
* page/PageThrottler.h:
(WebCore::PageThrottler::didReceiveUserInput):
(WebCore::PageThrottler::pluginDidEvaluate):
- added, these call reportInterestingEvent()
2014-02-07 Jer Noble <jer.noble@apple.com>
Unreviewed build fix for 32-bit iOS.
Use magic ? values to allow the exported symbol to be different on 32- and 64-bit builds.
* WebCore.exp.in:
2014-02-07 Anders Carlsson <andersca@apple.com>
Convert ProgressTracker to std::chrono
https://bugs.webkit.org/show_bug.cgi?id=128377
Reviewed by Andreas Kling.
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::ProgressTracker):
(WebCore::ProgressTracker::reset):
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::incrementProgress):
* loader/ProgressTracker.h:
2014-02-07 Alexey Proskuryakov <ap@apple.com>
32-bit build fix.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
2014-02-07 Mihai Tica <mitica@adobe.com>
[CSS Background Blending] Unprefix the -webkit-background-blend-mode property
https://bugs.webkit.org/show_bug.cgi?id=128270
Reviewed by Dean Jackson.
This patch consist of unprefixing the -webkit-background-blend-mode.
The property now changes to background-blend-mode.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillProperty):
* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2014-02-07 Samuel White <samuel_white@apple.com>
AX: Find and select text with respect to insertion point using accessibility API.
https://bugs.webkit.org/show_bug.cgi?id=128026
Reviewed by Chris Fleizach.
Added facilities to support semi-ambiguous text selection through the accessibility API. All
requests are handled with respect to the current selection. The requests are disambiguated in
WebCore using passed parameters such as: SelectStringAfterSelection , ..Before.., ..ClosestTo...,
etc. Callers can also supply an array of strings to select and the closest that matches the
disambiguation criteria will be used.
Test: platform/mac/accessibility/select-text.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::rangeClosestToRange):
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection):
(WebCore::AccessibilityObject::selectionRange):
(WebCore::AccessibilityObject::selectText):
(WebCore::AccessibilityObject::frame):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilitySelectTextCriteria::AccessibilitySelectTextCriteria):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
* dom/Position.cpp:
(WebCore::Position::positionCountBetweenPositions):
* dom/Position.h:
2014-02-07 Bem Jones-Bey <bjonesbe@adobe.com>
FloatingObject m_paginationStrut should be LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=119808
Reviewed by Andreas Kling.
Make the paginationStrut in FloatingObject have the same type as all
of the other paginationStruts in the code.
* rendering/FloatingObjects.h:
(WebCore::FloatingObject::paginationStrut):
(WebCore::FloatingObject::setPaginationStrut):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::positionNewFloatOnLine):
2014-02-06 Brady Eidson <beidson@apple.com>
IDB: storage/indexeddb/create-index-with-integer-keys.html fails
<rdar://problem/16002857> and https://bugs.webkit.org/show_bug.cgi?id=128316
Reviewed by Geoff Garen.
Tested by storage/indexeddb/create-index-with-integer-keys.html (and probably some others)
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update): Update createIDBKeyFromScriptValueAndKeyPath usage.
(WebCore::IDBCursor::setValueReady): Update createIDBKeyFromScriptValueAndKeyPath usage.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put): Update usage of binding utilities.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): Update createIDBKeyFromScriptValueAndKeyPath usage.
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::createIDBKeyFromScriptValueAndKeyPath): Changed to take an ExecState*.
(WebCore::deserializeIDBValueBuffer): Added new version that starts with ExecState* and Vector<uint8_t>
instead of RequestState and SharedBuffer.
(WebCore::generateIndexKeysForValue): Moved from IDBObjectStore.cpp and changed to take an ExecState*
* bindings/js/IDBBindingUtilities.h:
Added new blob fetcher that works with uint8_t buffers:
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::getColumnBlobAsVector):
* platform/sql/SQLiteStatement.h:
* WebCore.exp.in:
2014-02-07 Frédéric Wang <fred.wang@free.fr>
childShouldCreateRenderer should return false for the mspace element
https://bugs.webkit.org/show_bug.cgi?id=128325
Reviewed by Chris Fleizach.
The mspace element can not have children so this makes its
childShouldCreateRenderer always return false.
Test: mathml/presentation/mspace-children.html
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::childShouldCreateRenderer):
2014-02-07 Javier Fernandez <jfernandez@igalia.com>
[CSS Grid Layout] Rename grid-definition-{columns|rows} to match the new syntax
https://bugs.webkit.org/show_bug.cgi?id=127989
Reviewed by Andreas Kling.
In the latest WD, grid-definition-{columns|rows} were renamed to grid-template-{columns|rows}.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2014-02-07 Andreas Kling <akling@apple.com>
CTTE: DocumentThreadableLoader always has a Document.
<https://webkit.org/b/128364>
DocumentThreadableLoader always has an "owner" Document, so store
that as a reference instead of a pointer. Removed some unnecessary
assertions exposed by this change.
Reviewed by Antti Koivisto.
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadResourceSynchronously):
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightFailure):
(WebCore::DocumentThreadableLoader::loadRequest):
(WebCore::DocumentThreadableLoader::securityOrigin):
* loader/DocumentThreadableLoader.h:
* loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
2014-02-07 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Vector-effect updates require a re-layout
https://bugs.webkit.org/show_bug.cgi?id=127553
Reviewed by Andreas Kling.
As noted in the stale SVGRenderStyle::diff() comment, now that layout() observes vector-effect
we need to trigger a re-layout on attribute changes.
Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152570&view=revision
Tests: svg/custom/non-scaling-stroke-update-expected.svg
svg/custom/non-scaling-stroke-update.svg
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::diff):
2014-02-07 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
Renaming isTableElement() to isRenderedTable() as per the FIXME comment
https://bugs.webkit.org/show_bug.cgi?id=127769
Reviewed by Andreas Kling.
Rename method and use IsTable() instead of local type checking.
* dom/Position.cpp:
(WebCore::Position::parentAnchoredEquivalent):
(WebCore::Position::upstream):
(WebCore::Position::downstream):
(WebCore::Position::isCandidate):
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphWithClones):
* editing/FrameSelection.cpp:
(WebCore::caretRendersInsideNode):
* editing/VisibleUnits.cpp:
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):
* editing/htmlediting.cpp:
(WebCore::firstInSpecialElement):
(WebCore::lastInSpecialElement):
(WebCore::isRenderedTable):
* editing/htmlediting.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::localCaretRect):
2014-02-06 Brady Eidson <beidson@apple.com>
IDB: Remove the entirely unnecessary "Value Key" concept
https://bugs.webkit.org/show_bug.cgi?id=128360
Reviewed by Dan Bernstein.
No new tests (No change in behavior)
All cursor operations were set up to pass a value key parameter around, but it was:
1 - Entirely unused
2 - The same thing that the primary key is supposed to be
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBCursorBackend.cpp:
(WebCore::IDBCursorBackend::updateCursorData):
(WebCore::IDBCursorBackend::clear):
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBCursorBackendOperations.cpp:
(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::OpenCursorOperation::perform):
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::cursorAdvance):
(WebCore::IDBServerConnectionLevelDB::cursorIterate):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2014-02-06 Jeremy Jones <jeremyj@apple.com>
Add support for AVKit fullscreen to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=128143
Reviewed by Simon Fraser.
Rename overloaded functions to prevent ambiguous template parameter
compile error in generated code.
Rename overloaded exitFullscreen to exitFullscreenWithCompletionHandler.
Rename overloaded enterFullscreen to enterFullscreenWithCompletionHandler.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController exitFullscreen]):
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::enterFullscreenWithCompletionHandler):
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::exitFullscreenWithCompletionHandler):
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
* platform/ios/WebVideoFullscreenModelMediaElement.h:
2014-02-06 Jeffrey Pfau <jpfau@apple.com>
loadSubframe can return null in SubframeLoader::loadOrRedirectSubframe
https://bugs.webkit.org/show_bug.cgi?id=128344
Reviewed by Ryosuke Niwa.
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadOrRedirectSubframe):
2014-02-06 Andreas Kling <akling@apple.com>
Use child iterator in HTMLDetailsElement::findMainSummary().
<https://webkit.org/b/128335>
Reviewed by Antti Koivisto.
* html/HTMLDetailsElement.h:
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::findMainSummary):
2014-02-06 Antti Koivisto <antti@apple.com>
Add missing &.
* css/StyleInvalidationAnalysis.cpp:
(WebCore::shouldDirtyAllStyle):
2014-02-06 Antti Koivisto <antti@apple.com>
Check selectors exactly when invalidating style
https://bugs.webkit.org/show_bug.cgi?id=128321
Reviewed by Andreas Kling.
Selectors are now really fast to match with the JIT. Take advantage of this by invalidating
the document style exactly when a new stylesheet arrives (instead of using heuristics).
This reduces need for large style recalculations in some common cases.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::clearMatchedRules):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
* css/ElementRuleCollector.h:
(WebCore::ElementRuleCollector::hasMatchedRules):
* css/RuleSet.h:
(WebCore::RuleSet::hasShadowPseudoElementRules):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
* css/SelectorChecker.h:
Add new mode where all pseudo elements match so we can invalidate their element.
* css/StyleInvalidationAnalysis.cpp:
(WebCore::shouldDirtyAllStyle):
(WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
(WebCore::invalidateStyleRecursively):
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
Switch to real selector checker.
* css/StyleInvalidationAnalysis.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::MatchedProperties::~MatchedProperties):
* css/StyleResolver.h:
(WebCore::StyleResolver::mediaQueryEvaluator):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
2014-02-06 Gavin Barraclough <barraclough@apple.com>
Remove ChildProcess::m_activeTasks
https://bugs.webkit.org/show_bug.cgi?id=128342
Reviewed by Anders Carlson.
Currently we funnel a number of different user activities
to a single UserActivity object, which requires a call down
from WebCore to WebKit2. Split these out so we can track
them separately.
* page/ChromeClient.h:
- removed [inc|dec]rementActivePageCount
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
- incrementActivePageCount -> beginActivity
(WebCore::PageThrottler::~PageThrottler):
- decrementActivePageCount -> endActivity
(WebCore::PageThrottler::throttlePage):
- decrementActivePageCount -> endActivity
(WebCore::PageThrottler::unthrottlePage):
- incrementActivePageCount -> beginActivity
* page/PageThrottler.h:
- Added m_pageActivity.
2014-02-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r163558.
http://trac.webkit.org/changeset/163558
https://bugs.webkit.org/show_bug.cgi?id=128350
Breaks scrolling on certain websites (Requested by bfulgham on
#webkit).
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* page/WheelEventDeltaTracker.h:
2014-02-06 Chris Fleizach <cfleizach@apple.com>
AX: Crash in WebCore::AXObjectCache::computedObjectAttributeCache
https://bugs.webkit.org/show_bug.cgi?id=128310
Reviewed by Alexey Proskuryakov.
Be more careful about using axObjectCache() directly since it can return null.
I audited the usage cases of this method and ensured the ptr was not null in cases
where I thought we might get hit by this.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::parentObject):
(WebCore::AccessibilityNodeObject::menuForMenuButton):
(WebCore::AccessibilityNodeObject::menuButtonForMenu):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
(WebCore::AccessibilityObject::findMatchingObjects):
(WebCore::AccessibilityObject::elementAccessibilityHitTest):
(WebCore::AccessibilityObject::axObjectCache):
(WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
(WebCore::AccessibilityObject::accessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::parentObjectIfExists):
(WebCore::AccessibilityRenderObject::parentObject):
(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::isTabItemSelected):
(WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
(WebCore::AccessibilityRenderObject::nodeIsTextControl):
(WebCore::AccessibilityRenderObject::activeDescendant):
(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
(WebCore::AccessibilityRenderObject::observableObject):
(WebCore::AccessibilityRenderObject::textChanged):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addChildScrollbar):
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
2014-02-06 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Rounded Insets Let Content Overlap Shape
https://bugs.webkit.org/show_bug.cgi?id=127852
Reviewed by Bem Jones-Bey.
Using LengthSize to FloatSize conversion from LengthSize.h lead to miscalculated
inset border radius, when the border radius was defined by percentages. This patch
fixes the behavior and removes the incorrect conversion.
Test: fast/shapes/shape-outside-floats/shape-outside-rounded-inset.html
* css/LengthFunctions.cpp:
(WebCore::floatSizeForLengthSize): Add new helper function for LengthSize to FloatSize conversion.
* css/LengthFunctions.h:
* platform/LengthSize.h: Remove floatSize conversion.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Use new helper function to calculate the right with for the inset border radius.
2014-02-06 Joseph Pecoraro <pecoraro@apple.com>
Regenerate JSTestObj now that ScriptArguments moved. Generator knows what to do.
Rubber-stamped by Zalan Bujtas.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
2014-02-04 Jeffrey Pfau <jpfau@apple.com>
Make adoption agency use the task queue
https://bugs.webkit.org/show_bug.cgi?id=109445
Reviewed by Ryosuke Niwa.
Tests: fast/parser/adoption-agency-crash-01.html
fast/parser/adoption-agency-crash-02.html
fast/parser/adoption-agency-crash-03.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::insert):
(WebCore::executeInsertTask):
(WebCore::executeReparentTask):
(WebCore::executeInsertAlreadyParsedChildTask):
(WebCore::executeTakeAllChildrenTask):
(WebCore::executeTask):
(WebCore::HTMLConstructionSite::attachLater):
(WebCore::HTMLConstructionSite::executeQueuedTasks):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::reparent):
(WebCore::HTMLConstructionSite::insertAlreadyParsedChild):
(WebCore::HTMLConstructionSite::takeAllChildren):
(WebCore::HTMLConstructionSite::fosterParent):
* html/parser/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSiteTask::HTMLConstructionSiteTask):
(WebCore::HTMLConstructionSiteTask::oldParent):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2014-02-06 Mark Hahnenberg <mhahnenberg@apple.com>
Heap::writeBarrier shouldn't be static
https://bugs.webkit.org/show_bug.cgi?id=127807
Reviewed by Geoffrey Garen.
Currently it looks up the Heap in which to fire the write barrier by using
the cell passed to it. Almost every call site already has a reference to the
VM or the Heap itself. It seems wasteful to look it up all over again.
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
2014-02-06 Jaehun Lim <ljaehun.lim@samsung.com>
Unreviewed, fix build error on 64bit debug build
Apply static_cast<long long> to int64_t variable when '%lli' is used.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::clearObjectStore):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::setActive):
2014-02-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Console support to JSContext Inspection
https://bugs.webkit.org/show_bug.cgi?id=127941
Reviewed by Geoffrey Garen.
- Move InspectorConsoleAgent and dependencies to JavaScriptCore
and into the Inspector namespace.
- Update Console Message enum types to enum classes and update
all users to the new, simpler names.
- Since we are updating addConsoleMessage callsites anyways, add
ASCIILiteral where appropriate.
- Add WebConsoleAgent base of Page/Worker ConsoleAgent to implement
what could not be pushed into JavaScriptCore.
* CMakeLists.txt:
* DerivedSources.make:
* ForwardingHeaders/inspector/ConsoleMessage.h: Added.
* ForwardingHeaders/inspector/ConsoleTypes.h: Added.
* ForwardingHeaders/inspector/IdentifiersFactory.h: Added.
* ForwardingHeaders/inspector/ScriptArguments.h: Added.
* ForwardingHeaders/inspector/ScriptCallFrame.h: Added.
* ForwardingHeaders/inspector/ScriptCallStack.h: Added.
* ForwardingHeaders/inspector/ScriptCallStackFactory.h: Added.
* ForwardingHeaders/inspector/agents/InspectorConsoleAgent.h: Added.
* GNUmakefile.am:
* GNUmakefile.list.am:
Add / remove files from builds.
* inspector/WebConsoleAgent.h:
* inspector/WebConsoleAgent.cpp: Added.
(WebCore::WebConsoleAgent::WebConsoleAgent):
(WebCore::WebConsoleAgent::setMonitoringXHREnabled):
(WebCore::WebConsoleAgent::frameWindowDiscarded):
(WebCore::WebConsoleAgent::didFinishXHRLoading):
(WebCore::WebConsoleAgent::didReceiveResponse):
(WebCore::WebConsoleAgent::didFailLoading):
(WebCore::WebConsoleAgent::addInspectedHeapObject):
Implement what could not be pushed down into JavaScriptCore.
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::webConsoleAgent):
(WebCore::InstrumentingAgents::setWebConsoleAgent):
Hold a WebConsoleAgent instead of InspectorConsoleAgent.
* Modules/indexeddb/IDBCursor.cpp:
* Modules/indexeddb/IDBDatabase.cpp:
* Modules/indexeddb/IDBTransaction.cpp:
* Modules/quota/DOMWindowQuota.cpp:
(WebCore::DOMWindowQuota::webkitStorageInfo):
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):
* Modules/webaudio/AudioContext.cpp:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::setPanningModel):
* Modules/webdatabase/DatabaseBase.cpp:
(WebCore::DatabaseBase::logErrorMessage):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::logErrorMessage):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
(WebCore::WebSocket::send):
(WebCore::WebSocket::close):
(WebCore::WebSocket::setBinaryType):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::didFailSocketStream):
* Modules/websockets/WebSocketHandshake.cpp:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::JSAudioContextConstructor::constructJSAudioContext):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSDOMBinding.cpp:
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::encrypt):
(WebCore::JSSubtleCrypto::decrypt):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::canExecuteScripts):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallWith):
* bindings/scripts/test/JS/JSTestObj.cpp:
* css/CSSParser.cpp:
(WebCore::CSSParser::logError):
* css/MediaList.cpp:
(WebCore::addResolutionWarningMessageToConsole):
* dom/Document.cpp:
(WebCore::Document::logExceptionToConsole):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::addMessage):
* dom/Document.h:
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::executeScript):
(WebCore::ScriptElement::notifyFinished):
* dom/ScriptExecutionContext.cpp:
* dom/ScriptExecutionContext.h:
* dom/ViewportArguments.cpp:
(WebCore::viewportErrorMessageLevel):
(WebCore::reportViewportWarning):
* fileapi/Blob.cpp:
* fileapi/WebKitBlobBuilder.cpp:
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::getImageData):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::printWarningToConsole):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
* inspector/CommandLineAPIHost.cpp:
* inspector/CommandLineAPIHost.h:
(WebCore::CommandLineAPIHost::init):
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorConsoleAgent.h: Removed.
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
(WebCore::InspectorInstrumentation::consoleCount):
(WebCore::InspectorInstrumentation::stopConsoleTiming):
(WebCore::InspectorInstrumentation::consoleTimeStamp):
(WebCore::InspectorInstrumentation::addProfile):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameWindowDiscardedImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
(WebCore::InspectorInstrumentation::didFailLoadingImpl):
(WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::isConsoleAssertMessage):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::consoleCountImpl):
(WebCore::InspectorInstrumentation::startConsoleTimingImpl):
(WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
(WebCore::InspectorInstrumentation::consoleAgentEnabled):
* inspector/InspectorInstrumentation.h:
* inspector/InspectorLayerTreeAgent.cpp:
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
(WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::buildInitiatorObject):
* inspector/InspectorTimelineAgent.cpp:
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::PageConsoleAgent):
(WebCore::PageConsoleAgent::clearMessages):
(WebCore::PageConsoleAgent::addInspectedNode):
* inspector/PageConsoleAgent.h:
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/PageInjectedScriptHost.h:
* inspector/PageInjectedScriptManager.h:
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
(WebCore::WebConsoleAgent::~WebConsoleAgent):
* inspector/WorkerConsoleAgent.cpp:
(WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
(WebCore::WorkerConsoleAgent::addInspectedNode):
* inspector/WorkerConsoleAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::breakpointActionLog):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::reportLocalLoadFailed):
(WebCore::FrameLoader::handleBeforeUnloadEvent):
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
(WebCore::createWindow):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::notifyFinished):
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::logWarning):
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::corsPolicyPreventedLoad):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::abort):
(WebCore::ApplicationCacheGroup::didReceiveResponse):
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::didFail):
(WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::printAccessDeniedMessage):
* page/ChromeClient.h:
* page/Console.cpp:
(WebCore::internalAddMessage):
(WebCore::Console::debug):
(WebCore::Console::error):
(WebCore::Console::log):
(WebCore::Console::warn):
(WebCore::Console::dir):
(WebCore::Console::dirxml):
(WebCore::Console::table):
(WebCore::Console::clear):
(WebCore::Console::trace):
(WebCore::Console::assertCondition):
(WebCore::Console::group):
(WebCore::Console::groupCollapsed):
(WebCore::Console::groupEnd):
* page/Console.h:
* page/ConsoleTypes.h: Removed.
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
(WebCore::ContentSecurityPolicy::logToConsole):
* page/DOMSecurityPolicy.cpp:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
(WebCore::DOMWindow::close):
(WebCore::DOMWindow::printErrorMessage):
* page/DOMWindow.h:
* page/EventSource.cpp:
(WebCore::EventSource::didReceiveResponse):
(WebCore::EventSource::didFailAccessControlCheck):
* page/PageConsole.cpp:
(WebCore::PageConsole::printMessageSourceAndLevelPrefix):
(WebCore::PageConsole::addMessage):
* page/PageConsole.h:
* page/PointerLockController.cpp:
(WebCore::PointerLockController::requestPointerLock):
* platform/CrossThreadCopier.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::checkShapeImageOrigin):
* svg/SVGDocumentExtensions.cpp:
(WebCore::reportMessage):
(WebCore::SVGDocumentExtensions::reportWarning):
(WebCore::SVGDocumentExtensions::reportError):
* testing/Internals.cpp:
(WebCore::Internals::consoleMessageArgumentCounts):
* workers/DefaultSharedWorkerRepository.cpp:
* workers/SharedWorkerGlobalScope.cpp:
(WebCore::SharedWorkerGlobalScope::logExceptionToConsole):
* workers/SharedWorkerGlobalScope.h:
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addMessageToWorkerConsole):
* workers/WorkerGlobalScope.h:
* workers/WorkerMessagingProxy.cpp:
* workers/WorkerReportingProxy.h:
* xml/XMLHttpRequest.cpp:
(WebCore::logConsoleError):
(WebCore::XMLHttpRequest::send):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::XSLTProcessor::parseErrorFunc):
2014-02-06 Joseph Pecoraro <pecoraro@apple.com>
Convert a parameter to PassRefPtr
https://bugs.webkit.org/show_bug.cgi?id=128327
Reviewed by Timothy Hatcher.
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addProfile):
* inspector/InspectorInstrumentation.h:
2014-01-30 Oliver Hunt <oliver@apple.com>
Push DOM attributes into the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=127969
Reviewed by Mark Lam.
This patch does the actual work of moving dom attributes up the
prototype chain. There are still a few class and edge cases
where we can't do this without impacting existing behaviour,
but they can be fixed separately in later patches.
* bindings/js/JSDOMBinding.h:
(WebCore::getStaticPropertySlotEntryWithoutCaching):
(WebCore::getStaticPropertySlotEntryWithoutCaching<JSDOMWrapper>):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(HasComplexGetOwnProperty):
(ConstructorShouldBeOnInstance):
(AttributeShouldBeOnInstance):
(InstanceAttributeCount):
(PrototypeAttributeCount):
(InstanceOverridesGetOwnPropertySlot):
(PrototypeOverridesGetOwnPropertySlot):
(GenerateAttributesHashTable):
(GenerateImplementation):
2014-02-06 Andreas Kling <akling@apple.com>
Remove display:run-in support.
<https://webkit.org/b/127874>
<rdar://problem/15926949>
Remove support for the "run-in" display type. Blink recently removed
this and Gecko never supported in the first place.
Rubber-stamped by Anders Carlsson.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSValueKeywords.in:
* css/StyleResolver.cpp:
(WebCore::equivalentBlockDisplay):
(WebCore::doesNotInheritTextDecoration):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::canMergeContiguousAnonymousBlocks):
(WebCore::RenderBlock::renderName):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::shouldCheckLines):
(WebCore::getHeightForLineCount):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
(WebCore::RenderElement::destroyLeftoverChildren):
* rendering/RenderFileUploadControl.cpp:
* rendering/RenderFileUploadControl.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::updateFromStyle):
(WebCore::RenderInline::renderName):
(WebCore::RenderInline::clippedOverflowRectForRepaint):
* rendering/RenderListBox.cpp:
* rendering/RenderListBox.h:
* rendering/RenderMenuList.cpp:
* rendering/RenderMenuList.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderProgress.cpp:
* rendering/RenderProgress.h:
* rendering/RenderSlider.cpp:
* rendering/RenderSlider.h:
* rendering/RenderTextControl.cpp:
* rendering/RenderTextControl.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
* rendering/style/RenderStyleConstants.h:
2014-02-06 Andreas Kling <akling@apple.com>
Remove leftover cruft from scoped stylesheet implementation.
<https://webkit.org/b/128139>
Kill some pointless non-null checks that were left behind by the
removed <style scoped> code. Also pruned outdated comments and
FIXME's about such scopes.
Reviewed by Antti Koivisto.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
* css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
* css/RuleSet.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::checkRegionStyle):
2014-02-05 Brent Fulgham <bfulgham@apple.com>
Wheel events don't latch to inner scrollable elements
https://bugs.webkit.org/show_bug.cgi?id=128225
Reviewed by Beth Dakin.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent): Identify the case
where we have hit the end of a scroll, and treat that as a
valid 'handled' case. If the scroll event is just starting,
treat end-of-scroll as unhandled so the parent element can
handle things.
* page/WheelEventDeltaTracker.h:
(WebCore::WheelEventDeltaTracker::isFirstWheelEvent): Added.
2014-02-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r163542.
http://trac.webkit.org/changeset/163542
https://bugs.webkit.org/show_bug.cgi?id=128324
Caused many assertion failures (Requested by ap on #webkit).
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
2014-02-06 Frédéric Wang <fred.wang@free.fr>
Do not draw multi-characters <mi> in italic.
https://bugs.webkit.org/show_bug.cgi?id=44208
Reviewed by Chris Fleizach.
This test prevents multi-char <mi> to be drawn in italic and prepare
further improvements to MathML token and mfenced elements (bugs 124838
and bug 99620).
Test: mathml/presentation/tokenElements-dynamic.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/mathml.css:
(mi, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose):
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::didAttachRenderers):
(WebCore::MathMLTextElement::childrenChanged):
(WebCore::MathMLTextElement::createElementRenderer):
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMathMLToken):
* rendering/mathml/RenderMathMLToken.cpp: Added.
(WebCore::RenderMathMLToken::RenderMathMLToken):
(WebCore::RenderMathMLToken::addChild):
(WebCore::RenderMathMLToken::createWrapperIfNeeded):
(WebCore::RenderMathMLToken::updateTokenContent):
(WebCore::RenderMathMLToken::updateStyle):
(WebCore::RenderMathMLToken::styleDidChange):
(WebCore::RenderMathMLToken::updateFromElement):
* rendering/mathml/RenderMathMLToken.h: Added.
(WebCore::RenderMathMLToken::element):
(WebCore::RenderMathMLToken>):
2014-02-06 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Simplify BasicShapeInset creation
https://bugs.webkit.org/show_bug.cgi?id=128314
Reviewed by David Hyatt.
Introduce convertToLengthSize helper function in order to simplify and make BasicShapeInset more readable.
No new tests, no behavior change.
* css/BasicShapeFunctions.cpp:
(WebCore::convertToLengthSize):
(WebCore::basicShapeForValue):
2014-02-06 Anders Carlsson <andersca@apple.com>
Try to fix the Windows build.
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didReceiveResponse):
2014-01-29 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] getComputedStyle() is wrong for grid-definition-{columns|rows}
https://bugs.webkit.org/show_bug.cgi?id=127033
Reviewed by Andreas Kling.
Tests: fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html
fast/css-grid-layout/non-grid-columns-rows-get-set.html
fast/css-grid-layout/non-grid-element-repeat-get-set.html
fast/css-grid-layout/non-named-grid-line-get-set.html
According to the specs getComputedStyle() should return the used
values instead of the resolved values for compatibility with early
implementations. This means that grid-definition-{columns|rows}
are now layout dependent as we need to compute the used values for
grid track sizes.
Updated the outcome of existing tests and added a bunch of new
ones that check the behavior of the different properties outside
grid containers.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::specifiedValueForGridTrackSize):
(WebCore::valueForGridTrackList):
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator):
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
(WebCore::RenderGrid::computeUsedBreadthOfMinLength):
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
(WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
(WebCore::RenderGrid::computeNormalizedFractionBreadth):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
(WebCore::RenderGrid::growGrid):
(WebCore::RenderGrid::autoPlacementMajorAxisDirection):
(WebCore::RenderGrid::autoPlacementMinorAxisDirection):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::resolveGridPositionsFromAutoPlacementPosition):
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositions):
(WebCore::RenderGrid::findChildLogicalPosition):
* rendering/RenderGrid.h:
2014-02-06 Anders Carlsson <andersca@apple.com>
Modernize CrossOriginPreflightResultCache
https://bugs.webkit.org/show_bug.cgi?id=128309
Reviewed by Antti Koivisto.
Use std::chrono::steady_clock instead of currentTime() for determining when
cache items expire, Use std::unique_ptr instead of OwnPtr, use NeverDestroyed,
get rid of unnecessary container typedefs now that we have auto. Finally,
de-indent the entire class declaration.
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCache::CrossOriginPreflightResultCache):
(WebCore::parseAccessControlMaxAge):
(WebCore::CrossOriginPreflightResultCacheItem::parse):
(WebCore::CrossOriginPreflightResultCacheItem::allowsRequest):
(WebCore::CrossOriginPreflightResultCache::shared):
(WebCore::CrossOriginPreflightResultCache::appendEntry):
(WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
* loader/CrossOriginPreflightResultCache.h:
(WebCore::CrossOriginPreflightResultCacheItem::CrossOriginPreflightResultCacheItem):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didReceiveResponse):
2014-02-06 Gurpreet Kaur <k.gurpreet@samsung.com>
Menclose with no notation attribute does not display anything.
https://bugs.webkit.org/show_bug.cgi?id=127889
Reviewed by Chris Fleizach.
Menclose with no notation attribute should behave same as menclose with
notation attribute with value as longdiv. By default the division
symbol should be displayed. For empty and invalid notation attribute
nothing should be displayed.
Tests: mathml/presentation/menclose-notation-default-longdiv.html
mathml/presentation/menclose-notation-invalid-empty.html
* mathml/MathMLMencloseElement.h:
* rendering/mathml/RenderMathMLMenclose.cpp:
(WebCore::RenderMathMLMenclose::computePreferredLogicalWidths):
(WebCore::RenderMathMLMenclose::paint):
Added style for menclose with no notation attribute and handled this
condition in paint also where for longdiv we are explicitly drawing
the division symbol.
2014-02-05 Mark Hahnenberg <mhahnenberg@apple.com>
Heap::writeBarrier shouldn't be static
https://bugs.webkit.org/show_bug.cgi?id=127807
Reviewed by Geoffrey Garen.
Currently it looks up the Heap in which to fire the write barrier by using
the cell passed to it. Almost every call site already has a reference to the
VM or the Heap itself. It seems wasteful to look it up all over again.
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
2014-02-06 Brady Eidson <beidson@apple.com>
IDB: storage/indexeddb/mozilla/clear.html fails
<rdar://problem/15997155> and https://bugs.webkit.org/show_bug.cgi?id=128282
Reviewed by David Kilzer.
Covered by storage/indexeddb/mozilla/clear.html (and probably others)
Update the value deserializer to take into account whether or not there was an IDBKey:
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValueBuffer):
* bindings/js/IDBBindingUtilities.h:
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): Call the new form of deserializeIDBValueBuffer.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::clearObjectStore): Update logging.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::setActive): Update logging.
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::commit): Fix ASSERTs to reflect multi-process worlds.
2014-02-06 Csaba Osztrogonác <ossy@webkit.org>
Re-enable simple line layout on non-Mac platforms
https://bugs.webkit.org/show_bug.cgi?id=123338
Reviewed by Anders Carlsson.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2014-02-06 Koop Mast <kwm@FreeBSD.org>
Use system default compiler instead of gcc, as final fall through.
https://bugs.webkit.org/show_bug.cgi?id=126773
Reviewed by Alexey Proskuryakov.
* dom/make_names.pl:
2014-02-06 Eric Carlson <eric.carlson@apple.com>
No need to enterFullscreen() when already in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=128276
Reviewed by Jer Noble.
No new tests, this is just cleanup.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updatePlayState): Don't call enterFullscreen() if already there.
(WebCore::HTMLMediaElement::enterFullscreen): Return early if m_isFullscreen is already true.
2014-02-06 Radu Stavila <stavila@adobe.com>
[CSS Regions] Null dereference applying animation with CSS regions
https://bugs.webkit.org/show_bug.cgi?id=128218
Reviewed by Andrei Bucur.
The first issue (the null dereference) was caused by the checkForZoomChange method
not guarding against a null parentStyle parameter, as the checkForGenericFamilyChange
method does, which in the crashing scenario is called just before the faulty
checkForZoomChange method.
The second issue was an assert which was caused by the fact that detaching is performed
in a certain situation if the element has a renderer or if it's inside a named flow.
However, when reattaching and asserting the element has no renderer, the
"inside named flow" condition was no longer considered.
Test: fast/regions/animation-element-in-region-flowed-to-other-thread.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::checkForZoomChange):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachChildren):
2014-02-06 László Langó <llango.u-szeged@partner.samsung.com>
Create a HTMLUnknownElement when using createElement('image')
https://bugs.webkit.org/show_bug.cgi?id=125896
Reviewed by Antti Koivisto.
Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/fd8a7b65f3300fb9245db24d5ed240c80b7f76ad
* html/HTMLTagNames.in:
2014-02-06 Youenn Fablet <youennf@gmail.com>
[XHR] Ensure response return null when error flag is set for blob and arraybuffer
https://bugs.webkit.org/show_bug.cgi?id=127050
Reviewed by Alexey Proskuryakov.
Added a check in JSXMLHttpRequest::response to ensure response return null when error flag is set for blob and arraybuffer
This check also applies to document and json response types (no change in behavior for those types but code path change)
Added assertions in the related XMLHttpRequest blob and array buffer getters
Minor code clean-up.
The test cases check all four response types in case of timeout and abort
Tests: http/tests/xmlhttprequest/onabort-response-getters.html
http/tests/xmlhttprequest/ontimeout-response-getters.html
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::response):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didCacheResponseJSON):
(WebCore::XMLHttpRequest::responseXML):
(WebCore::XMLHttpRequest::responseBlob):
(WebCore::XMLHttpRequest::responseArrayBuffer):
2014-02-05 Gavin Barraclough <barraclough@apple.com>
Change Page, FocusController to use ViewState
https://bugs.webkit.org/show_bug.cgi?id=126533
Reviewed by Tim Horton.
These classes currently maintain a set of separate fields to represent the view state;
combine these into a single field, and allow WebPage to send the combined update rather
than individual changes.
Maintain existing interface for WebKit1 clients.
* WebCore.exp.in:
- Added WebCore::setViewState, removed WebCore::setIsVisuallyIdle.
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
- Initialize combined m_viewState.
(WebCore::FocusController::setFocused):
- Calls setViewState.
(WebCore::FocusController::setFocusedInternal):
- setFocused -> setFocusedInternal.
(WebCore::FocusController::setViewState):
- Added, update all ViewState flags.
(WebCore::FocusController::setActive):
- Calls setViewState.
(WebCore::FocusController::setActiveInternal):
- setActive -> setActiveInternal.
(WebCore::FocusController::setContentIsVisible):
- Calls setViewState.
(WebCore::FocusController::setContentIsVisibleInternal):
- setContentIsVisible -> setContentIsVisibleInternal.
* page/FocusController.h:
(WebCore::FocusController::isActive):
(WebCore::FocusController::isFocused):
(WebCore::FocusController::contentIsVisible):
- Implemented in terms of ViewState.
* page/Page.cpp:
(WebCore::Page::Page):
- Initialize using PageInitialViewState.
(WebCore::Page::setIsInWindow):
- Calls setViewState.
(WebCore::Page::setIsInWindowInternal):
- setIsInWindow -> setIsInWindowInternal.
(WebCore::Page::setIsVisuallyIdleInternal):
- setIsVisuallyIdle -> setIsVisuallyIdleInternal.
(WebCore::Page::setViewState):
- Added, update all ViewState flags, including FocusController.
(WebCore::Page::setIsVisible):
- Calls setViewState.
(WebCore::Page::setIsVisibleInternal):
- setIsVisible -> setIsVisibleInternal.
(WebCore::Page::visibilityState):
- m_isVisible -> isVisible()
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
- m_isVisible -> isVisible()
* page/Page.h:
(WebCore::Page::isVisible):
(WebCore::Page::isInWindow):
- Implemented in terms of ViewState.
(WebCore::Page::scriptedAnimationsSuspended):
- Combined member fields into ViewState::Flags.
2014-02-05 Simon Fraser <simon.fraser@apple.com>
Transfer the non-fast-scrollable region to the UI process for iOS
https://bugs.webkit.org/show_bug.cgi?id=128293
Reviewed by Benjamin Poulain.
Two main changes to support sending the non-fast scrollable region
to the UI process for iOS:
1. Add ScrollingCoordinator::frameViewNonFastScrollableRegionChanged(),
which is called when we've updated the touch event region (this can happen
independenly of layout). When called we just scheduled a scrolling tree
commit with the new region.
2. Avoid thinking that we have a new root node with every remote scrolling
transaction. This was a side-effect of reconstructing the scrolling state
tree in the UI process, and caused us to try to grab a nonFastScrollableRegion
from a node which never had one set.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
* page/scrolling/ScrollingStateTree.h:
(WebCore::ScrollingStateTree::setHasNewRootStateNode):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::isPointInNonFastScrollableRegion):
* page/scrolling/ScrollingTree.h:
2014-02-05 Benjamin Poulain <benjamin@webkit.org>
[iOS] Synchronize the WKContentView and UIScrollView updates with the tiles being commited
https://bugs.webkit.org/show_bug.cgi?id=127886
Reviewed by Simon Fraser.
The updates of the views on the UIProcess side was completely disconnected
from the tiles updates from the DrawingArea. There is a non-negligible time
between the size/scale update and the new tiles coming, which causes
visual glitches.
There are three main cases where the tiles and content would be out of sync
with the UIViews:
-When loading a new page with different content width of a different viewport.
-When a page changes its viewport.
-When the viewport-constrainted viewport size changes.
To fix the issue, WKView is modified to maintain the old state of WKContentView
and UIScrollView until the new tiles are available.
Geometry/scale update are split in two phases:
1) A source (the page or the user) changes parameters of the geometry. The WebProcess updates
its layout accordingly.
At this point, the UIViews are unchanged and are left with the old parameters.
2) Eventually, new tiles come and commitLayerTree() is called on the drawing area proxy.
At that point, WKContentView and its UIScrollView are updated to match the committed
size and scale for the page.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* page/ViewportConfiguration.cpp: Added.
(WebCore::constraintsAreAllRelative):
(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::setDefaultConfiguration):
(WebCore::ViewportConfiguration::setContentsSize):
(WebCore::ViewportConfiguration::setMinimumLayoutSize):
(WebCore::ViewportConfiguration::setViewportArguments):
(WebCore::ViewportConfiguration::layoutSize):
(WebCore::ViewportConfiguration::initialScale):
(WebCore::ViewportConfiguration::minimumScale):
(WebCore::ViewportConfiguration::maximumScale):
(WebCore::ViewportConfiguration::allowsUserScaling):
(WebCore::viewportArgumentValueIsValid):
(WebCore::applyViewportArgument):
(WebCore::ViewportConfiguration::updateConfiguration):
(WebCore::ViewportConfiguration::layoutWidth):
(WebCore::ViewportConfiguration::layoutHeight):
* page/ViewportConfiguration.h: Added.
(WebCore::ViewportConfigurationConfiguration::ViewportConfigurationConfiguration):
(WebCore::ViewportConfiguration::defaultConfiguration):
(WebCore::ViewportConfiguration::contentsSize):
(WebCore::ViewportConfiguration::minimumLayoutSize):
(WebCore::ViewportConfiguration::viewportArguments):
2014-02-05 Benjamin Poulain <benjamin@webkit.org>
SelectorCodeGenerator::generateElementHasTagName should match the local name before the namespace
https://bugs.webkit.org/show_bug.cgi?id=128167
Reviewed by Sam Weinig.
The local name is a stricter filter than the namespace, it should always run first.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
2014-02-05 Benjamin Poulain <benjamin@webkit.org>
Add HTMLNames::classAttr as a regular name in SVGElement::isAnimatableAttribute
https://bugs.webkit.org/show_bug.cgi?id=128166
Reviewed by Sam Weinig.
For historical reasons, classAttr was treated separately. There is no reasons for that anymore.
* svg/SVGElement.cpp:
(WebCore::SVGElement::isAnimatableAttribute):
2014-02-05 Simon Fraser <simon.fraser@apple.com>
Support encoding and decoding of Regions
https://bugs.webkit.org/show_bug.cgi?id=128284
Reviewed by Anders Carlsson.
Region changes to make it encodable:
Make Region::Span public and give it a default constructor.
Allow getting and setting of Shape internals, and a way to update
the Region bounds after changing the shape. Also add a way to test
for valid spans and segments.
* platform/graphics/Region.cpp:
(WebCore::Region::Shape::isValid):
(WebCore::Region::updateBoundsFromShape):
* platform/graphics/Region.h:
(WebCore::Region::isValid):
(WebCore::Region::Span::Span):
(WebCore::Region::shapeSegments):
(WebCore::Region::shapeSpans):
(WebCore::Region::setShapeSegments):
(WebCore::Region::setShapeSpans):
(WebCore::Region::Shape::segments):
(WebCore::Region::Shape::spans):
(WebCore::Region::Shape::setSegments):
(WebCore::Region::Shape::setSpans):
2014-02-05 Andreas Kling <akling@apple.com>
Rebaseline the bindings tests after Oliver's hackery.
* bindings/scripts/test/JS/:
2014-02-05 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][GTK] Share plugin's implementation between EFL and Gtk ports.
https://bugs.webkit.org/show_bug.cgi?id=70592
Reviewed by Gyuyoung Kim.
Merge common logics of PluginViewGtk.cpp and PluginViewEfl.cpp to PluginViewX11.cpp.
So, this patch improves the windowless plugin support for the EFL port.
* GNUmakefile.am: Add include path for gtk2xtbin.h header file.
* GNUmakefile.list.am: Added PluginViewX11.cpp into source lists.
* PlatformEfl.cmake: Ditto.
* PlatformGTK.cmake: Ditto.
* plugins/PluginView.h: Added getRootWindow and getPluginDisply which implement platform specific code.
* plugins/efl/PluginViewEfl.cpp:
(WebCore::PluginView::getRootWindow):
(WebCore::PluginView::platformGetValueStatic): Turn on NPNVSupportsWindowless support.
(WebCore::PluginView::getPluginDisplay):
(WebCore::PluginView::platformStart):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::getRootWindow):
(WebCore::setXButtonEventSpecificFields):
(WebCore::setXMotionEventSpecificFields):
(WebCore::setXCrossingEventSpecificFields):
(WebCore::PluginView::getPluginDisplay):
(WebCore::PluginView::platformStart):
* plugins/x11/PluginViewX11.cpp: Moved common logics from PluginViewGtk.cpp
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::handleFocusInEvent):
(WebCore::PluginView::invalidateRect):
(WebCore::PluginView::invalidateRegion):
(WebCore::PluginView::handleFocusOutEvent):
(WebCore::PluginView::initXEvent):
(WebCore::PluginView::paint):
(WebCore::PluginView::setParent):
(WebCore::PluginView::setNPWindowRect):
(WebCore::PluginView::setNPWindowIfNeeded):
2014-02-05 Anders Carlsson <andersca@apple.com>
Fix a warning.
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::ContentFilter):
Remove an unnecessary comparison.
2014-02-05 Csaba Osztrogonác <ossy@webkit.org>
Fix the !ENABLE(PAGE_VISIBILITY_API) build
https://bugs.webkit.org/show_bug.cgi?id=127907
Reviewed by Brent Fulgham.
* page/Page.cpp:
(WebCore::Page::setIsVisible):
2014-02-05 Oliver Hunt <oliver@apple.com>
Change custom getter signature to make the base reference an object pointer
https://bugs.webkit.org/show_bug.cgi?id=128279
Reviewed by Geoffrey Garen.
Update everything to the new calling convention.
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::cssPropertyGetterPixelOrPosPrefixCallback):
(WebCore::cssPropertyGetterCallback):
* bindings/js/JSDOMBinding.cpp:
(WebCore::objectToStringFunctionGetter):
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMMimeTypeArrayCustom.cpp:
(WebCore::JSDOMMimeTypeArray::nameGetter):
* bindings/js/JSDOMPluginArrayCustom.cpp:
(WebCore::JSDOMPluginArray::nameGetter):
* bindings/js/JSDOMPluginCustom.cpp:
(WebCore::JSDOMPlugin::nameGetter):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::nonCachingStaticFunctionGetter):
(WebCore::childFrameGetter):
(WebCore::indexGetter):
(WebCore::namedItemGetter):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::JSHTMLAllCollection::nameGetter):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::JSHTMLCollection::nameGetter):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::nameGetter):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::JSHTMLFormControlsCollection::nameGetter):
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::nameGetter):
* bindings/js/JSHTMLFrameSetElementCustom.cpp:
(WebCore::JSHTMLFrameSetElement::nameGetter):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::nonCachingStaticBackFunctionGetter):
(WebCore::nonCachingStaticForwardFunctionGetter):
(WebCore::nonCachingStaticGoFunctionGetter):
* bindings/js/JSLocationCustom.cpp:
(WebCore::nonCachingStaticReplaceFunctionGetter):
(WebCore::nonCachingStaticReloadFunctionGetter):
(WebCore::nonCachingStaticAssignFunctionGetter):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
* bindings/js/JSPluginElementFunctions.h:
* bindings/js/JSRTCStatsResponseCustom.cpp:
(WebCore::JSRTCStatsResponse::nameGetter):
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::nameGetter):
* bindings/js/JSStyleSheetListCustom.cpp:
(WebCore::JSStyleSheetList::nameGetter):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::lengthGetter):
(JSC::RuntimeArray::indexGetter):
* bridge/runtime_array.h:
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::lengthGetter):
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::fallbackObjectGetter):
(JSC::Bindings::RuntimeObject::fieldGetter):
(JSC::Bindings::RuntimeObject::methodGetter):
* bridge/runtime_object.h:
2014-02-04 Andy Estes <aestes@apple.com>
Buffer incoming data in ContentFilter when using NEFilterSource
https://bugs.webkit.org/show_bug.cgi?id=127979
Reviewed by Sam Weinig.
WebFilterEvaluator buffers incoming data and returns it to us as
replacement data if the load is allowed. NEFilterSource doesn't do
this, so we need to do our own buffering.
* platform/ContentFilter.h: Forward-declared NSMutableData and added
m_originalData.
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::ContentFilter): Constructed m_originalData
with an initial capacity (if we know the expected content size).
(WebCore::ContentFilter::addData): Buffered incoming data if we are
using NEFilterSource.
(WebCore::ContentFilter::finishedAddingData):
(WebCore::ContentFilter::getReplacementData): Returned m_originalData
if the load wasn't blocked.
2014-02-05 Andreas Kling <akling@apple.com>
Remove ENABLE(DIRECTORY_UPLOAD).
<https://webkit.org/b/128275>
This is a non-standard Chrome extension that none of the WebKit
ports have even been building.
Rubber-stamped by Ryosuke Niwa.
* Configurations/FeatureDefines.xcconfig:
* fileapi/File.cpp:
* fileapi/File.h:
* fileapi/File.idl:
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::createFileList):
(WebCore::FileInputType::receiveDroppedFiles):
* html/FileInputType.h:
* html/HTMLAttributeNames.in:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
* html/HTMLInputElement.idl:
* loader/EmptyClients.h:
* page/Chrome.cpp:
* page/Chrome.h:
* page/ChromeClient.h:
* platform/FileChooser.h:
* platform/network/FormData.cpp:
(WebCore::FormData::appendKeyValuePairItems):
2014-02-05 Brady Eidson <beidson@apple.com>
IDB: storage/indexeddb/mozilla/autoincrement-indexes.html fails
https://bugs.webkit.org/show_bug.cgi?id=128257
Reviewed by Sam Weinig.
Tests: storage/indexeddb/mozilla/autoincrement-indexes.html
Add some IDBKeyData utility methods for WK2 to use:
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::setArrayValue):
(WebCore::IDBKeyData::setStringValue):
(WebCore::IDBKeyData::setDateValue):
(WebCore::IDBKeyData::setNumberValue):
* Modules/indexeddb/IDBKeyData.h:
* WebCore.exp.in:
2014-02-05 Andreas Kling <akling@apple.com>
Turn on ENABLE(8BIT_TEXTRUN) for everyone.
<https://webkit.org/b/128273>
Reviewed by Anders Carlsson.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::subRun):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlock.h:
2014-02-05 Enrica Casucci <enrica@apple.com>
WK2: Caret, selections and autocorrection bubbles are incorrectly positioned when inside an iframe.
https://bugs.webkit.org/show_bug.cgi?id=128264
<rdar://problem/15986954>
Reviewed by Simon Fraser.
Adding new exported function.
* WebCore.exp.in:
2014-02-05 Antti Koivisto <antti@apple.com>
ElementRuleCollector should not use StyleResolver::State
https://bugs.webkit.org/show_bug.cgi?id=128247
Reviewed by Andreas Kling.
Make ElementRuleCollector more reusable.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchUARules):
(WebCore::ElementRuleCollector::ruleMatches):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::ElementRuleCollector::matchAllRules):
* css/ElementRuleCollector.h:
(WebCore::ElementRuleCollector::ElementRuleCollector):
Pass the objects that are actually needed rather than the entire State.
2014-02-05 Brent Fulgham <bfulgham@apple.com>
[Mac] Correct copy/paste error in scrolling code.
https://bugs.webkit.org/show_bug.cgi?id=128258
Reviewed by Anders Carlsson.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection): Use
'setWidth' when dealing with width metrics.
2014-02-05 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
Ruby base oddly justify its text when the text is ideograph and it contains <br> on Mac.
https://bugs.webkit.org/show_bug.cgi?id=106417
Reviewed by David Hyatt.
Ruby base always justify even if a line have hard break.
Even if next leaf child is line break, InlineTextBox allow trailing expansion.
This make <br> expanded, and there is odd space at the end of the line.
Test: fast/text/ruby-justification-br.html
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::expansionBehavior):
- If next leaf child is line break, we should forbid trailing expansion.
2014-02-05 Andreas Kling <akling@apple.com>
FrameLoader::stateMachine() should return a reference.
<https://webkit.org/b/128263>
There is always a FrameLoaderStateMatchine, so return it by
reference since it can never be null.
Reviewed by Anders Carlsson.
* history/PageCache.cpp:
(WebCore::logCanCachePageDecision):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::maybeLoadEmpty):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::begin):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::prepareForHistoryNavigation):
* loader/FrameLoader.h:
(WebCore::FrameLoader::stateMachine):
* loader/HistoryController.cpp:
(WebCore::HistoryController::restoreScrollPositionAndViewState):
(WebCore::HistoryController::saveDocumentState):
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::scheduleFormSubmission):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::incrementProgress):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation):
* page/Frame.cpp:
(WebCore::Frame::injectUserScripts):
* page/FrameView.cpp:
(WebCore::FrameView::qualifiesAsVisuallyNonEmpty):
2014-02-04 Myles C. Maxfield <mmaxfield@apple.com>
Move characterAt index checks from InlineIterator to RenderText
https://bugs.webkit.org/show_bug.cgi?id=128224
Reviewed by Simon Fraser.
Move characterAt index checks from InlineIterator to RenderText
so that all RenderText calls are covered. Few safe instances are
now covered with uncheckedCharacterAt.
Merged from Blink:
http://src.chromium.org/viewvc/blink?view=revision&revision=150830
Test: fast/text/character-at-crash.html
* rendering/InlineIterator.h:
(WebCore::InlineIterator::characterAt):
* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
* rendering/RenderText.h:
(WebCore::RenderText::operator[]):
(WebCore::RenderText::uncheckedCharacterAt):
(WebCore::RenderText::characterAt):
2014-02-05 Andreas Kling <akling@apple.com>
Remove leftover seamless iframe logic from containerForRepaint().
<https://webkit.org/b/128235>
The parent-flow-thread-in-different-document case is no longer
relevant after <iframe seamless> was removed.
Reviewed by David Hyatt.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containerForRepaint):
2014-02-05 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Dynamically created element with image valued shape-outside doesn't update automatically
https://bugs.webkit.org/show_bug.cgi?id=128187
Reviewed by Dean Jackson.
Corrected the way shape-outside handles the completion of an image load. Move
the shape-outside imageChanged() logic from RenderBlock to RenderBox and call
markShapeOutsideDependentsForLayout() instead of parent()->setNeedsLayoutAndPrefWidthsRecalc().
The latter did not deal with descendants of the shape element's siblings correctly and it
failed when the shape element was inserted dynamically. The markShapeOutsideDependentsForLayout()
method can't be called during layout, so the imageChanged() code checks for that. The only
scenario where imageChanged() can be called during layout (that I've discovered so far anyway)
is when an SVG Image is renderered with drawImage(). The Shape::createRasterShape() does this,
and the corresponding imageChanged() notification can be safely ignored.
Test: fast/shapes/shape-outside-floats/shape-outside-insert-svg-shape.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::imageChanged):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged):
2014-02-05 Andreas Kling <akling@apple.com>
CTTE: ImageLoader is always owned by an Element.
<https://webkit.org/b/128254>
- Codify this by making the constructor take Element& or better.
- Make element() return Element&.
- Marked HTMLImageLoader and SVGImageLoader final.
- Made the ImageLoader constructor protected.
Reviewed by Sam Weinig.
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parseAttribute):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::HTMLImageLoader):
(WebCore::HTMLImageLoader::dispatchLoadEvent):
(WebCore::HTMLImageLoader::sourceURI):
(WebCore::HTMLImageLoader::notifyFinished):
* html/HTMLImageLoader.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::imageLoader):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::startLoadingImage):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers):
(WebCore::HTMLVideoElement::parseAttribute):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::ImageLoader):
(WebCore::ImageLoader::~ImageLoader):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::renderImageResource):
(WebCore::ImageLoader::updatedHasPendingEvent):
(WebCore::ImageLoader::timerFired):
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
(WebCore::ImageLoader::dispatchPendingLoadEvent):
(WebCore::ImageLoader::dispatchPendingErrorEvent):
* loader/ImageLoader.h:
(WebCore::ImageLoader::element):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::SVGImageElement):
* svg/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::SVGImageLoader):
(WebCore::SVGImageLoader::~SVGImageLoader):
(WebCore::SVGImageLoader::dispatchLoadEvent):
(WebCore::SVGImageLoader::sourceURI):
* svg/SVGImageLoader.h:
2014-02-05 Sergio Correia <sergio.correia@openbossa.org>
SVG preserveAspectRatio=none is not honored.
https://bugs.webkit.org/show_bug.cgi?id=111402
Reviewed by Andreas Kling.
Previously, preserveAspectRatio=none had no effect on SVG images. This change fixes this so
we follow the special handling of preserveAspectRatio on images as defined in the spec:
http://www.w3.org/TR/SVG/single-page.html, 7.8 The ‘preserveAspectRatio’ attribute.
Images that depend on a container size (such as SVG images) require a call to
setContainerSizeForRenderer(...) to set this size. By passing the image's intrinsic size
as the container size, the non-uniform scaling defined in the spec will be achieved.
Merged from Blink: https://chromiumcodereview.appspot.com/14964004
Test: svg/custom/image-with-preserveAspectRatio-none.html
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::updateImageViewport):
2014-02-05 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Simplify CSSBasicShapeInset::cssText
https://bugs.webkit.org/show_bug.cgi?id=127841
Reviewed by David Hyatt.
I introduced the updateCornerRadiusWidthAndHeight helper function, which makes the code of cssText method clearer.
No new tests, no behavior change.
* css/CSSBasicShapes.cpp:
(WebCore::updateCornerRadiusWidthAndHeight): Add helper function.
(WebCore::CSSBasicShapeInset::cssText):
2014-02-05 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Simplify BasicShapeInset::path
https://bugs.webkit.org/show_bug.cgi?id=127920
Reviewed by David Hyatt.
I introduced a new static helper function called floatSizeForLengthSize
in order to simplify BasicShapeInset::path method.
No new tests, no behavior change.
* rendering/style/BasicShapes.cpp:
(WebCore::floatSizeForLengthSize): New helper function.
(WebCore::BasicShapeInset::path):
2014-02-05 Wojciech Bielawski <w.bielawski@samsung.com>
XMLHttpRequest performs too many copies for ArrayBuffer results
https://bugs.webkit.org/show_bug.cgi?id=117458
Reviewed by Alexey Proskuryakov.
Based on blink change: https://chromium.googlesource.com/chromium/blink/+/bed266aa5a43f7c080c87e527bd35e2b80ecc7b7
Add SharedBuffer::createArrayBuffer() and use it to create XMLHttpRequest's response in ArrayBuffer
This cuts
- two memsets (in ArrayBuffer::create and SharedBuffer::m_buffer::resize)
- one copy (SharedBuffer::m_buffer to ArrayBufferContents::m_data)
- one allocation (SharedBuffer::m_buffer)
No new tests. WebKit desn't provide test mechanism similar to blink's one.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::createArrayBuffer):
* platform/SharedBuffer.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseArrayBuffer):
2014-02-05 Csaba Osztrogonác <ossy@webkit.org>
Remove ENABLE(SVG) guards
https://bugs.webkit.org/show_bug.cgi?id=127991
Reviewed by Sam Weinig.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* GNUmakefile.am:
* UseJSC.cmake:
* WebCore.exp.in:
* accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::accessibilityDescription):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect):
(WebCore::AccessibilityRenderObject::supportsPath):
(WebCore::AccessibilityRenderObject::elementPath):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper isSVGGroupElement]):
* bindings/gobject/GNUmakefile.am:
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS):
* bindings/js/JSElementCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSExceptionBase.cpp:
(WebCore::toExceptionBase):
* bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
* bindings/js/JSSVGElementInstanceCustom.cpp:
* bindings/js/JSSVGLengthCustom.cpp:
* bindings/js/JSSVGPathSegCustom.cpp:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSComputedStyleDeclaration.h:
* css/CSSCursorImageValue.cpp:
(WebCore::resourceReferencedByCursorElement):
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::removeReferencedElement):
* css/CSSCursorImageValue.h:
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* css/CSSFontSelector.cpp:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseClipPath):
(WebCore::CSSParser::parseShadow):
(WebCore::CSSParser::parseFilter):
(WebCore::CSSParser::realLex):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
* css/CSSStyleSheet.cpp:
(WebCore::isAcceptableCSSStyleSheetParent):
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::cloneForCSSOM):
* css/CSSValue.h:
(WebCore::CSSValue::isSubtypeExposedToCSSOM):
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyDisplay::isValidDisplayValue):
(WebCore::ApplyPropertyClipPath::applyValue):
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchAllRules):
* css/SVGCSSComputedStyleDeclaration.cpp:
* css/SVGCSSParser.cpp:
* css/SVGCSSPropertyNames.in:
* css/SVGCSSStyleSelector.cpp:
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
* css/StylePropertyShorthand.cpp:
(WebCore::markerShorthand):
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
* css/StylePropertyShorthand.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::locateCousinList):
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::isValidVisitedLinkProperty):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingResources):
* css/StyleResolver.h:
* dom/DOMExceptions.in:
* dom/DOMImplementation.cpp:
(WebCore::addString):
(WebCore::isSupportedSVG11Feature):
(WebCore::DOMImplementation::hasFeature):
(WebCore::DOMImplementation::createDocument):
* dom/Document.cpp:
(WebCore::Document::commonTeardown):
(WebCore::Document::createElement):
(WebCore::Document::implicitClose):
(WebCore::Document::hasSVGRootNode):
* dom/Document.h:
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::synchronizeAllAttributes):
(WebCore::Element::synchronizeAttribute):
(WebCore::Element::boundsInRootViewSpace):
(WebCore::Element::getBoundingClientRect):
(WebCore::Element::removedFrom):
(WebCore::Element::childShouldCreateRenderer):
(WebCore::Element::fastAttributeLookupAllowed):
(WebCore::Element::clearHasPendingResources):
* dom/Element.h:
* dom/ElementData.h:
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
* dom/EventDispatcher.cpp:
(WebCore::eventTargetRespectingTargetRules):
* dom/EventListenerMap.cpp:
* dom/EventListenerMap.h:
* dom/EventNames.in:
* dom/EventTargetFactory.in:
* dom/QualifiedName.cpp:
* dom/ScriptElement.cpp:
(WebCore::toScriptElementIfPossible):
* dom/Text.cpp:
(WebCore::isSVGText):
(WebCore::Text::createTextRenderer):
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
* html/HTMLAnchorElement.cpp:
(WebCore::shouldProhibitLinks):
* html/HTMLEmbedElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::getSVGDocument):
* html/HTMLFrameOwnerElement.h:
* html/HTMLIFrameElement.idl:
* html/HTMLObjectElement.idl:
* html/canvas/DOMPath.h:
(WebCore::DOMPath::create):
* html/canvas/DOMPath.idl:
* html/parser/XSSAuditor.cpp:
(WebCore::isSemicolonSeparatedAttribute):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setOuterHTML):
* inspector/InspectorOverlay.cpp:
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::inlineStyleSheetText):
* loader/FrameLoader.cpp:
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::renderImageResource):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::didRemoveClient):
(WebCore::CachedImage::imageForRenderer):
(WebCore::CachedImage::setContainerSizeForRenderer):
(WebCore::CachedImage::imageSizeForRenderer):
(WebCore::CachedImage::createImage):
* loader/cache/CachedImage.h:
* loader/cache/CachedResource.cpp:
(WebCore::defaultPriorityForResourceType):
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceClient.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource):
(WebCore::CachedResourceLoader::requestSVGDocument):
(WebCore::CachedResourceLoader::checkInsecureContent):
(WebCore::CachedResourceLoader::canRequest):
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedSVGDocument.cpp:
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedSVGDocumentClient.h:
* loader/cache/CachedSVGDocumentReference.cpp:
* loader/cache/CachedSVGDocumentReference.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::instanceAssociatedWithShadowTreeElement):
(WebCore::EventHandler::updateMouseEventTargetNode):
* page/EventHandler.h:
* page/Frame.cpp:
(WebCore::Frame::setPageAndTextZoomFactors):
* page/FrameView.cpp:
(WebCore::FrameView::applyOverflowToViewport):
(WebCore::FrameView::forceLayoutParentViewIfNeeded):
(WebCore::FrameView::embeddedContentBox):
(WebCore::FrameView::scrollToAnchor):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedNonImageMimeTypes):
* platform/graphics/TextRun.cpp:
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
* platform/graphics/filters/FilterOperation.cpp:
(WebCore::ReferenceFilterOperation::getOrCreateCachedSVGDocumentReference):
* platform/graphics/filters/FilterOperation.h:
* platform/gtk/PasteboardGtk.cpp:
(WebCore::getURLForImageElement):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
* rendering/HitTestLocation.cpp:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteImageURL):
(WebCore::HitTestResult::absoluteLinkURL):
(WebCore::HitTestResult::isLiveLink):
* rendering/InlineBox.h:
* rendering/LogicalSelectionOffsetCaches.h:
(WebCore::isContainingBlockCandidateForAbsolutelyPositionedObject):
* rendering/PaintInfo.h:
(WebCore::PaintInfo::applyTransform):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::addChild):
(WebCore::RenderElement::layerCreationAllowedForSubtree):
(WebCore::RenderElement::styleDidChange):
* rendering/RenderGeometryMap.cpp:
(WebCore::canMapBetweenRenderers):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::embeddedContentBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isTransparent):
(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::~FilterInfo):
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::nextNodeInsideContentElement):
* rendering/RenderObject.cpp:
(WebCore::objectIsRelayoutBoundary):
(WebCore::RenderObject::container):
(WebCore::RenderObject::willBeRemovedFromTree):
* rendering/RenderObject.h:
(WebCore::RenderObject::canContainFixedPositionObjects):
(WebCore::RenderObject::preservesNewline):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* rendering/RenderView.cpp:
(WebCore::RenderView::layout):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::alignBoxesInBlockDirection):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::handleText):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::inheritFrom):
(WebCore::RenderStyle::copyNonInheritedFrom):
(WebCore::RenderStyle::operator==):
(WebCore::RenderStyle::inheritedNotEqual):
(WebCore::RenderStyle::inheritedDataShared):
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/SVGRenderStyle.cpp:
* rendering/style/SVGRenderStyle.h:
* rendering/style/SVGRenderStyleDefs.cpp:
* rendering/style/SVGRenderStyleDefs.h:
* rendering/svg/RenderSVGBlock.cpp:
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGContainer.cpp:
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGEllipse.cpp:
* rendering/svg/RenderSVGEllipse.h:
* rendering/svg/RenderSVGForeignObject.cpp:
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGGradientStop.cpp:
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/RenderSVGHiddenContainer.cpp:
* rendering/svg/RenderSVGHiddenContainer.h:
* rendering/svg/RenderSVGImage.cpp:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInline.cpp:
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGInlineText.cpp:
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGModelObject.cpp:
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGPath.cpp:
* rendering/svg/RenderSVGPath.h:
* rendering/svg/RenderSVGRect.cpp:
* rendering/svg/RenderSVGRect.h:
* rendering/svg/RenderSVGResource.cpp:
* rendering/svg/RenderSVGResource.h:
* rendering/svg/RenderSVGResourceClipper.cpp:
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceContainer.cpp:
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGResourceFilter.cpp:
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
* rendering/svg/RenderSVGResourceFilterPrimitive.h:
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourceLinearGradient.cpp:
* rendering/svg/RenderSVGResourceLinearGradient.h:
* rendering/svg/RenderSVGResourceMarker.cpp:
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.cpp:
* rendering/svg/RenderSVGResourceMasker.h:
* rendering/svg/RenderSVGResourcePattern.cpp:
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceRadialGradient.cpp:
* rendering/svg/RenderSVGResourceRadialGradient.h:
* rendering/svg/RenderSVGResourceSolidColor.cpp:
* rendering/svg/RenderSVGResourceSolidColor.h:
* rendering/svg/RenderSVGRoot.cpp:
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGShape.cpp:
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGTSpan.h:
* rendering/svg/RenderSVGText.cpp:
* rendering/svg/RenderSVGText.h:
* rendering/svg/RenderSVGTextPath.cpp:
* rendering/svg/RenderSVGTextPath.h:
* rendering/svg/RenderSVGTransformableContainer.cpp:
* rendering/svg/RenderSVGTransformableContainer.h:
* rendering/svg/RenderSVGViewportContainer.cpp:
* rendering/svg/RenderSVGViewportContainer.h:
* rendering/svg/SVGInlineFlowBox.cpp:
* rendering/svg/SVGInlineFlowBox.h:
* rendering/svg/SVGInlineTextBox.cpp:
* rendering/svg/SVGInlineTextBox.h:
* rendering/svg/SVGMarkerData.h:
* rendering/svg/SVGPathData.cpp:
* rendering/svg/SVGPathData.h:
* rendering/svg/SVGRenderSupport.cpp:
* rendering/svg/SVGRenderSupport.h:
* rendering/svg/SVGRenderTreeAsText.cpp:
* rendering/svg/SVGRenderTreeAsText.h:
* rendering/svg/SVGRenderingContext.cpp:
* rendering/svg/SVGRenderingContext.h:
* rendering/svg/SVGResources.cpp:
* rendering/svg/SVGResources.h:
* rendering/svg/SVGResourcesCache.cpp:
* rendering/svg/SVGResourcesCache.h:
* rendering/svg/SVGResourcesCycleSolver.cpp:
* rendering/svg/SVGResourcesCycleSolver.h:
* rendering/svg/SVGRootInlineBox.cpp:
* rendering/svg/SVGRootInlineBox.h:
* rendering/svg/SVGSubpathData.h:
* rendering/svg/SVGTextChunk.cpp:
* rendering/svg/SVGTextChunk.h:
* rendering/svg/SVGTextChunkBuilder.cpp:
* rendering/svg/SVGTextChunkBuilder.h:
* rendering/svg/SVGTextFragment.h:
* rendering/svg/SVGTextLayoutAttributes.cpp:
* rendering/svg/SVGTextLayoutAttributes.h:
* rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
* rendering/svg/SVGTextLayoutAttributesBuilder.h:
* rendering/svg/SVGTextLayoutEngine.cpp:
* rendering/svg/SVGTextLayoutEngine.h:
* rendering/svg/SVGTextLayoutEngineBaseline.cpp:
* rendering/svg/SVGTextLayoutEngineBaseline.h:
* rendering/svg/SVGTextLayoutEngineSpacing.cpp:
* rendering/svg/SVGTextLayoutEngineSpacing.h:
* rendering/svg/SVGTextMetrics.cpp:
* rendering/svg/SVGTextMetrics.h:
* rendering/svg/SVGTextMetricsBuilder.cpp:
* rendering/svg/SVGTextMetricsBuilder.h:
* rendering/svg/SVGTextQuery.cpp:
* rendering/svg/SVGTextQuery.h:
* svg/ColorDistance.cpp:
* svg/ColorDistance.h:
* svg/GradientAttributes.h:
* svg/LinearGradientAttributes.h:
* svg/PatternAttributes.h:
* svg/RadialGradientAttributes.h:
* svg/SVGAElement.cpp:
* svg/SVGAElement.h:
* svg/SVGAElement.idl:
* svg/SVGAltGlyphDefElement.cpp:
* svg/SVGAltGlyphDefElement.h:
* svg/SVGAltGlyphDefElement.idl:
* svg/SVGAltGlyphElement.cpp:
* svg/SVGAltGlyphElement.h:
* svg/SVGAltGlyphElement.idl:
* svg/SVGAltGlyphItemElement.cpp:
* svg/SVGAltGlyphItemElement.h:
* svg/SVGAltGlyphItemElement.idl:
* svg/SVGAngle.cpp:
* svg/SVGAngle.h:
* svg/SVGAngle.idl:
* svg/SVGAnimateColorElement.cpp:
* svg/SVGAnimateColorElement.h:
* svg/SVGAnimateColorElement.idl:
* svg/SVGAnimateElement.cpp:
* svg/SVGAnimateElement.h:
* svg/SVGAnimateElement.idl:
* svg/SVGAnimateMotionElement.cpp:
* svg/SVGAnimateMotionElement.h:
* svg/SVGAnimateMotionElement.idl:
* svg/SVGAnimateTransformElement.cpp:
* svg/SVGAnimateTransformElement.h:
* svg/SVGAnimateTransformElement.idl:
* svg/SVGAnimatedAngle.cpp:
* svg/SVGAnimatedAngle.h:
* svg/SVGAnimatedAngle.idl:
* svg/SVGAnimatedBoolean.cpp:
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedBoolean.idl:
* svg/SVGAnimatedColor.cpp:
* svg/SVGAnimatedColor.h:
* svg/SVGAnimatedEnumeration.cpp:
* svg/SVGAnimatedEnumeration.h:
* svg/SVGAnimatedEnumeration.idl:
* svg/SVGAnimatedInteger.cpp:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedInteger.idl:
* svg/SVGAnimatedIntegerOptionalInteger.cpp:
* svg/SVGAnimatedIntegerOptionalInteger.h:
* svg/SVGAnimatedLength.cpp:
* svg/SVGAnimatedLength.h:
* svg/SVGAnimatedLength.idl:
* svg/SVGAnimatedLengthList.cpp:
* svg/SVGAnimatedLengthList.h:
* svg/SVGAnimatedLengthList.idl:
* svg/SVGAnimatedNumber.cpp:
* svg/SVGAnimatedNumber.h:
* svg/SVGAnimatedNumber.idl:
* svg/SVGAnimatedNumberList.cpp:
* svg/SVGAnimatedNumberList.h:
* svg/SVGAnimatedNumberList.idl:
* svg/SVGAnimatedNumberOptionalNumber.cpp:
* svg/SVGAnimatedNumberOptionalNumber.h:
* svg/SVGAnimatedPath.cpp:
* svg/SVGAnimatedPath.h:
* svg/SVGAnimatedPointList.cpp:
* svg/SVGAnimatedPointList.h:
* svg/SVGAnimatedPreserveAspectRatio.cpp:
* svg/SVGAnimatedPreserveAspectRatio.h:
* svg/SVGAnimatedPreserveAspectRatio.idl:
* svg/SVGAnimatedRect.cpp:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimatedRect.idl:
* svg/SVGAnimatedString.cpp:
* svg/SVGAnimatedString.h:
* svg/SVGAnimatedString.idl:
* svg/SVGAnimatedTransformList.cpp:
* svg/SVGAnimatedTransformList.h:
* svg/SVGAnimatedTransformList.idl:
* svg/SVGAnimatedType.cpp:
* svg/SVGAnimatedType.h:
* svg/SVGAnimatedTypeAnimator.cpp:
* svg/SVGAnimatedTypeAnimator.h:
* svg/SVGAnimationElement.cpp:
* svg/SVGAnimationElement.h:
* svg/SVGAnimationElement.idl:
* svg/SVGAnimatorFactory.h:
* svg/SVGCircleElement.cpp:
* svg/SVGCircleElement.h:
* svg/SVGCircleElement.idl:
* svg/SVGClipPathElement.cpp:
* svg/SVGClipPathElement.h:
* svg/SVGClipPathElement.idl:
* svg/SVGColor.cpp:
* svg/SVGColor.h:
* svg/SVGColor.idl:
* svg/SVGComponentTransferFunctionElement.cpp:
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGComponentTransferFunctionElement.idl:
* svg/SVGCursorElement.cpp:
* svg/SVGCursorElement.h:
* svg/SVGCursorElement.idl:
* svg/SVGDefsElement.cpp:
* svg/SVGDefsElement.h:
* svg/SVGDefsElement.idl:
* svg/SVGDescElement.cpp:
* svg/SVGDescElement.h:
* svg/SVGDescElement.idl:
* svg/SVGDocument.cpp:
* svg/SVGDocument.h:
* svg/SVGDocument.idl:
* svg/SVGDocumentExtensions.cpp:
* svg/SVGDocumentExtensions.h:
* svg/SVGElement.cpp:
* svg/SVGElement.h:
* svg/SVGElement.idl:
* svg/SVGElementInstance.cpp:
* svg/SVGElementInstance.h:
* svg/SVGElementInstance.idl:
* svg/SVGElementInstanceList.cpp:
* svg/SVGElementInstanceList.h:
* svg/SVGElementInstanceList.idl:
* svg/SVGEllipseElement.cpp:
* svg/SVGEllipseElement.h:
* svg/SVGEllipseElement.idl:
* svg/SVGException.cpp:
* svg/SVGException.h:
* svg/SVGException.idl:
* svg/SVGExternalResourcesRequired.cpp:
* svg/SVGExternalResourcesRequired.h:
* svg/SVGExternalResourcesRequired.idl:
* svg/SVGFEBlendElement.cpp:
* svg/SVGFEBlendElement.h:
* svg/SVGFEBlendElement.idl:
* svg/SVGFEColorMatrixElement.cpp:
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEColorMatrixElement.idl:
* svg/SVGFEComponentTransferElement.cpp:
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFEComponentTransferElement.idl:
* svg/SVGFECompositeElement.cpp:
* svg/SVGFECompositeElement.h:
* svg/SVGFECompositeElement.idl:
* svg/SVGFEConvolveMatrixElement.cpp:
* svg/SVGFEConvolveMatrixElement.h:
* svg/SVGFEConvolveMatrixElement.idl:
* svg/SVGFEDiffuseLightingElement.cpp:
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDiffuseLightingElement.idl:
* svg/SVGFEDisplacementMapElement.cpp:
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEDisplacementMapElement.idl:
* svg/SVGFEDistantLightElement.cpp:
* svg/SVGFEDistantLightElement.h:
* svg/SVGFEDistantLightElement.idl:
* svg/SVGFEDropShadowElement.cpp:
* svg/SVGFEDropShadowElement.h:
* svg/SVGFEDropShadowElement.idl:
* svg/SVGFEFloodElement.cpp:
* svg/SVGFEFloodElement.h:
* svg/SVGFEFloodElement.idl:
* svg/SVGFEFuncAElement.cpp:
* svg/SVGFEFuncAElement.h:
* svg/SVGFEFuncAElement.idl:
* svg/SVGFEFuncBElement.cpp:
* svg/SVGFEFuncBElement.h:
* svg/SVGFEFuncBElement.idl:
* svg/SVGFEFuncGElement.cpp:
* svg/SVGFEFuncGElement.h:
* svg/SVGFEFuncGElement.idl:
* svg/SVGFEFuncRElement.cpp:
* svg/SVGFEFuncRElement.h:
* svg/SVGFEFuncRElement.idl:
* svg/SVGFEGaussianBlurElement.cpp:
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEGaussianBlurElement.idl:
* svg/SVGFEImageElement.cpp:
* svg/SVGFEImageElement.h:
* svg/SVGFEImageElement.idl:
* svg/SVGFELightElement.cpp:
* svg/SVGFELightElement.h:
* svg/SVGFEMergeElement.cpp:
* svg/SVGFEMergeElement.h:
* svg/SVGFEMergeElement.idl:
* svg/SVGFEMergeNodeElement.cpp:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMergeNodeElement.idl:
* svg/SVGFEMorphologyElement.cpp:
* svg/SVGFEMorphologyElement.h:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGFEOffsetElement.cpp:
* svg/SVGFEOffsetElement.h:
* svg/SVGFEOffsetElement.idl:
* svg/SVGFEPointLightElement.cpp:
* svg/SVGFEPointLightElement.h:
* svg/SVGFEPointLightElement.idl:
* svg/SVGFESpecularLightingElement.cpp:
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFESpecularLightingElement.idl:
* svg/SVGFESpotLightElement.cpp:
* svg/SVGFESpotLightElement.h:
* svg/SVGFESpotLightElement.idl:
* svg/SVGFETileElement.cpp:
* svg/SVGFETileElement.h:
* svg/SVGFETileElement.idl:
* svg/SVGFETurbulenceElement.cpp:
* svg/SVGFETurbulenceElement.h:
* svg/SVGFETurbulenceElement.idl:
* svg/SVGFilterElement.cpp:
* svg/SVGFilterElement.h:
* svg/SVGFilterElement.idl:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFilterPrimitiveStandardAttributes.idl:
* svg/SVGFitToViewBox.cpp:
* svg/SVGFitToViewBox.h:
* svg/SVGFitToViewBox.idl:
* svg/SVGFontElement.idl:
* svg/SVGFontFaceElement.idl:
* svg/SVGFontFaceFormatElement.idl:
* svg/SVGFontFaceNameElement.cpp:
* svg/SVGFontFaceNameElement.idl:
* svg/SVGFontFaceSrcElement.idl:
* svg/SVGFontFaceUriElement.idl:
* svg/SVGForeignObjectElement.cpp:
* svg/SVGForeignObjectElement.h:
* svg/SVGForeignObjectElement.idl:
* svg/SVGGElement.cpp:
* svg/SVGGElement.h:
* svg/SVGGElement.idl:
* svg/SVGGlyphElement.idl:
* svg/SVGGlyphRefElement.cpp:
* svg/SVGGlyphRefElement.h:
* svg/SVGGlyphRefElement.idl:
* svg/SVGGradientElement.cpp:
* svg/SVGGradientElement.h:
* svg/SVGGradientElement.idl:
* svg/SVGGraphicsElement.cpp:
* svg/SVGGraphicsElement.h:
* svg/SVGGraphicsElement.idl:
* svg/SVGHKernElement.idl:
* svg/SVGImageElement.cpp:
* svg/SVGImageElement.h:
* svg/SVGImageElement.idl:
* svg/SVGImageLoader.cpp:
* svg/SVGImageLoader.h:
* svg/SVGLangSpace.cpp:
* svg/SVGLangSpace.h:
* svg/SVGLength.cpp:
* svg/SVGLength.h:
* svg/SVGLength.idl:
* svg/SVGLengthContext.cpp:
* svg/SVGLengthContext.h:
* svg/SVGLengthList.cpp:
* svg/SVGLengthList.h:
* svg/SVGLengthList.idl:
* svg/SVGLineElement.cpp:
* svg/SVGLineElement.h:
* svg/SVGLineElement.idl:
* svg/SVGLinearGradientElement.cpp:
* svg/SVGLinearGradientElement.h:
* svg/SVGLinearGradientElement.idl:
* svg/SVGLocatable.cpp:
* svg/SVGLocatable.h:
* svg/SVGMPathElement.cpp:
* svg/SVGMPathElement.h:
* svg/SVGMPathElement.idl:
* svg/SVGMarkerElement.cpp:
* svg/SVGMarkerElement.h:
* svg/SVGMarkerElement.idl:
* svg/SVGMaskElement.cpp:
* svg/SVGMaskElement.h:
* svg/SVGMaskElement.idl:
* svg/SVGMatrix.h:
* svg/SVGMatrix.idl:
* svg/SVGMetadataElement.cpp:
* svg/SVGMetadataElement.h:
* svg/SVGMetadataElement.idl:
* svg/SVGMissingGlyphElement.idl:
* svg/SVGNumber.idl:
* svg/SVGNumberList.cpp:
* svg/SVGNumberList.h:
* svg/SVGNumberList.idl:
* svg/SVGPaint.cpp:
* svg/SVGPaint.h:
* svg/SVGPaint.idl:
* svg/SVGParserUtilities.cpp:
* svg/SVGParserUtilities.h:
* svg/SVGParsingError.h:
* svg/SVGPathBlender.cpp:
* svg/SVGPathBlender.h:
* svg/SVGPathBuilder.cpp:
* svg/SVGPathBuilder.h:
* svg/SVGPathByteStream.h:
* svg/SVGPathByteStreamBuilder.cpp:
* svg/SVGPathByteStreamBuilder.h:
* svg/SVGPathByteStreamSource.cpp:
* svg/SVGPathByteStreamSource.h:
* svg/SVGPathConsumer.h:
* svg/SVGPathElement.cpp:
* svg/SVGPathElement.h:
* svg/SVGPathElement.idl:
* svg/SVGPathParser.cpp:
* svg/SVGPathParser.h:
* svg/SVGPathSeg.h:
* svg/SVGPathSeg.idl:
* svg/SVGPathSegArc.h:
* svg/SVGPathSegArcAbs.h:
* svg/SVGPathSegArcAbs.idl:
* svg/SVGPathSegArcRel.h:
* svg/SVGPathSegArcRel.idl:
* svg/SVGPathSegClosePath.h:
* svg/SVGPathSegClosePath.idl:
* svg/SVGPathSegCurvetoCubic.h:
* svg/SVGPathSegCurvetoCubicAbs.h:
* svg/SVGPathSegCurvetoCubicAbs.idl:
* svg/SVGPathSegCurvetoCubicRel.h:
* svg/SVGPathSegCurvetoCubicRel.idl:
* svg/SVGPathSegCurvetoCubicSmooth.h:
* svg/SVGPathSegCurvetoCubicSmoothAbs.h:
* svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
* svg/SVGPathSegCurvetoCubicSmoothRel.h:
* svg/SVGPathSegCurvetoCubicSmoothRel.idl:
* svg/SVGPathSegCurvetoQuadratic.h:
* svg/SVGPathSegCurvetoQuadraticAbs.h:
* svg/SVGPathSegCurvetoQuadraticAbs.idl:
* svg/SVGPathSegCurvetoQuadraticRel.h:
* svg/SVGPathSegCurvetoQuadraticRel.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
* svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
* svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
* svg/SVGPathSegLinetoAbs.h:
* svg/SVGPathSegLinetoAbs.idl:
* svg/SVGPathSegLinetoHorizontal.h:
* svg/SVGPathSegLinetoHorizontalAbs.h:
* svg/SVGPathSegLinetoHorizontalAbs.idl:
* svg/SVGPathSegLinetoHorizontalRel.h:
* svg/SVGPathSegLinetoHorizontalRel.idl:
* svg/SVGPathSegLinetoRel.h:
* svg/SVGPathSegLinetoRel.idl:
* svg/SVGPathSegLinetoVertical.h:
* svg/SVGPathSegLinetoVerticalAbs.h:
* svg/SVGPathSegLinetoVerticalAbs.idl:
* svg/SVGPathSegLinetoVerticalRel.h:
* svg/SVGPathSegLinetoVerticalRel.idl:
* svg/SVGPathSegList.cpp:
* svg/SVGPathSegList.h:
* svg/SVGPathSegList.idl:
* svg/SVGPathSegListBuilder.cpp:
* svg/SVGPathSegListBuilder.h:
* svg/SVGPathSegListSource.cpp:
* svg/SVGPathSegListSource.h:
* svg/SVGPathSegMovetoAbs.h:
* svg/SVGPathSegMovetoAbs.idl:
* svg/SVGPathSegMovetoRel.h:
* svg/SVGPathSegMovetoRel.idl:
* svg/SVGPathSegWithContext.h:
* svg/SVGPathSource.h:
* svg/SVGPathStringBuilder.cpp:
* svg/SVGPathStringBuilder.h:
* svg/SVGPathStringSource.cpp:
* svg/SVGPathStringSource.h:
* svg/SVGPathTraversalStateBuilder.cpp:
* svg/SVGPathTraversalStateBuilder.h:
* svg/SVGPathUtilities.cpp:
* svg/SVGPathUtilities.h:
* svg/SVGPatternElement.cpp:
* svg/SVGPatternElement.h:
* svg/SVGPatternElement.idl:
* svg/SVGPoint.h:
* svg/SVGPoint.idl:
* svg/SVGPointList.cpp:
* svg/SVGPointList.h:
* svg/SVGPointList.idl:
* svg/SVGPolyElement.cpp:
* svg/SVGPolyElement.h:
* svg/SVGPolygonElement.cpp:
* svg/SVGPolygonElement.h:
* svg/SVGPolygonElement.idl:
* svg/SVGPolylineElement.cpp:
* svg/SVGPolylineElement.h:
* svg/SVGPolylineElement.idl:
* svg/SVGPreserveAspectRatio.cpp:
* svg/SVGPreserveAspectRatio.h:
* svg/SVGPreserveAspectRatio.idl:
* svg/SVGRadialGradientElement.cpp:
* svg/SVGRadialGradientElement.h:
* svg/SVGRadialGradientElement.idl:
* svg/SVGRect.h:
* svg/SVGRect.idl:
* svg/SVGRectElement.cpp:
* svg/SVGRectElement.h:
* svg/SVGRectElement.idl:
* svg/SVGRenderingIntent.h:
* svg/SVGRenderingIntent.idl:
* svg/SVGSVGElement.cpp:
* svg/SVGSVGElement.h:
* svg/SVGSVGElement.idl:
* svg/SVGScriptElement.cpp:
* svg/SVGScriptElement.h:
* svg/SVGScriptElement.idl:
* svg/SVGSetElement.cpp:
* svg/SVGSetElement.h:
* svg/SVGSetElement.idl:
* svg/SVGStopElement.cpp:
* svg/SVGStopElement.h:
* svg/SVGStopElement.idl:
* svg/SVGStringList.cpp:
* svg/SVGStringList.h:
* svg/SVGStringList.idl:
* svg/SVGStyleElement.cpp:
* svg/SVGStyleElement.h:
* svg/SVGStyleElement.idl:
* svg/SVGSwitchElement.cpp:
* svg/SVGSwitchElement.h:
* svg/SVGSwitchElement.idl:
* svg/SVGSymbolElement.cpp:
* svg/SVGSymbolElement.h:
* svg/SVGSymbolElement.idl:
* svg/SVGTRefElement.cpp:
* svg/SVGTRefElement.h:
* svg/SVGTRefElement.idl:
* svg/SVGTSpanElement.cpp:
* svg/SVGTSpanElement.h:
* svg/SVGTSpanElement.idl:
* svg/SVGTests.cpp:
* svg/SVGTests.h:
* svg/SVGTests.idl:
* svg/SVGTextContentElement.cpp:
* svg/SVGTextContentElement.h:
* svg/SVGTextContentElement.idl:
* svg/SVGTextElement.cpp:
* svg/SVGTextElement.h:
* svg/SVGTextElement.idl:
* svg/SVGTextPathElement.cpp:
* svg/SVGTextPathElement.h:
* svg/SVGTextPathElement.idl:
* svg/SVGTextPositioningElement.cpp:
* svg/SVGTextPositioningElement.h:
* svg/SVGTextPositioningElement.idl:
* svg/SVGTitleElement.cpp:
* svg/SVGTitleElement.h:
* svg/SVGTitleElement.idl:
* svg/SVGTransform.cpp:
* svg/SVGTransform.h:
* svg/SVGTransform.idl:
* svg/SVGTransformDistance.cpp:
* svg/SVGTransformDistance.h:
* svg/SVGTransformList.cpp:
* svg/SVGTransformList.h:
* svg/SVGTransformList.idl:
* svg/SVGTransformable.cpp:
* svg/SVGTransformable.h:
* svg/SVGURIReference.cpp:
* svg/SVGURIReference.h:
* svg/SVGURIReference.idl:
* svg/SVGUnitTypes.h:
* svg/SVGUnitTypes.idl:
* svg/SVGUnknownElement.h:
* svg/SVGUseElement.cpp:
* svg/SVGUseElement.h:
* svg/SVGUseElement.idl:
* svg/SVGVKernElement.idl:
* svg/SVGViewElement.cpp:
* svg/SVGViewElement.h:
* svg/SVGViewElement.idl:
* svg/SVGViewSpec.cpp:
* svg/SVGViewSpec.h:
* svg/SVGViewSpec.idl:
* svg/SVGZoomAndPan.cpp:
* svg/SVGZoomAndPan.h:
* svg/SVGZoomAndPan.idl:
* svg/SVGZoomEvent.cpp:
* svg/SVGZoomEvent.h:
* svg/SVGZoomEvent.idl:
* svg/animation/SMILTime.cpp:
(WebCore::operator*):
* svg/animation/SMILTime.h:
* svg/animation/SMILTimeContainer.cpp:
* svg/animation/SMILTimeContainer.h:
* svg/animation/SVGSMILElement.cpp:
* svg/animation/SVGSMILElement.h:
* svg/graphics/SVGImage.cpp:
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.cpp:
* svg/graphics/SVGImageCache.h:
* svg/graphics/SVGImageChromeClient.h:
* svg/graphics/SVGImageForContainer.cpp:
* svg/graphics/SVGImageForContainer.h:
* svg/graphics/filters/SVGFEImage.cpp:
* svg/graphics/filters/SVGFEImage.h:
* svg/graphics/filters/SVGFilter.cpp:
* svg/graphics/filters/SVGFilter.h:
* svg/graphics/filters/SVGFilterBuilder.cpp:
* svg/graphics/filters/SVGFilterBuilder.h:
* svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
* svg/properties/SVGAnimatedListPropertyTearOff.h:
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
* svg/properties/SVGAnimatedProperty.cpp:
* svg/properties/SVGAnimatedProperty.h:
* svg/properties/SVGAnimatedPropertyDescription.h:
* svg/properties/SVGAnimatedPropertyMacros.h:
* svg/properties/SVGAnimatedPropertyTearOff.h:
* svg/properties/SVGAnimatedStaticPropertyTearOff.h:
* svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
* svg/properties/SVGAttributeToPropertyMap.cpp:
* svg/properties/SVGAttributeToPropertyMap.h:
* svg/properties/SVGListProperty.h:
* svg/properties/SVGListPropertyTearOff.h:
* svg/properties/SVGPathSegListPropertyTearOff.cpp:
* svg/properties/SVGPathSegListPropertyTearOff.h:
* svg/properties/SVGProperty.h:
* svg/properties/SVGPropertyInfo.cpp:
* svg/properties/SVGPropertyInfo.h:
* svg/properties/SVGPropertyTearOff.h:
* svg/properties/SVGPropertyTraits.h:
* svg/properties/SVGStaticListPropertyTearOff.h:
* svg/properties/SVGStaticPropertyTearOff.h:
* svg/properties/SVGStaticPropertyWithParentTearOff.h:
* svg/properties/SVGTransformListPropertyTearOff.h:
* svg/svgattrs.in:
* svg/svgtags.in:
* xml/XMLErrors.cpp:
(WebCore::XMLErrors::insertErrorMessageBlock):
* xml/parser/XMLDocumentParser.cpp:
2014-02-05 Zan Dobersek <zdobersek@igalia.com>
Manage CalcExpressionNode and derived classes through std::unique_ptr instead of OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=128118
Reviewed by Darin Adler.
Replace uses of OwnPtr for CalcExpressionNode and derived classes with std::unique_ptr.
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcPrimitiveValue::toCalcValue):
(WebCore::CSSCalcBinaryOperation::toCalcValue):
* css/CSSCalculationValue.h:
* platform/CalculationValue.cpp:
(WebCore::CalculationValue::create):
* platform/CalculationValue.h:
(WebCore::CalculationValue::CalculationValue):
(WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation):
* platform/Length.cpp:
(WebCore::Length::blendMixedTypes):
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeCenterCoordinate::updateComputedLength):
2014-02-05 Zan Dobersek <zdobersek@igalia.com>
Remove CLASS_IF_GCC workarounds
https://bugs.webkit.org/show_bug.cgi?id=128207
Reviewed by Anders Carlsson.
Remove the CLASS_IF_GCC macro that was defined to 'class' when using the GCC compiler.
The macro was then used in class friendship declarations for templated classes to avoid
corner-case compiler failures on both GCC pre-4.7 and MSVC pre-2013. The problematic
versions of both compilers are no longer supported, so this macro is good to go.
* bindings/generic/RuntimeEnabledFeatures.h:
2014-02-05 Ryuan Choi <ryuan.choi@samsung.com>
MediaPlayerPrivateGStreamerBase should have virtual destructor
https://bugs.webkit.org/show_bug.cgi?id=128238
Reviewed by Carlos Garcia Campos.
MediaPlayerPrivateGStreamer inherit MediaPlayerPrivateGStreamerBase.
So MediaPlayerPrivateGStreamerBase should have virtual destructor.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Made destructor as virtual.
2014-02-04 Andreas Kling <akling@apple.com>
Remove <iframe seamless> support.
<https://webkit.org/b/128213>
Seamless iframes were behind a runtime flag that we never enabled,
and the only other engine that implemented them (Blink) recently
removed them. Since the feature is very invasive, let's take it
out for now.
Rubber-stamped by Antti Koivisto.
* Configurations/FeatureDefines.xcconfig:
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::parentObjectIfExists):
(WebCore::AccessibilityRenderObject::parentObject):
(WebCore::AccessibilityRenderObject::boundingBoxRect):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::populatePseudoTypeByNameMap):
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* css/html.css:
(iframe):
* dom/Document.cpp:
(WebCore::Document::scheduleStyleRecalc):
(WebCore::Document::implicitOpen):
(WebCore::Document::initSecurityContext):
* dom/Document.h:
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::SecurityContext):
* dom/SecurityContext.h:
* html/HTMLAttributeNames.in:
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::HTMLIFrameElement):
(WebCore::HTMLIFrameElement::isPresentationAttribute):
(WebCore::HTMLIFrameElement::parseAttribute):
* html/HTMLIFrameElement.h:
* html/HTMLIFrameElement.idl:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::findFrameForNavigation):
* page/FrameView.cpp:
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::isInChildFrameWithFrameFlattening):
* page/Location.cpp:
(WebCore::Location::setLocation):
* rendering/RenderBox.h:
(WebCore::RenderBox::stretchesToViewport):
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::shouldComputeSizeAsReplaced):
(WebCore::RenderIFrame::isInlineBlockOrInlineTable):
(WebCore::RenderIFrame::flattenFrame):
(WebCore::RenderIFrame::layout):
* rendering/RenderIFrame.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::initializeLayoutState):
(WebCore::RenderView::layout):
* rendering/RenderView.h:
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
* style/StyleResolveTree.cpp:
(WebCore::Style::resolveTree):
2014-02-04 Tim Horton <timothy_horton@apple.com>
[iOS][wk2] Make development builds of WebKit work on device
https://bugs.webkit.org/show_bug.cgi?id=128230
Reviewed by Anders Carlsson.
* platform/RuntimeApplicationChecksIOS.mm:
(WebCore::applicationIsWebProcess):
Add WebContent.Development as an additional name for the WebContent process.
2014-02-04 Brady Eidson <beidson@apple.com>
IDB: indexeddb/mozilla/add-twice-failure.html fails
<rdar://problem/15982569> and https://bugs.webkit.org/show_bug.cgi?id=128208
Reviewed by Tim Horton.
Covered specifically by indexeddb/mozilla/add-twice-failure.html and a handful of others.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onError): Improve logging.
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::abort): Improve logging.
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::PutOperation::perform): Don’t abort the transaction when an error occurred.
* WebCore.exp.in:
2014-02-04 Yoav Weiss <yoav@yoav.ws>
Use srcset's pixel density to determine intrinsic size
https://bugs.webkit.org/show_bug.cgi?id=123832
Reviewed by Dean Jackson.
The patch is a port of a similar Blink patch: https://codereview.chromium.org/25105004
According to the spec "When an img element has a current pixel density that is not 1.0,
the element's image data must be treated as if its resolution, in device pixels per CSS pixels,
was the current pixel density."
I've added that support using the following changes:
- bestFitSourceForImageAttributes now returns the image candidate to HTMLImageElement.
- HTMLImageElement passes the devicePixelRatio data to RenderImage, which stores it.
- Bitmap images are scaled using the devicePixelRatio at RenderImageResource's intrinsicSize() and imageSize().
- SVG images are scaled using the devicePixelRatio at RenderReplaced::computeAspectRatioInformationForRenderBox.
- Canvas support added at CanvasRenderingContext2D::size.
Tests: fast/hidpi/image-srcset-intrinsic-size.html
fast/hidpi/image-srcset-png-canvas.html
fast/hidpi/image-srcset-png.html
fast/hidpi/image-srcset-relative-svg-canvas-2x.html
fast/hidpi/image-srcset-relative-svg.html
fast/hidpi/image-srcset-space-left-nomodifier.html
fast/hidpi/image-srcset-svg-canvas-2x.html
fast/hidpi/image-srcset-svg-canvas.html
fast/hidpi/image-srcset-svg.html
fast/hidpi/image-srcset-svg2.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::createRenderer):
* html/HTMLImageElement.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::size):
(WebCore::CanvasRenderingContext2D::drawImage):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::compareByScaleFactor):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):
* html/parser/HTMLParserIdioms.h:
(WebCore::ImageWithScale::ImageWithScale):
(WebCore::ImageWithScale::imageURL):
(WebCore::ImageWithScale::scaleFactor):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
* rendering/RenderImage.h:
(WebCore::RenderImage::setImageDevicePixelRatio):
(WebCore::RenderImage::imageDevicePixelRatio):
* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::imageSize):
(WebCore::RenderImageResource::intrinsicSize):
(WebCore::RenderImageResource::getImageSize):
* rendering/RenderImageResource.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
2014-02-04 Geoffrey Garen <ggaren@apple.com>
Rolled out <http://trac.webkit.org/changeset/163280>:
Push DOM attributes into the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=127969
It caused performance regressions, and broken websites on iOS.
Reviewed by Geoffrey Garen.
* bindings/js/JSDOMBinding.h:
(WebCore::getStaticValueSlotEntryWithoutCaching):
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::nameGetter):
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::putDelegate):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(InstanceOverridesGetOwnPropertySlot):
(PrototypeOverridesGetOwnPropertySlot):
(GenerateAttributesHashTable):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::getOwnPropertySlot):
(WebCore::jsTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachable::getOwnPropertySlot):
(WebCore::jsTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructor):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListener::getOwnPropertySlot):
(WebCore::jsTestMediaQueryListListenerConstructor):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructor::getOwnPropertySlot):
(WebCore::jsTestNamedConstructorConstructor):
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNode::getOwnPropertySlot):
(WebCore::jsTestNodeConstructor):
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
(WebCore::jsTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlot):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
(WebCore::jsTestTypedefsConstructor):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattribute::getOwnPropertySlot):
(WebCore::jsattributeConstructor):
* bindings/scripts/test/JS/JSattribute.h:
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonly::getOwnPropertySlot):
(WebCore::jsreadonlyConstructor):
* bindings/scripts/test/JS/JSreadonly.h:
2014-02-04 Alexey Proskuryakov <ap@apple.com>
WebCrypto HMAC verification uses a non-constant-time memcmp
https://bugs.webkit.org/show_bug.cgi?id=128198
<rdar://problem/15976961>
Reviewed by Oliver Hunt.
* crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::CryptoAlgorithmHMAC::platformVerify):
Use a constant time memcmp.
2014-02-04 Simon Fraser <simon.fraser@apple.com>
Add WK2 event handling path for iOS, and make Mac and iOS code more similar
https://bugs.webkit.org/show_bug.cgi?id=128199
Reviewed by Sam Weinig.
EventHandlerIOS need some changes for WebKit2, where we have no native
widget. Merge those changes from EventHandlerMac.
Make a few drive-by changes to match EventHandlerMac behavior.
Clean up EventHandlerMac, removing trailing whitespace and fixing
the odd comment.
* page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseMoved):
(WebCore::frameHasPlatformWidget):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::findViewInSubviews):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseMoved):
2014-02-04 Benjamin Poulain <bpoulain@apple.com>
[OSX] Limit progress bar's dimensions to ushort
https://bugs.webkit.org/show_bug.cgi?id=128019
Wordaround a crash in Quartz until <rdar://problem/15855086> is fixed.
Reviewed by Sam Weinig.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::progressBarRectForBounds):
2014-02-04 Anders Carlsson <andersca@apple.com>
Rename StringImpl::getCharacters to StringImpl::characters
https://bugs.webkit.org/show_bug.cgi?id=128205
Reviewed by Antti Koivisto.
Update for WTF changes.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::createTextRuns):
2014-02-04 Anders Carlsson <andersca@apple.com>
Rename equalNonNull to equal and make it take const StringImpl& instead
https://bugs.webkit.org/show_bug.cgi?id=128206
Reviewed by Andreas Kling.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::threadSafeEqual):
(WebCore::threadSafeMatch):
2014-02-04 Anders Carlsson <andersca@apple.com>
Rename String::getCharacters to String::characters
https://bugs.webkit.org/show_bug.cgi?id=128196
Reviewed by Andreas Kling.
Update for WTF::String changes.
* dom/Document.cpp:
(WebCore::canonicalizedTitle):
2014-02-04 Eric Carlson <eric.carlson@apple.com>
Fix Release build after r163390.
* platform/audio/MediaSession.cpp: Add "#if !LOG_DISABLED" around logging-only function.
2014-02-04 Eric Carlson <eric.carlson@apple.com>
Refine MediaSession interruptions
https://bugs.webkit.org/show_bug.cgi?id=128125
Reviewed by Jer Noble.
Test: media/video-background-playback.html
* WebCore.exp.in: Export applicationWillEnterForeground and applicationWillEnterBackground for
Internals.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::play): Ask the media session if playback is allowed instead of check
to see if it is interrupted directly.
(WebCore::HTMLMediaElement::pause): Ask the media session if pausing is allowed instead of check
to see if it is interrupted directly.
(WebCore::HTMLMediaElement::mediaType): Return media type based on media characteristics once
the information is available.
(WebCore::HTMLMediaElement::resumePlayback): New.
* html/HTMLMediaElement.h:
* html/HTMLMediaSession.cpp:
(WebCore::restrictionName): New, use for logging only.
(WebCore::HTMLMediaSession::addBehaviorRestriction): Log restriction changes.
(WebCore::HTMLMediaSession::removeBehaviorRestriction): Ditto.
* html/HTMLMediaSession.h:
* platform/audio/MediaSession.cpp:
(WebCore::stateName): New, used for logging.
(WebCore::MediaSession::MediaSession): Don't cache client media type because it can change.
(WebCore::MediaSession::setState): Log state changes.
(WebCore::MediaSession::beginInterruption): Remember the current state in case we want to use it
to restore state when the interruption ends.
(WebCore::MediaSession::endInterruption): Resume playback if appropriate.
(WebCore::MediaSession::clientWillBeginPlayback): Track the client's playback state.
(WebCore::MediaSession::clientWillPausePlayback): Ditto.
(WebCore::MediaSession::mediaType): Ask client for state.
* platform/audio/MediaSession.h:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager): m_interruptions -> m_interrupted.
(WebCore::MediaSessionManager::beginInterruption): Don't assume interruptions are always balanced.
(WebCore::MediaSessionManager::endInterruption): Ditto.
(WebCore::MediaSessionManager::addSession):
(WebCore::MediaSessionManager::applicationWillEnterBackground): Interrupt client if it is not
allowed to play in the background.
(WebCore::MediaSessionManager::applicationWillEnterForeground): End client interruption if it
was stopped by an interruption.
* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS): Clear the helper callback.
(WebCore::MediaSessionManageriOS::resetRestrictions): Mark video as not allowed to play
while the application is in the background. Register for application suspend/resume
notifications.
(-[WebMediaSessionHelper clearCallback]): Set _callback to nil.
(-[WebMediaSessionHelper applicationWillEnterForeground:]): New, notify client of application
state change.
(-[WebMediaSessionHelper applicationWillResignActive:]): Ditto.
* platform/audio/mac/AudioDestinationMac.h: Add resumePlayback.
* testing/Internals.cpp:
(WebCore::Internals::applicationWillEnterForeground): New, simulate application context switch.
(WebCore::Internals::applicationWillEnterBackground): Ditto.
(WebCore::Internals::setMediaSessionRestrictions): Add "BackgroundPlaybackNotPermitted" restriction.
* testing/Internals.h:
* testing/Internals.idl:
2014-02-04 Andreas Kling <akling@apple.com>
Remove CPP bindings generator.
<https://webkit.org/b/128189>
Scrub out some leftover Blackberry gunk.
Reviewed by Anders Carlsson.
* Modules/webdatabase/SQLResultSet.idl:
* bindings/cpp/WebDOMCString.cpp: Removed.
* bindings/cpp/WebDOMCString.h: Removed.
* bindings/cpp/WebDOMDOMWindowCustom.cpp: Removed.
* bindings/cpp/WebDOMEventListenerCustom.cpp: Removed.
* bindings/cpp/WebDOMEventTarget.cpp: Removed.
* bindings/cpp/WebDOMEventTarget.h: Removed.
* bindings/cpp/WebDOMHTMLCollectionCustom.cpp: Removed.
* bindings/cpp/WebDOMHTMLDocumentCustom.cpp: Removed.
* bindings/cpp/WebDOMHTMLOptionsCollectionCustom.cpp: Removed.
* bindings/cpp/WebDOMNodeCustom.cpp: Removed.
* bindings/cpp/WebDOMNodeFilterCustom.cpp: Removed.
* bindings/cpp/WebDOMObject.h: Removed.
* bindings/cpp/WebDOMString.cpp: Removed.
* bindings/cpp/WebDOMString.h: Removed.
* bindings/cpp/WebExceptionHandler.cpp: Removed.
* bindings/cpp/WebExceptionHandler.h: Removed.
* bindings/cpp/WebNativeEventListener.cpp: Removed.
* bindings/cpp/WebNativeEventListener.h: Removed.
* bindings/cpp/WebNativeNodeFilterCondition.cpp: Removed.
* bindings/cpp/WebNativeNodeFilterCondition.h: Removed.
* bindings/scripts/CodeGeneratorCPP.pm: Removed.
* bindings/scripts/test/CPP/CPPTestSupplemental.cpp: Removed.
* bindings/scripts/test/CPP/CPPTestSupplemental.h: Removed.
* bindings/scripts/test/CPP/WebDOMFloat64Array.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMFloat64Array.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestCallback.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestCallback.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestEventConstructor.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestEventConstructor.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestEventTarget.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestEventTarget.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestException.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestException.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestImplements.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestImplements.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestInterface.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestInterface.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestMediaQueryListListener.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestMediaQueryListListener.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestNamedConstructor.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestNamedConstructor.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestNode.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestNode.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestObj.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestObj.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestSupplemental.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestSupplemental.h: Removed.
* bindings/scripts/test/CPP/WebDOMTestTypedefs.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMTestTypedefs.h: Removed.
* bindings/scripts/test/CPP/WebDOMattribute.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMattribute.h: Removed.
* bindings/scripts/test/CPP/WebDOMreadonly.cpp: Removed.
* bindings/scripts/test/CPP/WebDOMreadonly.h: Removed.
* css/StyleSheet.idl:
* dom/CustomEvent.idl:
* dom/Document.idl:
* dom/Event.idl:
* dom/Node.idl:
* dom/PopStateEvent.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLInputElement.idl:
* html/canvas/CanvasRenderingContext2D.idl:
* page/DOMWindow.idl:
* page/Location.idl:
* workers/DedicatedWorkerGlobalScope.idl:
2014-02-04 Dan Bernstein <mitz@apple.com>
iOS build fix.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
2014-02-03 Zan Dobersek <zdobersek@igalia.com>
Manage MediaQuery and MediaQueryExp classes through std::unique_ptr instead of OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=128117
Reviewed by Darin Adler.
Replace uses of OwnPtr for the MediaQuery and MediaQueryExp classes with std::unique_ptr.
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseMediaQuery):
* css/CSSParser.h:
* css/MediaList.cpp:
(WebCore::MediaQuerySet::parse):
(WebCore::MediaQuerySet::add):
(WebCore::MediaQuerySet::remove):
(WebCore::MediaQuerySet::addMediaQuery):
(WebCore::MediaList::item):
(WebCore::reportMediaQueryWarningIfNeeded):
* css/MediaList.h:
(WebCore::MediaQuerySet::queryVector):
* css/MediaQuery.cpp:
(WebCore::MediaQuery::MediaQuery):
* css/MediaQuery.h:
(WebCore::MediaQuery::expressions):
(WebCore::MediaQuery::copy):
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::eval):
* css/MediaQueryExp.cpp:
(WebCore::MediaQueryExp::MediaQueryExp):
* css/MediaQueryExp.h:
(WebCore::MediaQueryExp::copy):
2014-02-04 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
Remove SVG_DOM_OBJC_BINDINGS after r161638.
https://bugs.webkit.org/show_bug.cgi?id=128182
Reviewed by Andreas Kling.
Removed ENABLE(SVG_DOM_OBJC_BINDINGS).
No tests required.
* bindings/objc/DOMUIKitExtensions.mm:
(-[DOMNode boundingBoxes]):
(-[DOMNode absoluteQuads]):
2014-02-04 Radu Stavila <stavila@adobe.com>
REGRESSION (r159609): Images are corrupted when hovering over buttons @ github.com
https://bugs.webkit.org/show_bug.cgi?id=127729
Reviewed by Antti Koivisto.
When clipping a rect, the RenderLayer would not properly save the context when
the clipping rect is the same as the paint rect and the clipping rect
has radius.
Test: fast/regions/repaint/hover-border-radius.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::restoreClip):
2014-02-04 Ryuan Choi <ryuan.choi@samsung.com>
[CMAKE] Remove workaround for GCC 4.6
https://bugs.webkit.org/show_bug.cgi?id=128176
Reviewed by Csaba Osztrogonác.
Since r162126, WebKit requires at least 4.7.
* CMakeLists.txt:
2014-02-04 Zan Dobersek <zdobersek@igalia.com>
Manage RuleSet and RuleData classes through std::unique_ptr instead of OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=128116
Reviewed by Darin Adler.
Replace uses of OwnPtr for the RuleSet and RuleData classes with std::unique_ptr.
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
(WebCore::CSSDefaultStyleSheets::viewSourceStyle):
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::initUserStyle):
(WebCore::makeRuleSet):
(WebCore::DocumentRuleSets::resetAuthorStyle):
* css/DocumentRuleSets.h:
* css/RuleSet.cpp:
(WebCore::RuleSet::addToRuleSet):
(WebCore::RuleSet::addRegionRule):
* css/RuleSet.h:
(WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
2014-02-04 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r163376.
http://trac.webkit.org/changeset/163376
https://bugs.webkit.org/show_bug.cgi?id=128184
Unexpected test failures. (Requested by eric_carlson on
#webkit).
* WebCore.exp.in:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::addBehaviorRestriction):
(WebCore::HTMLMediaSession::removeBehaviorRestriction):
(WebCore::HTMLMediaSession::clientWillBeginPlayback):
* html/HTMLMediaSession.h:
* platform/audio/MediaSession.cpp:
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::beginInterruption):
(WebCore::MediaSession::endInterruption):
* platform/audio/MediaSession.h:
(WebCore::MediaSession::mediaType):
(WebCore::MediaSession::setState):
(WebCore::MediaSessionClient::beginInterruption):
(WebCore::MediaSessionClient::endInterruption):
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager):
(WebCore::MediaSessionManager::beginInterruption):
(WebCore::MediaSessionManager::endInterruption):
(WebCore::MediaSessionManager::addSession):
* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.h:
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS):
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::resetRestrictions):
(-[WebMediaSessionHelper initWithCallback:]):
* platform/audio/mac/AudioDestinationMac.h:
* testing/Internals.cpp:
(WebCore::Internals::setMediaSessionRestrictions):
* testing/Internals.h:
* testing/Internals.idl:
2014-02-04 Eric Carlson <eric.carlson@apple.com>
Refine MediaSession interruptions
https://bugs.webkit.org/show_bug.cgi?id=128125
Reviewed by Jer Noble.
Test: media/video-background-playback.html
* WebCore.exp.in: Export applicationWillEnterForeground and applicationWillEnterBackground for
Internals.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::play): Ask the media session if playback is allowed instead of check
to see if it is interrupted directly.
(WebCore::HTMLMediaElement::pause): Ask the media session if pausing is allowed instead of check
to see if it is interrupted directly.
(WebCore::HTMLMediaElement::mediaType): Return media type based on media characteristics once
the information is available.
(WebCore::HTMLMediaElement::resumePlayback): New.
* html/HTMLMediaElement.h:
* html/HTMLMediaSession.cpp:
(WebCore::restrictionName): New, use for logging only.
(WebCore::HTMLMediaSession::addBehaviorRestriction): Log restriction changes.
(WebCore::HTMLMediaSession::removeBehaviorRestriction): Ditto.
* html/HTMLMediaSession.h:
* platform/audio/MediaSession.cpp:
(WebCore::stateName): New, used for logging.
(WebCore::MediaSession::MediaSession): Don't cache client media type because it can change.
(WebCore::MediaSession::setState): Log state changes.
(WebCore::MediaSession::beginInterruption): Remember the current state in case we want to use it
to restore state when the interruption ends.
(WebCore::MediaSession::endInterruption): Resume playback if appropriate.
(WebCore::MediaSession::clientWillBeginPlayback): Track the client's playback state.
(WebCore::MediaSession::clientWillPausePlayback): Ditto.
(WebCore::MediaSession::mediaType): Ask client for state.
* platform/audio/MediaSession.h:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager): m_interruptions -> m_interrupted.
(WebCore::MediaSessionManager::beginInterruption): Don't assume interruptions are always balanced.
(WebCore::MediaSessionManager::endInterruption): Ditto.
(WebCore::MediaSessionManager::addSession):
(WebCore::MediaSessionManager::applicationWillEnterBackground): Interrupt client if it is not
allowed to play in the background.
(WebCore::MediaSessionManager::applicationWillEnterForeground): End client interruption if it
was stopped by an interruption.
* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS): Clear the helper callback.
(WebCore::MediaSessionManageriOS::resetRestrictions): Mark video as not allowed to play
while the application is in the background. Register for application suspend/resume
notifications.
(-[WebMediaSessionHelper clearCallback]): Set _callback to nil.
(-[WebMediaSessionHelper applicationWillEnterForeground:]): New, notify client of application
state change.
(-[WebMediaSessionHelper applicationWillResignActive:]): Ditto.
* platform/audio/mac/AudioDestinationMac.h: Add resumePlayback.
* testing/Internals.cpp:
(WebCore::Internals::applicationWillEnterForeground): New, simulate application context switch.
(WebCore::Internals::applicationWillEnterBackground): Ditto.
(WebCore::Internals::setMediaSessionRestrictions): Add "BackgroundPlaybackNotPermitted" restriction.
* testing/Internals.h:
* testing/Internals.idl:
2014-02-04 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Fix Assert SHOULD NEVER BE REACHED in RenderLayer::enclosingElement()
https://bugs.webkit.org/show_bug.cgi?id=123329
Reviewed by Mihnea Ovidenie.
The flowthread doesn't have an enclosing element, so when hitting the layer of the
flowthread (e.g. the descent area of the RootInlineBox for the image flowed alone
inside the flow thread) we're letting the hit testing continue so it will hit the region.
Tests: fast/regions/assert-hit-test-image.html
fast/regions/auto-size/region-same-height-as-div-with-inline-child.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestContents):
2014-02-04 Mihnea Ovidenie <mihnea@adobe.com>
ASSERTION FAILED: !object || (object->isRenderBlock())
https://bugs.webkit.org/show_bug.cgi?id=127687
Reviewed by Ryosuke Niwa.
Currently, when computing the visible position for a point inside a region,
we transform the point into flow thread coordinates and delegate the processing
to the first child of the flow thread which we incorrectly assume is a block.
However, we can specify flow-into also on inline elements which leads to the
assertion.
Instead of delegating the processing to the first child when the flow thread
has children, delegate the computation of the visible position to the
flow thread and avoid any assumption about the nature of the flow thread
first child. If the flow thread does not have any children that should be
rendered by the region, let the region behave like an ordinary element
with no children.
Tests: fast/regions/selection/position-for-point-inline-content-node.html
fast/regions/selection/selection-ended-in-empty-region.html
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::positionForPoint):
2014-02-03 Andreas Kling <akling@apple.com>
Remove stray vestige from ::-webkit-distributed selector.
<https://webkit.org/b/128154>
Reviewed by Anders Carlsson.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
2014-02-03 Andreas Kling <akling@apple.com>
Remove the CSS @host rule.
<https://webkit.org/b/128146>
The @host rule is no longer part of the spec, and besides this code
was behind ENABLE(SHADOW_DOM) so nobody was building it.
Reviewed by Anders Carlsson.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
(kitClass):
* css/CSSAllInOne.cpp:
* css/CSSGrammar.y.in:
* css/CSSHostRule.cpp: Removed.
* css/CSSHostRule.h: Removed.
* css/CSSHostRule.idl: Removed.
* css/CSSParser.cpp:
(WebCore::CSSParser::detectDashToken):
(WebCore::CSSParser::detectAtToken):
* css/CSSParser.h:
* css/CSSRule.h:
* css/CSSRule.idl:
* css/InspectorCSSOMWrappers.cpp:
(WebCore::InspectorCSSOMWrappers::collect):
* css/StyleResolver.h:
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
* css/StyleRule.h:
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* inspector/InspectorStyleSheet.cpp:
(flattenSourceData):
(WebCore::asCSSRuleList):
2014-02-03 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Do not query the scaling factor when the graphics context is invalid.
https://bugs.webkit.org/show_bug.cgi?id=128131
Reviewed by Simon Fraser.
No existing context to test it.
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::platformInit):
2014-02-03 Hunseop Jeong <hs85.jeong@samsung.com>
[Cairo] GraphicsContext::m_pixelSnappingFactor is uninitialized
https://bugs.webkit.org/show_bug.cgi?id=128102
Reviewed by Csaba Osztrogonác.
Initalize m_pixelSnappingFactor to 1
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::GraphicsContext): Initialized pixelSnappingFactor to 1 and
fixed the coding style violation.
2014-02-03 Brian Burg <bburg@apple.com>
Web Replay: upstream base input classes and the input cursor interface
https://bugs.webkit.org/show_bug.cgi?id=128110
Reviewed by Joseph Pecoraro.
Add EventLoopInput, a base class for replay inputs that are handled
as if they begin a new run loop. For example, navigations, user input,
network callbacks, and asynchronous timers are modeled by inputs which
derive from this base class.
Add the ability to set an InputCursor instance on a Document. This
is the means for connecting a replay recording to a document context.
Add forwarding headers for some fundamental replay classes.
No new tests; no new functionality is exposed.
* ForwardingHeaders/replay/EmptyInputCursor.h: Added.
* ForwardingHeaders/replay/InputCursor.h: Added.
* ForwardingHeaders/replay/NondeterministicInput.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::inputCursor):
(WebCore::Document::setInputCursor):
* replay/EventLoopInput.h: Added.
(WebCore::ReplayPosition::ReplayPosition):
(WebCore::ReplayPosition::index):
(WebCore::ReplayPosition::time):
(WebCore::EventLoopInputBase::EventLoopInputBase):
(WebCore::EventLoopInputBase::~EventLoopInputBase):
(WebCore::EventLoopInputBase::setPosition):
(WebCore::EventLoopInputBase::position):
2014-02-03 Jinwoo Song <jinwoo7.song@samsung.com>
Remove unused code in CSSParser.cpp
https://bugs.webkit.org/show_bug.cgi?id=128135
Reviewed by Darin Adler.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
2014-02-03 Brent Fulgham <bfulgham@apple.com>
[Mac] WK1 Clients Only Latch on Momentum Scroll
https://bugs.webkit.org/show_bug.cgi?id=128133
Reviewed by Simon Fraser.
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::useLatchedEventElement): Update
predicate to recognize the start and change phases of the wheel
event as latchable (not just momentum start/change).
2014-02-03 Dean Jackson <dino@apple.com>
Feature flag for shape-inside
https://bugs.webkit.org/show_bug.cgi?id=128001
Reviewed by Simon Fraser.
Add CSS_SHAPE_INSIDE flag.
I wrapped everything that is specific to shape-inside in
this flag. It is now possible to build with CSS Shapes enabled
but shape-inside disabled. CSS_SHAPE_INSIDE is dependent on
CSS_SHAPES, so disabling the latter should also disable the former.
* Configurations/FeatureDefines.xcconfig:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseShapeProperty):
* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::loadPendingImages):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::updateShapesBeforeBlockLayout):
(WebCore::RenderBlock::updateShapesAfterBlockLayout):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
(WebCore::constructBidiRunsForLine):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::~RenderElement):
(WebCore::RenderElement::initializeStyle):
(WebCore::RenderElement::setStyle):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::createStyle):
* rendering/RenderView.h:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::handleEndOfLine):
* rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::nextLineBreak):
* rendering/line/LineWidth.cpp:
(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::updateAvailableWidth):
(WebCore::LineWidth::fitBelowFloats):
* rendering/line/LineWidth.h:
* rendering/shapes/ShapeInsideInfo.cpp:
* rendering/shapes/ShapeInsideInfo.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-02-03 Radu Stavila <stavila@adobe.com>
REGRESSION (r163018): Can’t scroll in <select> lists
https://bugs.webkit.org/show_bug.cgi?id=128090
The regression was caused by the fact that a new method scrollWithWheelEventLocation() was added
to RenderBox to replace the generic scroll() method for the particular case of scrolling using
the mouse wheel. This turned out to be a mistake because in the case of some elements, like select lists,
the scroll method was overriden and now the incorrect method was being called.
The solution was to remove the new method and just add two default parameters to the generic
scroll method.
Reviewed by Simon Fraser.
Test: fast/scrolling/scroll-select-list.html
* page/EventHandler.cpp:
(WebCore::scrollNode):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scroll):
* rendering/RenderBox.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::scroll):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::scroll):
* rendering/RenderListBox.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::scroll):
* rendering/RenderTextControlSingleLine.h:
2014-02-03 Chris Fleizach <cfleizach@apple.com>
AX: WebKit should support @headers/@id for complex accessible web tables
https://bugs.webkit.org/show_bug.cgi?id=128114
Reviewed by Darin Adler.
Expose the headers attribute for table cells to accessibility.
Test: platform/mac/accessibility/table-headers-attribute.html
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::columnHeaders):
2014-02-03 Andreas Kling <akling@apple.com>
CTTE: RenderSVGGradientStop always has a SVGStopElement.
<https://webkit.org/b/128107>
RenderSVGGradientStop is never anonymous and always has a
corresponding SVGStopElement. Codify this by adding an element()
overload that returns an SVGStopElement&.
Also added missing overrides and made most functions private.
Reviewed by Darin Adler.
* rendering/svg/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::styleDidChange):
(WebCore::RenderSVGGradientStop::gradientElement):
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGGradientStop):
2014-02-03 David Kilzer <ddkilzer@apple.com>
Remove CachedImageManual class
<http://webkit.org/b/128043>
Reviewed by Darin Adler.
Get rid of the CachedImageManual class by inlining its
functionality into CachedImage. This makes it possible to
de-virtual-ize isManual() (renamed to isManuallyCached()) and to
make CachedImage final. The size of CachedImage does not
increase because we turn an existing bool into a bitfield to add
an m_isManuallyCached bit, and create a static CachedImageClient
in MemoryCache.cpp as the "fake" client to keep the manually
cached image alive in the cache.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImage): Set m_isManuallyCached
bitfield. For one overloaded constructor, move the
CachedImageManual code into the CachedImage constructor.
(WebCore::CachedImageManual::CachedImageManual): Remove.
(WebCore::CachedImage::mustRevalidateDueToCacheHeaders): Move
method from CachedImageManual to CachedImage, and put
ManuallyCached behavior behind a check.
* loader/cache/CachedImage.h: Update includes. Make CachedImage
final. Add CachedImage::CacheBehaviorType enum when manually
cached images are created. Move CachedImageManual methods into
CachedImage, remove addFakeClient() and removeFakeClient()
methods (MemoryCache methods use addClient() and removeClient()
with a static CachedImageClient), and remove the
CachedImageManual class definition. Change
m_shouldPaintBrokenImage to a bitfield and add
m_isManuallyCached bitfield.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::addImageToCache): Use std::unique_ptr and
remove useless NULL check after calling CachedImage constructor.
(WebCore::MemoryCache::removeImageFromCache):
- Update to use CachedImage class instead of CachedImageManual.
2014-02-03 Zan Dobersek <zdobersek@igalia.com>
Move the webdatabase module source code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127278
Reviewed by Antti Koivisto.
Replace the majority of OwnPtr uses in the webdatabase module with std::unique_ptr.
The only remaining uses are due to ScriptExecutionContext::Task subclasses.
* Modules/webdatabase/AbstractSQLTransactionBackend.h:
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/DatabaseTask.h:
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::DatabaseThread):
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/OriginLock.cpp:
* Modules/webdatabase/SQLStatement.cpp:
* Modules/webdatabase/SQLStatement.h:
* Modules/webdatabase/SQLStatementBackend.cpp:
(WebCore::SQLStatementBackend::create):
(WebCore::SQLStatementBackend::SQLStatementBackend):
* Modules/webdatabase/SQLStatementBackend.h:
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransactionBackend::executeSQL):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/webdatabase/SQLTransactionBackendSync.cpp:
(WebCore::SQLTransactionBackendSync::SQLTransactionBackendSync):
(WebCore::SQLTransactionBackendSync::begin):
(WebCore::SQLTransactionBackendSync::commit):
(WebCore::SQLTransactionBackendSync::rollback):
* Modules/webdatabase/SQLTransactionBackendSync.h:
2014-02-03 Andreas Kling <akling@apple.com>
CTTE: Grab bag of SVGRenderTreeAsText cleanups.
<https://webkit.org/b/128099>
Made some of the DRT SVG functions take more specific types than
RenderObject. Removed some redundant casts.
Reviewed by Anders Carlsson.
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* rendering/svg/SVGRenderTreeAsText.h:
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
(WebCore::writeSVGContainer):
Make writeSVGResourceContainer() and writeSVGContainer() take the
final type instead of RenderObject.
(WebCore::writeStyle):
(WebCore::writePositionAndStyle):
Make these take RenderElement instead of RenderObject.
(WebCore::writeChildren):
Use child renderer iterator.
(WebCore::writeResources):
Remove unnecessary cast.
2014-01-25 Darin Adler <darin@apple.com>
Stop using Unicode.h
https://bugs.webkit.org/show_bug.cgi?id=127633
Reviewed by Anders Carlsson.
* Modules/indexeddb/IDBKeyPath.cpp:
* css/CSSFontFace.h:
* css/CSSOMUtils.h:
* css/CSSSegmentedFontFace.h:
* css/CSSUnicodeRangeValue.h:
* editing/Editor.cpp:
* editing/SmartReplace.h:
* html/parser/HTMLTokenizer.cpp:
* loader/DocumentLoader.cpp:
* page/ContextMenuController.cpp:
* page/Settings.h:
* platform/DateComponents.h:
* platform/SharedBuffer.cpp:
* platform/graphics/Color.h:
* platform/graphics/FontCache.h:
* platform/graphics/FontData.h:
* platform/graphics/FontDescription.h:
* platform/graphics/FontFastPath.cpp:
* platform/graphics/FontGenericFamilies.h:
* platform/graphics/FontGlyphs.cpp:
* platform/graphics/GlyphMetricsMap.h:
* platform/graphics/GlyphPage.h:
* platform/graphics/GlyphPageTreeNode.cpp:
* platform/graphics/GlyphPageTreeNode.h:
* platform/graphics/SVGGlyph.cpp:
* platform/graphics/WidthIterator.h:
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
* platform/graphics/mac/ComplexTextController.h:
* platform/graphics/win/QTMovie.h:
* platform/graphics/wince/FontWinCE.cpp:
* platform/text/BidiContext.h:
* platform/text/Hyphenation.h:
* platform/text/LocaleToScriptMapping.h:
* platform/text/TextBoundaries.cpp:
* platform/text/TextBoundaries.h:
* platform/text/TextBreakIterator.h:
* platform/text/TextCodec.h:
* platform/text/TextEncoding.h:
* platform/text/TextEncodingRegistry.h:
* platform/text/TextStream.h:
* platform/text/icu/UTextProvider.h:
* platform/text/icu/UTextProviderLatin1.h:
* platform/text/icu/UTextProviderUTF16.h:
* platform/text/wchar/TextBreakIteratorWchar.cpp:
* platform/win/WebCoreTextRenderer.cpp:
* rendering/RootInlineBox.cpp:
* rendering/SimpleLineLayout.cpp:
* rendering/SimpleLineLayoutFunctions.cpp:
* rendering/break_lines.h:
* svg/SVGFontData.cpp:
Removed includes of <wtf/unicode/Unicode.h>, adding includes of
ICU headers and <wtf/text/LChar.h> as needed to replace it.
2014-02-03 Jessie Berlin <jberlin@apple.com>
Revert r163299 since it broke the ML 32-bit Release build
* html/HTMLAnchorElement.cpp:
(WebCore::parsePortFromStringPosition):
(WebCore::HTMLAnchorElement::hash):
(WebCore::HTMLAnchorElement::setHash):
(WebCore::HTMLAnchorElement::host):
(WebCore::HTMLAnchorElement::setHost):
(WebCore::HTMLAnchorElement::hostname):
(WebCore::HTMLAnchorElement::setHostname):
(WebCore::HTMLAnchorElement::pathname):
(WebCore::HTMLAnchorElement::setPathname):
(WebCore::HTMLAnchorElement::port):
(WebCore::HTMLAnchorElement::setPort):
(WebCore::HTMLAnchorElement::protocol):
(WebCore::HTMLAnchorElement::setProtocol):
(WebCore::HTMLAnchorElement::search):
(WebCore::HTMLAnchorElement::origin):
(WebCore::HTMLAnchorElement::setSearch):
(WebCore::HTMLAnchorElement::toString):
* html/HTMLAnchorElement.h:
* html/HTMLAnchorElement.idl:
* html/HTMLAreaElement.idl:
* html/URLUtils.idl:
2014-02-03 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Fix selection and hover effect of content in region with overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=127101
Reviewed by Mihnea Ovidenie.
RenderNamedFlowFragments are not hit candidates. The hit test algorithm will pick the
parent layer, the one of the region.
Test: fast/regions/hover-overflow-hidden.html
* rendering/RenderLayer.cpp:
(WebCore::isHitCandidate):
2014-02-02 Maciej Stachowiak <mjs@apple.com>
Adopt URLUtils interface and template in HTMLAnchorElement and HTMLAreaElement
https://bugs.webkit.org/show_bug.cgi?id=128067
Reviewed by Antti Koivisto.
Tests: fast/dom/HTMLAnchorElement/anchor-password.html
fast/dom/HTMLAnchorElement/anchor-username.html
fast/dom/HTMLAreaElement/area-password.html
fast/dom/HTMLAreaElement/area-username.html
* html/HTMLAnchorElement.cpp:
* html/HTMLAnchorElement.h:
(WebCore::HTMLAnchorElement::setHref): Add version that takes
(and ignores) ExceptionCode. This is needed because the URLUtil
base interface is used for URL, which can throw an exception,
and HTMLAnchorElement, which cannot.
* html/HTMLAnchorElement.idl: implement URLUtils
* html/HTMLAreaElement.idl: implement URLUtils
* html/URLUtils.idl: Treat null as empty string for href
2014-02-03 Krzysztof Czech <k.czech@samsung.com>
[ATK] Expose aria-controls through ATK_RELATION_CONTROLLER_FOR
https://bugs.webkit.org/show_bug.cgi?id=127908
Reviewed by Chris Fleizach.
Based on w3c, aria-controls could be exposed through ATK_RELATION_CONTROLLER_FOR.
Test: accessibility/aria-controls.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::supportsARIAControls):
(WebCore::AccessibilityObject::ariaControlsElements):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::supportsARIAFlowTo):
(WebCore::AccessibilityRenderObject::supportsARIAControls):
(WebCore::AccessibilityRenderObject::ariaControlsElements):
* accessibility/AccessibilityRenderObject.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkRelationSetFromCoreObject):
2014-02-03 Andreas Kling <akling@apple.com>
RenderSVGResource::removeClientFromCache() should take RenderElement&.
<https://webkit.org/b/128097>
Text renderers never have resources associated with them.
This is yet another step towards enforcing that at compile-time
by making all the resource cache interfaces deal in RenderElement.
Also marked the RenderSVGResourceSolidColor class final.
Reviewed by Darin Adler.
* rendering/svg/RenderSVGResource.cpp:
(WebCore::removeFromCacheAndInvalidateDependencies):
(WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
* rendering/svg/RenderSVGResource.h:
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::removeClientFromCache):
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::removeClientFromCache):
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::removeClientFromCache):
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::removeClientFromCache):
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::removeClientFromCache):
* rendering/svg/RenderSVGResourceMasker.h:
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::removeClientFromCache):
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceSolidColor.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::invalidateResourcesOfChildren):
(WebCore::SVGRenderSupport::layoutChildren):
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::removeClientFromCache):
* rendering/svg/SVGResources.h:
2014-02-03 Dan Bernstein <mitz@apple.com>
More iOS build fixing.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):
* page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot):
2014-02-03 Darin Adler <darin@apple.com>
Try to fix iOS build.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::parseToDateComponents):
Use deprecatedCharacters.
2014-02-02 Darin Adler <darin@apple.com>
Obey "delete this" comments, including deleting String::characters and friends
https://bugs.webkit.org/show_bug.cgi?id=126865
Reviewed by Andreas Kling.
* CMakeLists.txt: Deleted HTMLParserErrorCodes.cpp.
* GNUmakefile.list.am: Deleted HTMLParserErrorCodes.cpp/h, and HTMLParserQuirks.h.
* WebCore.vcxproj/WebCore.vcxproj: Deleted HTMLParserErrorCodes.cpp/h.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/HTMLParserErrorCodes.cpp: Removed.
* html/HTMLParserErrorCodes.h: Removed.
* html/HTMLParserQuirks.h: Removed.
* rendering/RenderText.h: Deleted the characters function, leaving behind the
deprecatedCharacters function.
2014-02-02 Brady Eidson <beidson@apple.com>
IDB: Cannot open new databases with the default version
https://bugs.webkit.org/show_bug.cgi?id=128096
Reviewed by Tim Horton.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::openConnectionInternal): Update logic to handle the
current version being NoIntVersion.
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform): Update ASSERT.
2014-02-02 Darin Adler <darin@apple.com>
Fix context save/restore mistake spotted in SVGInlineTextBox::paintTextWithShadows
https://bugs.webkit.org/show_bug.cgi?id=128095
Reviewed by Andreas Kling.
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintTextWithShadows): Move calls to GraphicsContext::restore
and GraphicsContext::clearShadow before restoreGraphicsContextAfterTextPainting, since that
function can swap contexts.
2014-02-02 Andreas Kling <akling@apple.com>
Modernize RenderSVGText::locateRenderSVGTextAncestor().
<https://webkit.org/b/128093>
Make locateRenderSVGTextAncestor() take a reference, and simplify it
internally with lineageOfType.
Switched callers to use 'auto' for the return type so we get some
devirtualization freebies.
Reviewed by Anders Carlsson.
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::objectBoundingBox):
(WebCore::RenderSVGInline::strokeBoundingBox):
(WebCore::RenderSVGInline::repaintRectInLocalCoordinates):
(WebCore::RenderSVGInline::absoluteQuads):
(WebCore::RenderSVGInline::addChild):
(WebCore::RenderSVGInline::removeChild):
* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::setTextInternal):
(WebCore::RenderSVGInlineText::styleDidChange):
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::locateRenderSVGTextAncestor):
* rendering/svg/RenderSVGText.h:
(WebCore::RenderSVGText>):
* rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
(WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForTextRenderer):
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::measureTextRenderer):
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::svgAttributeChanged):
2014-02-02 Andreas Kling <akling@apple.com>
Modernize the toRenderSVGResourceContainer() helper.
<https://webkit.org/b/128091>
Make toRenderSVGResourceContainer() a free function like all the
other casting helpers. Use references instead of pointers where
applicable.
Reviewed by Anders Carlsson.
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
(WebCore::RenderLayer::FilterInfo::removeReferenceFilterClients):
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/svg/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::styleDidChange):
* rendering/svg/RenderSVGResource.cpp:
(WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives):
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
* rendering/svg/SVGResourcesCycleSolver.cpp:
(WebCore::SVGResourcesCycleSolver::resolveCycles):
* svg/SVGElement.cpp:
(WebCore::SVGElement::svgAttributeChanged):
2014-02-02 Andreas Kling <akling@apple.com>
Minor SVGRootInlineBox cleanup.
<https://webkit.org/b/128094>
Remove two virtual functions and sprinkle some missing overrides.
Reviewed by Anders Carlsson.
* rendering/svg/SVGRootInlineBox.h:
2014-01-30 Oliver Hunt <oliver@apple.com>
Push DOM attributes into the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=127969
Reviewed by Mark Lam.
This patch does the actual work of moving dom attributes up the
prototype chain. There are still a few class and edge cases
where we can't do this without impacting existing behaviour,
but they can be fixed separately in later patches.
* bindings/js/JSDOMBinding.h:
(WebCore::getStaticPropertySlotEntryWithoutCaching):
(WebCore::getStaticPropertySlotEntryWithoutCaching<JSDOMWrapper>):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(HasComplexGetOwnProperty):
(ConstructorShouldBeOnInstance):
(AttributeShouldBeOnInstance):
(InstanceAttributeCount):
(PrototypeAttributeCount):
(InstanceOverridesGetOwnPropertySlot):
(PrototypeOverridesGetOwnPropertySlot):
(GenerateAttributesHashTable):
(GenerateImplementation):
2014-02-02 Andreas Kling <akling@apple.com>
RenderSVGResourceContainer clients are always RenderElement.
<https://webkit.org/b/128088>
All clients of RenderSVGResourceContainer are going to be RenderElement,
so make the interface take RenderElement& instead of RenderObject*.
Also modernized the code a bit with C++11 range for loops.
Reviewed by Sam Weinig.
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::addClient):
(WebCore::RenderSVGResourceContainer::removeClient):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::addResourcesFromRenderer):
(WebCore::SVGResourcesCache::removeResourcesFromRenderer):
2014-02-02 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Use floorf/roundf/fabs in device snapping helpers.
https://bugs.webkit.org/show_bug.cgi?id=128075
Reviewed by Darin Adler.
No change in functionality.
* platform/LayoutUnit.h:
(WebCore::roundToDevicePixel):
(WebCore::floorToDevicePixel):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
2014-02-02 Andreas Kling <akling@apple.com>
SVGDocumentExtensions::resourcesCache() should return a reference.
<https://webkit.org/b/128087>
The SVGResourcesCache is always present when the Document is using
SVG extensions, so make this return a reference and propagate that
knowledge to the call site.
This gets rid of an assertion and some rickety looking ->'s.
Also converted a loop to use C++11 range for syntax.
Reviewed by Sam Weinig.
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::resourcesCacheFromRenderer):
(WebCore::SVGResourcesCache::cachedResourcesForRenderObject):
(WebCore::SVGResourcesCache::clientStyleChanged):
(WebCore::SVGResourcesCache::clientWasAddedToTree):
(WebCore::SVGResourcesCache::clientWillBeRemovedFromTree):
(WebCore::SVGResourcesCache::clientDestroyed):
(WebCore::SVGResourcesCache::resourceDestroyed):
* svg/SVGDocumentExtensions.h:
(WebCore::SVGDocumentExtensions::resourcesCache):
2014-02-02 Andreas Kling <akling@apple.com>
RenderSVGInlineText::computeNewScaledFontForStyle() should take references.
<https://webkit.org/b/128086>
Make computeNewScaledFontForStyle() take renderer and style by reference
instead of taking a pointer and asserting that it's non-null.
Reviewed by Darin Adler.
* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::updateScaledFont):
(WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::shouldTransformOnTextPainting):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::calculateScreenFontSizeScalingFactor):
(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
* rendering/svg/SVGRenderingContext.h:
2014-02-02 Darin Adler <darin@apple.com>
Still more characters -> deprecatedCharacters (EWS keeps finding more)
https://bugs.webkit.org/show_bug.cgi?id=128076
Reviewed by Andreas Kling.
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::setFontFeatures):
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
Use deprecatedCharacters.
2014-02-02 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Enable subpixel positioning/sizing/hairline border painting.
https://bugs.webkit.org/show_bug.cgi?id=128009
Reviewed by Simon Fraser.
Snap and clip to device pixels when painting boxes. Enable hairline painting
for solid border.
No existing context to test this functionality yet.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getRoundedBorderFor):
(WebCore::RenderStyle::getRoundedInnerBorderFor):
2014-02-02 Sam Weinig <sam@webkit.org>
Add some missing override keywords
https://bugs.webkit.org/show_bug.cgi?id=128082
Reviewed by Antti Koivisto.
* loader/DocumentThreadableLoader.h:
* loader/LinkLoader.h:
* loader/TextTrackLoader.h:
* xml/parser/XMLDocumentParser.h:
2014-02-02 Brady Eidson <beidson@apple.com>
IDB: Support IDBFactory.deleteDatabase()
https://bugs.webkit.org/show_bug.cgi?id=128060
Reviewed by Filip Pizlo and Maciej Stachowiak (filesystem parts also Tim Hatcher and Simon Fraser)
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::deleteDatabaseAsync):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::deleteDatabase):
Change factory-level deleteDatabase to take opening and main frame origins:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
* WebCore.exp.in:
2014-02-02 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Introduce device pixel snapping helper functions.
https://bugs.webkit.org/show_bug.cgi?id=128049
Reviewed by Simon Fraser.
These functions help device pixel snapping during painting. They follow the logic of
the corresponding pixelSnappedInt* functions.
No change in functionality.
* platform/LayoutUnit.h:
(WebCore::roundToDevicePixel):
(WebCore::floorToDevicePixel):
(WebCore::snapSizeToPixel):
(WebCore::snapSizeToDevicePixel):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::pixelSnappingFactor):
* platform/graphics/LayoutRect.h:
(WebCore::pixelSnappedForPainting):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
2014-02-02 Zalan Bujtas <zalan@apple.com>
Floor thickness and length after switching from int to float.
https://bugs.webkit.org/show_bug.cgi?id=128071
Reviewed by Antti Koivisto.
This is a temporary solution to fix the assertion on empty line drawing until after
device pixel snapping is added.
Covered by existing tests.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
2014-02-02 Antti Koivisto <antti@apple.com>
Remove StyleScopeResolver
https://bugs.webkit.org/show_bug.cgi?id=128069
Reviewed by Anders Carlsson.
This is dead code.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
(WebCore::DocumentRuleSets::collectFeatures):
* css/DocumentRuleSets.h:
* css/ElementRuleCollector.h:
(WebCore::ElementRuleCollector::ElementRuleCollector):
* css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::pushParentElement):
(WebCore::StyleResolver::popParentElement):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::styleForElement):
* css/StyleResolver.h:
(WebCore::StyleResolver::document):
* css/StyleScopeResolver.cpp: Removed.
* css/StyleScopeResolver.h: Removed.
* style/StyleResolveTree.cpp:
(WebCore::Style::attachShadowRoot):
(WebCore::Style::resolveShadowTree):
2014-02-02 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make BorderEdge/RoundedRect::Radii LayoutUnit aware.
https://bugs.webkit.org/show_bug.cgi?id=128036
Reviewed by Darin Adler.
Covered by existing tests.
* platform/LayoutUnit.h:
(WebCore::LayoutUnit::operator++):
* rendering/RenderBoxModelObject.cpp:
(WebCore::BorderEdge::BorderEdge):
(WebCore::BorderEdge::usedWidth):
(WebCore::BorderEdge::getDoubleBorderStripeWidths):
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::calculateSideRectIncludingInner):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
* rendering/RenderObject.h:
* rendering/style/BorderData.h:
(WebCore::BorderData::borderLeftWidth):
(WebCore::BorderData::borderRightWidth):
(WebCore::BorderData::borderTopWidth):
(WebCore::BorderData::borderBottomWidth):
* rendering/style/RenderStyle.cpp:
(WebCore::calcRadiiFor):
(WebCore::calcConstraintScaleFor):
(WebCore::RenderStyle::getRoundedInnerBorderFor):
* rendering/style/RenderStyle.h:
2014-02-01 Hunseop Jeong <hs85.jeong@samsung.com>
REGRESSION(r163234) Debug build is broken
https://bugs.webkit.org/show_bug.cgi?id=128059
Unreviewed. Debug build is broken with INDEXED_DATABASE.
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::loggingString): Added the default: case.
2014-02-01 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: LayoutUnit operator++ is broken.
https://bugs.webkit.org/show_bug.cgi?id=128056
Reviewed by Darin Adler.
Add pre-increment operator++.
* platform/LayoutUnit.h:
(WebCore::LayoutUnit::operator++):
2014-02-01 Darin Adler <darin@apple.com>
More characters -> deprecatedCharacters (based on more EWS complaints)
https://bugs.webkit.org/show_bug.cgi?id=128063
Reviewed by Anders Carlsson.
* editing/SmartReplace.cpp:
(WebCore::addAllCodePoints):
(WebCore::getSmartSet):
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint):
Use deprecatedCharacters.
2014-02-01 Darin Adler <darin@apple.com>
Use deprecatedCharacters in a few more places (non-Mac-build sites found by EWS)
https://bugs.webkit.org/show_bug.cgi?id=128042
Reviewed by Sam Weinig.
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeString):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::createGDIFont):
(WebCore::FontCache::getTraitsInFamily):
* platform/network/DataURL.cpp:
(WebCore::handleDataURL):
* platform/win/BString.cpp:
(WebCore::BString::BString):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::createGlobalData):
* platform/win/FileSystemWin.cpp:
(WebCore::pathByAppendingComponent):
(WebCore::fileSystemRepresentation):
* platform/win/PasteboardWin.cpp:
(WebCore::filesystemPathFromUrlOrTitle):
(WebCore::Pasteboard::writeURLToDataObject):
(WebCore::createGlobalImageFileDescriptor):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize):
Call deprecatedCharacters instead of characters.
2014-02-01 Enrica Casucci <enrica@apple.com>
Add support for ActionSheets in WK2 for iOS.
https://bugs.webkit.org/show_bug.cgi?id=127586
<rdar://problem/15283667>
Reviewed by Benjamin Poulain.
Updates the localizable strings for action sheets.
* English.lproj/Localizable.strings:
2014-02-01 Maciej Stachowiak <mjs@apple.com>
Factor URL decomposition methods (from URLUtils interface) into a base template
https://bugs.webkit.org/show_bug.cgi?id=128052
Reviewed by Sam Weinig.
Refactoring only; no new tests.
* html/DOMURL.cpp:
* html/DOMURL.h:
(WebCore::DOMURL::href): Moved to header and made inline.
* html/URLUtils.h: Added.
(WebCore::URLUtils::href): Downcast and call the derived class.
(WebCore::URLUtils::setHref): Downcast and call the derived class.
Functions below factored out from DOMURL.cpp.
(WebCore::URLUtils<T>::toString):
(WebCore::URLUtils<T>::origin):
(WebCore::URLUtils<T>::protocol):
(WebCore::URLUtils<T>::setProtocol):
(WebCore::URLUtils<T>::username):
(WebCore::URLUtils<T>::setUsername):
(WebCore::URLUtils<T>::password):
(WebCore::URLUtils<T>::setPassword):
(WebCore::URLUtils<T>::host):
(WebCore::parsePortFromStringPosition):
(WebCore::URLUtils<T>::setHost):
(WebCore::URLUtils<T>::hostname):
(WebCore::URLUtils<T>::setHostname):
(WebCore::URLUtils<T>::port):
(WebCore::URLUtils<T>::setPort):
(WebCore::URLUtils<T>::pathname):
(WebCore::URLUtils<T>::setPathname):
(WebCore::URLUtils<T>::search):
(WebCore::URLUtils<T>::setSearch):
(WebCore::URLUtils<T>::hash):
(WebCore::URLUtils<T>::setHash):
Add mention of new header.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2014-02-01 Benjamin Poulain <bpoulain@apple.com>
Improve the JavaScript bindings of DatasetDOMStringMap
https://bugs.webkit.org/show_bug.cgi?id=127971
Unriewed.
* dom/DatasetDOMStringMap.cpp:
* dom/DatasetDOMStringMap.h:
Follow up for r163239. Darin pointed out the #includes are wrong.
2014-02-01 Brady Eidson <beidson@apple.com>
IDB: Implement IDBObjectStore.delete()
https://bugs.webkit.org/show_bug.cgi?id=127880
Reviewed by Sam Weinig.
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::compare): Make this const.
* Modules/indexeddb/IDBKeyData.h:
* Modules/indexeddb/IDBKeyRangeData.cpp:
(WebCore::IDBKeyRangeData::isExactlyOneKey): Returns whether or not
the key range is known to represent precisely one key.
* Modules/indexeddb/IDBKeyRangeData.h:
* WebCore.exp.in:
2014-02-01 Anders Carlsson <andersca@apple.com>
SVGTextLayoutAttributesBuilder shouldn't use RenderText::deprecatedCharacters()
https://bugs.webkit.org/show_bug.cgi?id=128048
Reviewed by Sam Weinig.
Change UChar*& lastCharacter to bool& lastCharacterWasSpace since that's what the parameter was used for.
* rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
(WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForTextRenderer):
Initialize lastCharacterWasSpace to true to match the previous behavior.
(WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForForSubtree):
Ditto.
(WebCore::processRenderSVGInlineText):
Take a reference instead of a pointer, get the character using RenderText::operator[] and compute lastCharacterWasSpace.
(WebCore::SVGTextLayoutAttributesBuilder::collectTextPositioningElements):
This now takes a bool reference instead.
* rendering/svg/SVGTextLayoutAttributesBuilder.h:
2014-02-01 Brady Eidson <beidson@apple.com>
IDB: Index cursor complete advance() and iterate() support
<rdar://problem/15941916> and https://bugs.webkit.org/show_bug.cgi?id=127870
Reviewed by Dan Bernstein.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): Always use the value buffer for the script object.
2014-02-01 Alexey Proskuryakov <ap@apple.com>
Update WebCrypto JWK mapping to use key_ops
https://bugs.webkit.org/show_bug.cgi?id=127609
Reviewed by Sam Weinig.
Updated JWK support ot match current editor draft.
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::getJSArrayFromJSON): Fixed this previously untested function to actually work.
(WebCore::tryJWKKeyOpsValue):
(WebCore::JSCryptoKeySerializationJWK::reconcileUsages):
(WebCore::JSCryptoKeySerializationJWK::reconcileExtractable): Removed an old comment,
these things are now specced.
(WebCore::addToJSON): Made static functions file static, there is no reason for
them to be class members.
(WebCore::buildJSONForOctetSequence):
(WebCore::buildJSONForRSAComponents):
(WebCore::addBoolToJSON):
(WebCore::addJWKAlgorithmToJSON):
(WebCore::addUsagesToJSON):
(WebCore::JSCryptoKeySerializationJWK::serialize):
* bindings/js/JSCryptoKeySerializationJWK.h:
* crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
(WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
Check for length, so that we don't fail silently.
2014-02-01 David Kilzer <ddkilzer@apple.com>
Add security-checked casts for all WebCore::CachedResource subclasses
<http://webkit.org/b/127988>
Reviewed by Darin Adler.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResourceContent):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
- Switch from static_cast<>() to security-checked cast.
* loader/cache/CachedCSSStyleSheet.h:
(WebCore::toCachedCSSStyleSheet): Add.
* loader/cache/CachedFont.h:
(WebCore::toCachedFont): Add.
* loader/cache/CachedImage.h: Make CachedImageManual final.
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::CachedRawResource): Add assert that
only MainResource or RawResource types are used to construct a
CachedRawResource. This may be a security issue depending on
what code exists that uses the type() value to cast to a
CachedResource subclass.
(WebCore::CachedRawResource::switchClientsToRevalidatedResource):
Switch from static_cast<>() to toCachedRawResource().
* loader/cache/CachedRawResource.h:
(WebCore::toCachedRawResource): Add.
* loader/cache/CachedResource.h:
(WebCore::CachedResource::isMainOrRawResource): Add. A
CachedRawResource could be either a MainResource or a
RawResource. Currently only used in assertions.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestFont):
(WebCore::CachedResourceLoader::requestTextTrack):
(WebCore::CachedResourceLoader::requestCSSStyleSheet):
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::requestScript):
(WebCore::CachedResourceLoader::requestXSLStyleSheet):
(WebCore::CachedResourceLoader::requestSVGDocument):
(WebCore::CachedResourceLoader::requestRawResource):
(WebCore::CachedResourceLoader::requestMainResource):
- Switch from static_cast<>() to security-checked cast.
* loader/cache/CachedSVGDocument.h:
(WebCore::toCachedSVGDocument): Add.
* loader/cache/CachedScript.h:
(WebCore::toCachedScript): Add.
* loader/cache/CachedTextTrack.h:
(WebCore::toCachedTextTrack): Add.
* loader/cache/CachedXSLStyleSheet.h:
(WebCore::toCachedXSLStyleSheet): Add.
2014-02-01 Xabier Rodriguez Calvar <calvaris@igalia.com>
Unreviewed. Fixed GTK+ CMake build after r162922.
* PlatformGTK.cmake: Removed SoupURIUtils.cpp from the
compilation.
2014-02-01 Benjamin Poulain <bpoulain@apple.com>
Improve the JavaScript bindings of DatasetDOMStringMap
https://bugs.webkit.org/show_bug.cgi?id=127971
Reviewed by Sam Weinig.
Instead of querying contains() followed by item(), just get the item
at once in the custom binding.
Test: fast/dom/dataset-name-getter-properties.html
* bindings/js/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
* dom/DOMStringMap.idl:
* dom/DatasetDOMStringMap.cpp:
(WebCore::DatasetDOMStringMap::item):
* dom/DatasetDOMStringMap.h:
2014-01-31 Benjamin Poulain <bpoulain@apple.com>
Remove LEGACY_VIEWPORT_ADAPTION
https://bugs.webkit.org/show_bug.cgi?id=128028
Reviewed by Anders Carlsson.
The code is incorrect and was only supported by Nix.
* dom/Document.cpp:
(WebCore::Document::childrenChanged):
* dom/ViewportArguments.h:
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process):
2014-01-31 Ryosuke Niwa <rniwa@webkit.org>
Release build fix after r163234. Don't always export the symbol that doesn't exist under NDEBUG.
* WebCore.exp.in:
2014-01-31 Brady Eidson <beidson@apple.com>
IDB: Index cursors use wrong deserialization for the retrieved value
https://bugs.webkit.org/show_bug.cgi?id=128035
Reviewed by Dan Bernstein.
For the cursor operations, add an IDBKey value result in the callbacks.
If an already deserialized IDBKey value exists it will be preferred over the serialized buffer.
Change some of the onSuccess() callback formats:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): Selectively choose between the IDBKey or the SharedBuffer value
when choosed what to convert to the ScriptValue.
* Modules/indexeddb/IDBRequest.h:
Let the IDBCursorBackend hold both a value buffer and a value key:
* Modules/indexeddb/IDBCursorBackend.cpp:
(WebCore::IDBCursorBackend::updateCursorData):
(WebCore::IDBCursorBackend::clear):
* Modules/indexeddb/IDBCursorBackend.h:
(WebCore::IDBCursorBackend::valueBuffer):
(WebCore::IDBCursorBackend::valueKey):
* Modules/indexeddb/IDBCursorBackendOperations.cpp:
(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::OpenCursorOperation::perform):
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::cursorAdvance):
(WebCore::IDBServerConnectionLevelDB::cursorIterate):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
Add IDBKey/IDBKeyData debug logging utilities:
* Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::loggingString):
* Modules/indexeddb/IDBKey.h:
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::loggingString):
* Modules/indexeddb/IDBKeyData.h:
* WebCore.exp.in:
2014-01-31 Ryosuke Niwa <rniwa@webkit.org>
Debug build fix after r163232. Call hasEditableStyle() instead of isContentEditable() which
can trigger a layout synchronously inside paintCaret. This matches the code before r163232.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
2014-01-31 Ryosuke Niwa <rniwa@webkit.org>
Remove inline member functions of FrameSelection that access m_selection
https://bugs.webkit.org/show_bug.cgi?id=127986
Reviewed by Enrica Casucci.
Removed numerous inline member functions of FrameSelection that depend on m_selection.
This is needed to ensure all accesses to m_selection happen through FrameSelection::selection(),
which in turn, allows us to update its call sites to use either validated selection that editing
and rendering code uses or invalidated selection that's exposed to JavaScript.
* WebCore.exp.in:
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _convertToNSRange:]):
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
* bindings/objc/DOMUIKitExtensions.mm:
(-[DOMRange move:inDirection:]):
(-[DOMRange extend:inDirection:]):
* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance):
* editing/Editor.cpp:
(WebCore::Editor::canEdit):
(WebCore::Editor::canEditRichly):
(WebCore::Editor::canDHTMLCut):
(WebCore::Editor::canDHTMLCopy):
(WebCore::Editor::canCopy):
(WebCore::Editor::canDelete):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::tryDHTMLCopy):
(WebCore::Editor::tryDHTMLCut):
(WebCore::Editor::applyStyle):
(WebCore::Editor::applyParagraphStyle):
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::paste):
(WebCore::Editor::setComposition):
(WebCore::Editor::guessesForMisspelledOrUngrammatical):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::isSpellCheckingEnabledInFocusedNode):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::getCompositionSelection):
(WebCore::Editor::selectionStartHasMarkerFor):
* editing/EditorCommand.cpp:
(WebCore::expandSelectionToGranularity):
(WebCore::enabledInRichlyEditableText):
(WebCore::enabledRangeInEditableText):
(WebCore::enabledRangeInRichlyEditableText):
* editing/FrameSelection.cpp:
(WebCore::CaretBase::updateCaretRect):
(WebCore::FrameSelection::recomputeCaretRect):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::updateAppearance):
(WebCore::FrameSelection::updateSelectionCachesIfSelectionIsInsideTextFormControl):
(WebCore::FrameSelection::setFocusedElementIfNeeded):
(WebCore::FrameSelection::currentForm):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::setSelectionFromNone):
* editing/FrameSelection.h:
(WebCore::FrameSelection::isCaretOrRange):
* editing/RemoveFormatCommand.cpp:
(WebCore::RemoveFormatCommand::doApply):
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::isInPasswordField):
* editing/VisibleSelection.h:
* editing/mac/EditorMac.mm:
(WebCore::Editor::canCopyExcludingStandaloneImages):
(WebCore::Editor::readSelectionFromPasteboard):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::defaultEventHandler):
(WebCore::HTMLAnchorElement::setActive):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::computeSelectionStart):
(WebCore::HTMLTextFormControlElement::computeSelectionEnd):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
* page/DragController.cpp:
(WebCore::DragController::dragIsMove):
(WebCore::setSelectionToDragCaret):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):
* page/EventHandler.cpp:
(WebCore::nodeIsNotBeingEdited):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::handleDrag):
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
(WebCore::clearSelectionIfNeeded):
* page/ios/FrameIOS.mm:
(WebCore::Frame::caretRect):
(WebCore::Frame::rectForScrollToVisible):
(WebCore::Frame::styleAtSelectionStart):
(WebCore::Frame::setRangedSelectionBaseToCurrentSelectionStart):
(WebCore::Frame::setRangedSelectionBaseToCurrentSelectionEnd):
(WebCore::Frame::setRangedSelectionInitialExtentToCurrentSelectionStart):
(WebCore::Frame::setRangedSelectionInitialExtentToCurrentSelectionEnd):
(WebCore::Frame::interpretationsForCurrentRoot):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
2014-01-31 Simon Fraser <simon.fraser@apple.com>
Pass the viewport rect and scroll origin independently into the scrolling tree, and make things floats
https://bugs.webkit.org/show_bug.cgi?id=128032
Reviewed by Tim Horton.
Pass the viewport rect and scroll offset independently into the ScrollingTree
via the ScrollingStateScrollingNode, since on iOS the scroll offset doesn't
always correspond to the viewport rect.
Make the viewport rect and the scroll origin be float-based, since on
Retina screens and with zooming these can both be non-integral.
No behavior change.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
* page/scrolling/AsyncScrollingCoordinator.h:
(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setViewportConstrainedObjectRect):
(WebCore::ScrollingStateScrollingNode::setScrollPosition):
(WebCore::ScrollingStateScrollingNode::dumpProperties):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::mainFrameScrollPosition):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::scrollPosition):
(WebCore::ScrollingTreeScrollingNode::viewportConstrainedObjectRect):
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
* page/scrolling/ios/ScrollingTreeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::scrollPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::minimumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::maximumScrollPosition):
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
(WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
(WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
(WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
* platform/graphics/FloatPoint.h:
(WebCore::FloatPoint::shrunkTo):
2014-01-30 Andy Estes <aestes@apple.com>
[Cocoa] Add NEFilterSource support to ContentFilterMac
https://bugs.webkit.org/show_bug.cgi?id=127979
Reviewed by Sam Weinig.
Update ContentFilterMac to work with both WebFilterEvaluator and
NEFilterSource, if enabled.
* platform/ContentFilter.h: Set HAVE_NE_FILTER_SOURCE based on platform
conditionals, and forward-declare NEFilterSource.
* platform/mac/ContentFilterMac.mm: Included NEFilterSource.h if the SDK
has it; declared the class directly if not. Also soft-linked
NetworkExtension.framework.
(WebCore::ContentFilter::ContentFilter): Initialized
m_neFilterSourceStatus to NEFilterSourceStatusNeedsMoreData and created
m_platformContentFilter and m_neFilterSource objects if their
respective filters were enabled.
(WebCore::ContentFilter::isEnabled): Returned true if either filter is
enabled.
(WebCore::ContentFilter::addData): Added incoming data to each filter
that is enabled.
(WebCore::ContentFilter::finishedAddingData): Notified each enabled
filter that we are finished adding data.
(WebCore::ContentFilter::needsMoreData): Returned true if either filter
needs more data.
(WebCore::ContentFilter::didBlockData): Returned true if either filter
blocked data.
(WebCore::ContentFilter::getReplacementData): Returned
m_replacementData. Commented that this will currently return a null
string if NEFilterSource blocked the load.
2014-01-31 Oliver Hunt <oliver@apple.com>
Rollout r163195 and related patches
* CMakeLists.txt:
* ForwardingHeaders/runtime/JSStringInlines.h: Removed.
* Modules/plugins/QuickTimePluginReplacement.cpp:
* bindings/js/JSIDBAnyCustom.cpp:
* bindings/js/JSIDBDatabaseCustom.cpp:
* bindings/js/JSIDBObjectStoreCustom.cpp:
* bindings/js/JSNodeFilterCondition.cpp:
2014-01-31 Simon Fraser <simon.fraser@apple.com>
Even when in fixed layout mode, some platforms need to do layout after a viewport change
https://bugs.webkit.org/show_bug.cgi?id=128003
Reviewed by Andreas Kling.
Re-land 163182 with a less aggresive check in visibleContentsResized() for
needing to layout.
iOS uses fixed layout mode in both WK1 and WK2, but lays out fixed position
elements relative to a variable viewport. This code assumed that fixed layout
implies a fixed viewport.
Fix by testing for useCustomFixedPositionLayoutRect() in the fixed layout case.
Also removed RenderView::hasCustomFixedPosition() which is no longer used.
* page/FrameView.cpp:
(WebCore::FrameView::shouldLayoutAfterViewportChange):
(WebCore::FrameView::visibleContentsResized):
* page/FrameView.h:
* rendering/RenderView.cpp:
* rendering/RenderView.h:
2014-01-31 Alexey Proskuryakov <ap@apple.com>
Expose creation and modification times for LocalStorage
https://bugs.webkit.org/show_bug.cgi?id=128018
Reviewed by Anders Carlsson.
* WebCore.exp.in: Export FileSystem functions to get file times.
2014-01-30 Maciej Stachowiak <mjs@apple.com>
Implement (most of) URL API
https://bugs.webkit.org/show_bug.cgi?id=127795
Reviewed by Alexey Proskuryakov.
Tests: fast/dom/DOMURL/get-href-attribute-port.html
fast/dom/DOMURL/invalid-url-getters.html
fast/dom/DOMURL/set-href-attribute-hash.html
fast/dom/DOMURL/set-href-attribute-host.html
fast/dom/DOMURL/set-href-attribute-hostname.html
fast/dom/DOMURL/set-href-attribute-pathname.html
fast/dom/DOMURL/set-href-attribute-port.html
fast/dom/DOMURL/set-href-attribute-protocol.html
fast/dom/DOMURL/set-href-attribute-search.html
fast/dom/DOMURL/set-href-attribute-whitespace.html
fast/dom/DOMURL/url-constructor.html
fast/dom/DOMURL/url-origin.html
fast/dom/DOMURL/url-password.html
fast/dom/DOMURL/url-username.html
* CMakeLists.txt: Update for new IDL file.
* DerivedSources.make: ditto
* GNUmakefile.list.am: ditto
* html/DOMURL.cpp: Implement URL() constructor and instance methods; cribbed from
HTMLAnchorElement mostly
(WebCore::DOMURL::DOMURL):
(WebCore::DOMURL::href):
(WebCore::DOMURL::setHref):
(WebCore::DOMURL::toString):
(WebCore::DOMURL::origin):
(WebCore::DOMURL::protocol):
(WebCore::DOMURL::setProtocol):
(WebCore::DOMURL::username):
(WebCore::DOMURL::setUsername):
(WebCore::DOMURL::password):
(WebCore::DOMURL::setPassword):
(WebCore::DOMURL::host):
(WebCore::parsePortFromStringPosition):
(WebCore::DOMURL::setHost):
(WebCore::DOMURL::hostname):
(WebCore::DOMURL::setHostname):
(WebCore::DOMURL::port):
(WebCore::DOMURL::setPort):
(WebCore::DOMURL::pathname):
(WebCore::DOMURL::setPathname):
(WebCore::DOMURL::search):
(WebCore::DOMURL::setSearch):
(WebCore::DOMURL::hash):
(WebCore::DOMURL::setHash):
* html/DOMURL.h:
(WebCore::DOMURL::create):
* html/DOMURL.idl: Update for new methods.
* html/URLUtils.idl: Added. New IDL file that contains most of the interface.
2014-01-31 Bem Jones-Bey <bjonesbe@adobe.com>
Create clipping path from <box> value
https://bugs.webkit.org/show_bug.cgi?id=126205
Reviewed by Dirk Schulze.
This implements <box> values for border, content, and padding boxes.
Since margin box is not implemented as a reference box, this does not
implement margin box value.
Tests: css3/masking/clip-path-border-box.html
css3/masking/clip-path-content-box.html
css3/masking/clip-path-padding-box.html
* rendering/ClipPathOperation.h:
(WebCore::BoxClipPathOperation::pathForReferenceRect): Implement.
* rendering/RenderLayer.cpp:
(WebCore::computeReferenceBox): Pull out reference box calculation.
(WebCore::RenderLayer::setupClipPath): Add support for <box> values.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape): Add FIXME comment.
2014-01-29 Oliver Hunt <oliver@apple.com>
Make it possible to implement JS builtins in JS
https://bugs.webkit.org/show_bug.cgi?id=127887
Reviewed by Michael Saboff.
Updating for the newly required headers.
Test: js/regress/array-prototype-every.html
* ForwardingHeaders/runtime/JSStringInlines.h: Added.
* Modules/plugins/QuickTimePluginReplacement.cpp:
* bindings/js/JSIDBAnyCustom.cpp:
* bindings/js/JSIDBDatabaseCustom.cpp:
* bindings/js/JSIDBObjectStoreCustom.cpp:
2014-01-31 Beth Dakin <bdakin@apple.com>
Build fix.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):
2014-01-31 Timothy Hatcher <timothy@apple.com>
Properly handle cases where a profile couldn't be recorded and null is returned.
<rdar://problem/15957993> Crash with Inspector open at WebCore::ScriptProfile::buildInspectorObject
Reviewed by Joseph Pecoraro.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCallFunction): Null check profile.
(WebCore::InspectorTimelineAgent::didEvaluateScript): Ditto.
2014-01-31 Beth Dakin <bdakin@apple.com>
Extended background should only create margin tiles for pages with background
images
https://bugs.webkit.org/show_bug.cgi?id=127876
-and corresponding-
<rdar://problem/15827632>
Reviewed by Simon Fraser.
Settings::backgroundShouldExtendBeyondPage() doesn't need to create margin tiles
for pages with simple background colors. Instead, those pages should achieve the
same effect by setting a background color on RenderLayerCompositor's
m_layerForOverhangAreas. For now, we should only create tiles when there is a
background image. We may want to extend this to other types of complicated
backgrounds in the future.
This patch makes callers that only care about the value of the setting always call
Settings::backgroundShouldExtendBeyondPage() rather than asking about margin
tiles. And callers that want to know about margin tiles can either keep querying
that directly or they can call FrameView::hasExtendedBackgroundRectForPainting().
An extended background does not necessarily require an extended background rect
for painting, and this new FrameView function can make that distinction.
When setBackgroundExtendsBeyondPage() is called, call RenderLayerCompositor::
setRootExtendedBackgroundColor() with either the document background color, or an
invalid color, depending on whether you have or do not have an extended
background. Also call needsExtendedBackgroundRectForPainting() to determine if we
also need to extend the background rect, and then call
setHasExtendedBackgroundRectForPainting() with its value.
* page/FrameView.cpp:
(WebCore::FrameView::setBackgroundExtendsBeyondPage):
(WebCore::FrameView::hasExtendedBackgroundRectForPainting):
Right now we only need to extend the background rect for documents with
background images on the root. This may be extended in the future.
(WebCore::FrameView::needsExtendedBackgroundRectForPainting):
(WebCore::FrameView::setHasExtendedBackgroundRectForPainting):
(WebCore::FrameView::extendedBackgroundRectForPainting):
* page/FrameView.h:
Expose defaultTileWidth and defaultTileHeight from TiledBacking.h so that we can
access the values from RenderLayerBacking.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.mm:
hasExtendedBackgroundForPainting() is now called
hasExtendedBackgroundRectForPainting() to distinguish
the case where an extended RECT is needed.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::repaintLayerRectsForImage):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
Call setHasExtendedBackgroundRectForPainting() if relevant.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
Don't call setTiledBackingHasMargins() right in the constructor because we only
want margins if we have a background image, and we won't have that information
yet.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
Clean up the variable name here. We are only setting margins when we need to
extend the background rect for painting. Also make us of newly-exposed
defaultTileWidth and Height.
(WebCore::RenderLayerBacking::setTiledBackingHasMargins):
Remove RenderLayerBacking::tiledBackingHasMargin() since there aren't any more
callers.
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::usingTiledBacking):
setMasksToBounds(false) based on the Setting, and not based on whether there are
tile margins.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
Return false from RenderLayerCompositor::requiresContentShadowLayer() if there is
an extended background.
(WebCore::RenderLayerCompositor::requiresContentShadowLayer):
Setting the background color on m_layerForOverhangAreas is all we need to do to
create the extended background effect on pages that only have background colors.
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
Remove mainFrameBackingIsTiledWithMargin() since there aren't any more callers,
and add setRootExtendedBackgroundColor() so that we can update the color from
RenderView.
* rendering/RenderLayerCompositor.h:
Revert the code that was added to paint background color here, since this should
all be covered by calling RenderLayerCompositor::setExtendedBackgroundColor().
More complicated backgrounds will run through the full background painting code.
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
(WebCore::RenderView::backgroundRect):
2014-01-31 Jochen Eisinger <jochen@chromium.org>
Remove FrameLoader's reloadWithOverrideURL and reloadWithRequest
https://bugs.webkit.org/show_bug.cgi?id=128005
Reviewed by Darin Adler.
The former was used by chromium-android to implement the "request
desktop version" feature, but is no longer used. After removing it,
the latter is only invoked by reload(), so we can merge the method
with it.
No new tests, just removing dead code.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
* loader/FrameLoader.h:
2014-01-31 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r163182.
http://trac.webkit.org/changeset/163182
https://bugs.webkit.org/show_bug.cgi?id=128012
Broke lots of tests (Requested by smfr on #webkit).
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* page/FrameView.h:
* rendering/RenderView.cpp:
(WebCore::isFixedPositionInViewport):
(WebCore::RenderView::hasCustomFixedPosition):
* rendering/RenderView.h:
2014-01-31 Brady Eidson <beidson@apple.com>
IDB: openCursor() needs to prime the cursor with first position values
https://bugs.webkit.org/show_bug.cgi?id=128008
Reviewed by Alexey Proskuryakov.
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::OpenCursorOperation::perform): If the server connection returns initial keys/values
for the cursor, store them.
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::openCursor):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2014-01-31 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Image valued shape can fail
https://bugs.webkit.org/show_bug.cgi?id=127588
Reviewed by Dean Jackson.
Correct the handling of image valued shapes that extend into or beyond the
margin box. This can happen when object-fit causes one dimension of the shape
to be greater than the corresponding margin box dimension.
Made some simplifications in RasterShapeIntervals::computeShapeMarginIntervals()
by making the shapeMargin parameter an int, removing some unnecessary variables.
Revised the RasterShapeIntervals class. It's now a just a list of size() interval-lists,
with valid indices: -offset() <= y < size() - offset(), or minY() to maxY(). If margin-top
and shape-margin are specified, then offset() is the larger of shape-margin and margin-top.
Similarly size() is the vertical size of the margin-box or the content-box expanded by
shape-margin, whichever is larger. See computeShapeMarginIntervals().
Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-005.html
fast/shapes/shape-outside-floats/shape-outside-image-fit-006.html
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
(WebCore::RasterShape::marginIntervals):
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::RasterShapeIntervals):
(WebCore::RasterShapeIntervals::offset):
(WebCore::RasterShapeIntervals::minY):
(WebCore::RasterShapeIntervals::maxY):
(WebCore::RasterShapeIntervals::intervalsAt):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::getShapeImageReplacedRect):
The rect that the image will be drawn into. This rect can imply image
scaling and translation.
(WebCore::getShapeImageMarginRect):
The margin rect relative too the (0,0 origin) shape content rect.
(WebCore::ShapeInfo<RenderType>::computedShape):
2014-01-31 Andreas Kling <akling@apple.com>
Deduplicate Document::encoding().
<https://webkit.org/b/128000>
Make Document::encoding() return an AtomicString so we don't duplicate
the string every time it's called.
215 KB progression on Membuster3.
Reviewed by Simon Fraser.
* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::encoding):
2014-01-31 Simon Fraser <simon.fraser@apple.com>
Even when in fixed layout mode, some platforms need to do layout after a viewport change
https://bugs.webkit.org/show_bug.cgi?id=128003
Reviewed by Andreas Kling.
iOS uses fixed layout mode in both WK1 and WK2, but lays out fixed position
elements relative to a variable viewport. This code assumed that fixed layout
implies a fixed viewport.
Fix by testing for useCustomFixedPositionLayoutRect() in the fixed layout case.
Also removed RenderView::hasCustomFixedPosition() which is no longer used.
* page/FrameView.cpp:
(WebCore::FrameView::shouldLayoutAfterViewportChange):
(WebCore::FrameView::visibleContentsResized):
* page/FrameView.h:
* rendering/RenderView.cpp:
* rendering/RenderView.h:
2014-01-31 Zan Dobersek <zdobersek@igalia.com>
Guard GLContextEGL::platformContext() with USE(3D_GRAPHICS)
https://bugs.webkit.org/show_bug.cgi?id=120214
Reviewed by Philippe Normand.
Guard the GLContextEGL::platformContext() declaration and definiton with USE(3D_GRAPHICS)
since this guard is used in the GLContext class, from which the GLContextEGL class overrides
this method.
* platform/graphics/egl/GLContextEGL.cpp:
* platform/graphics/egl/GLContextEGL.h:
2014-01-31 Beth Dakin <bdakin@apple.com>
Sideways 'wobble' when scrolling with trackpad on Mavericks
https://bugs.webkit.org/show_bug.cgi?id=127521
-and corresponding-
<rdar://problem/14137306>
Reviewed by Simon Fraser.
This patch takes http://trac.webkit.org/changeset/154535 which introduced
filtering wheel events for overflow areas to try to make them less sensitive to X
deltas when scrolling in a primarily Y direction, and it factors that code out
into its own class, now called WheelEventDeltaTracker. So now this new class can
use the same code to filter events for WebKit2’s EventDispatcher.
Files for WheelEventDeltaTracker.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
WK2 needs these new WheelEventDeltaTracker functions.
* WebCore.exp.in:
Move a bunch of code over to WheelEventDeltaTracker and use
m_recentWheelEventTracker to serve the same purpose.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::defaultWheelEventHandler):
* page/EventHandler.h:
Allow horizontal rubber banding now that we have some event filtering in place.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
New files. Most of this code was from EventHandler.
* page/WheelEventDeltaTracker.cpp: Added.
(WebCore::WheelEventDeltaTracker::WheelEventDeltaTracker):
(WebCore::WheelEventDeltaTracker::~WheelEventDeltaTracker):
(WebCore::WheelEventDeltaTracker::beginTrackingDeltas):
(WebCore::WheelEventDeltaTracker::endTrackingDeltas):
(WebCore::WheelEventDeltaTracker::recordWheelEventDelta):
(WebCore::deltaIsPredominantlyVertical):
(WebCore::WheelEventDeltaTracker::dominantScrollGestureDirection):
* page/WheelEventDeltaTracker.h: Added.
(WebCore::WheelEventDeltaTracker::isTrackingDeltas):
New function to clone events while zero-ing out certain deltas.
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::copyIgnoringHorizontalDelta):
(WebCore::PlatformWheelEvent::copyIgnoringVerticalDelta):
2014-01-31 Simon Fraser <simon.fraser@apple.com>
Don't do logging from Range::collectSelectionRects() on iOS
https://bugs.webkit.org/show_bug.cgi?id=127999
Reviewed by Enrica Casucci.
Remove some logging code that printed Range stuff in debug builds.
* dom/Range.cpp:
(WebCore::Range::collectSelectionRects):
2014-01-30 Simon Fraser <simon.fraser@apple.com>
Make iOS fixed layer registration more like OS X
https://bugs.webkit.org/show_bug.cgi?id=127983
Reviewed by Antti Koivisto.
Remove some #if PLATFORM(IOS) in the code related to registering
viewport-constrained layers. The code behaves correctly now in WK1
and WK2 based on the presence of a ScrollingCoordinator.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::nearestScrollingCoordinatorAncestor):
(WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
(WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
2014-01-31 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r163165.
http://trac.webkit.org/changeset/163165
https://bugs.webkit.org/show_bug.cgi?id=127997
broke 2 fast/table tests (Requested by kling on #webkit).
* rendering/RenderTable.cpp:
(WebCore::RenderTable::updateLogicalWidth):
(WebCore::RenderTable::computePreferredLogicalWidths):
2014-01-31 Anders Carlsson <andersca@apple.com>
Don't allocate a new XMLHttpRequestStaticData every time staticData() is called
https://bugs.webkit.org/show_bug.cgi?id=127996
Reviewed by Andreas Kling.
std::once_flag should be static.
* xml/XMLHttpRequest.cpp:
(WebCore::staticData):
2014-01-31 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Change RenderBoxModelObject's border functions' signature to support subpixel border painting.
https://bugs.webkit.org/show_bug.cgi?id=127975
Reviewed by Simon Fraser.
From int to LayoutUnit.
Covered by existing tests. No change in functionality.
* platform/text/TextStream.cpp:
(WebCore::TextStream::operator<<):
* platform/text/TextStream.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::borderTop):
(WebCore::RenderBoxModelObject::borderBottom):
(WebCore::RenderBoxModelObject::borderLeft):
(WebCore::RenderBoxModelObject::borderRight):
(WebCore::RenderBoxModelObject::borderBefore):
(WebCore::RenderBoxModelObject::borderAfter):
(WebCore::RenderBoxModelObject::borderStart):
(WebCore::RenderBoxModelObject::borderEnd):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::borderBefore):
(WebCore::RenderTable::borderAfter):
* rendering/RenderTable.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::borderLeft):
(WebCore::RenderTableCell::borderRight):
(WebCore::RenderTableCell::borderTop):
(WebCore::RenderTableCell::borderBottom):
(WebCore::RenderTableCell::borderStart):
(WebCore::RenderTableCell::borderEnd):
(WebCore::RenderTableCell::borderBefore):
(WebCore::RenderTableCell::borderAfter):
* rendering/RenderTableCell.h:
2014-01-31 Brady Eidson <beidson@apple.com>
IDB: Index writing
<rdar://problem/15899973> and https://bugs.webkit.org/show_bug.cgi?id=127868
Reviewed by Anders Carlsson.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::openConnectionInternal): Remove outdated comment and ASSERT.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex): Conditionalize a block of code that is LevelDB-only.
Remove getColumnBlob(). Nobody used it, and it was dangerous because it reset the statement:
* platform/sql/SQLiteStatement.cpp:
* platform/sql/SQLiteStatement.h:
* WebCore.exp.in:
2014-01-30 László Langó <lango@inf.u-szeged.hu>
[CSS Grid Layout] Do log(n) search in the named line vectors when positioning named line spans.
https://bugs.webkit.org/show_bug.cgi?id=125396
Reviewed by Andreas Kling.
Implement the suggested FIXMEs and do a log search in the named line
vectors. This maintains the previous (somewhat tricky) behavior by
using std::lower_bound and std::upper_bound. No difference in existing
performance tests, but should scale much better for big grids.
Backported from Blink:
https://chromium.googlesource.com/chromium/blink/+/9fc477af0be708c490a6b90e65e412b0c22b161f
No new tests, no behavior change.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
(WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
2014-01-31 László Langó <lango@inf.u-szeged.hu>
Fix table sizing when 'max-width' is used.
https://bugs.webkit.org/show_bug.cgi?id=115156
Reviewed by Andreas Kling.
r143534 make <table> abide by 'max-width' all the time which is wrong.
Per the CSS specification, a table should be wide enough to fit its
content, regardless of 'max-width'.
r140479 fixed part of the regression from that change but made the
same fatal mistake by constraining min-content to fit 'max-width'.
The fix is to avoid constraining min-content and ensure that the table
logical width is at least its min-content size.
Backported from Blink:
https://chromium.googlesource.com/chromium/blink/+/0bca0dec4895aeeb2054ba36316e984e4ebed06f
Test: fast/table/html-table-width-max-width-constrained.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::updateLogicalWidth):
(WebCore::RenderTable::computePreferredLogicalWidths):
2014-01-30 Simon Fraser <simon.fraser@apple.com>
Fix iOS build after r163156.
Need to convert LayoutSizes to FloatSizes.
* bindings/objc/DOMUIKitExtensions.mm:
(-[DOMNode borderRadii]):
2014-01-30 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Change drawRect()/drawLine() signature to support subpixel rendering.
https://bugs.webkit.org/show_bug.cgi?id=127961
Reviewed by Simon Fraser.
IntRect/IntPoint -> FloatRect/FloatPoint.
Covered by existing tests. No change in functionality.
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine): Keep 'distance' int for DottedStroke and DashedStroke for now.
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
2014-01-30 Simon Fraser <simon.fraser@apple.com>
Remove ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers() which is no longer used
https://bugs.webkit.org/show_bug.cgi?id=127981
Reviewed by Andreas Kling.
setLayerIsContainerForFixedPositionLayers() was only used by Chromium and Blackberry,
so remove it.
This allows the removal of RenderLayerBacking::registerScrollingLayers(),
moving the single useful line of code to the caller.
* page/scrolling/ScrollingCoordinator.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::ensureRootLayer):
2014-01-30 Simon Fraser <simon.fraser@apple.com>
Some fixed position elements disappear in WK2 on iOS
https://bugs.webkit.org/show_bug.cgi?id=127977
Reviewed by Tim Horton.
Use the appropriate rectangle to ensure that on iOS we don't
consider a fixed element outside the viewport when zoomed in,
and therefore never make a compositing layer for it.
Also remove the iOS-specific code in RenderLayerCompositor::requiresCompositingForPosition(),
since it's OK to use the common code. Doing so requires that we
set the "acceleratedCompositingForFixedPositionEnabled" setting to true
for iOS, so do so.
* page/Settings.cpp:
* page/Settings.in:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2014-01-30 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make RoundedRect layout unit aware.
https://bugs.webkit.org/show_bug.cgi?id=127779
Reviewed by Simon Fraser.
In order to draw hairline borders, RoundedRect needs to be
LayoutUnit based.
No change in behavior.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
* platform/graphics/GraphicsContext.h:
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::Radii::scale):
(WebCore::RoundedRect::Radii::expand):
(WebCore::RoundedRect::inflateWithRadii):
(WebCore::RoundedRect::RoundedRect):
(WebCore::RoundedRect::intersectsQuad):
* platform/graphics/RoundedRect.h:
(WebCore::RoundedRect::Radii::Radii):
(WebCore::RoundedRect::Radii::setTopLeft):
(WebCore::RoundedRect::Radii::setTopRight):
(WebCore::RoundedRect::Radii::setBottomLeft):
(WebCore::RoundedRect::Radii::setBottomRight):
(WebCore::RoundedRect::Radii::topLeft):
(WebCore::RoundedRect::Radii::topRight):
(WebCore::RoundedRect::Radii::bottomLeft):
(WebCore::RoundedRect::Radii::bottomRight):
(WebCore::RoundedRect::Radii::expand):
(WebCore::RoundedRect::Radii::shrink):
(WebCore::RoundedRect::rect):
(WebCore::RoundedRect::setRect):
(WebCore::RoundedRect::move):
(WebCore::RoundedRect::inflate):
(WebCore::RoundedRect::expandRadii):
(WebCore::RoundedRect::shrinkRadii):
* platform/graphics/ShadowBlur.cpp:
(WebCore::ScratchBuffer::setCachedShadowValues):
(WebCore::ScratchBuffer::setCachedInsetShadowValues):
(WebCore::computeSliceSizesFromRadii):
(WebCore::ShadowBlur::templateSize):
(WebCore::ShadowBlur::drawRectShadow):
(WebCore::ShadowBlur::drawInsetShadow):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawLayerPieces):
(WebCore::ShadowBlur::beginShadowLayer):
* platform/graphics/ShadowBlur.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::fillRoundedRect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::calculateSideRect):
(WebCore::RenderBoxModelObject::paintBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):
(WebCore::calculateSideRectIncludingInner):
(WebCore::calculateAdjustedInnerBorder):
(WebCore::areaCastingShadowInHole):
(WebCore::RenderBoxModelObject::paintBoxShadow):
* rendering/RenderBoxModelObject.h:
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::paintMenuListButtonGradients):
(WebCore::RenderThemeSafari::paintSliderTrack):
2014-01-30 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Add support for building against GTK+ 2
https://bugs.webkit.org/show_bug.cgi?id=127959
Reviewed by Anders Carlsson.
* PlatformGTK.cmake: Use the new API version variable and don't use GTK3 directly.
2014-01-30 Jessie Berlin <jberlin@apple.com>
Speculative build fix.
* page/animation/CSSPropertyAnimation.cpp:
2014-01-30 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Change BorderData's width from unsigned to float to enable subpixel border painting.
https://bugs.webkit.org/show_bug.cgi?id=127949
Reviewed by Andreas Kling.
Covered by existing tests. No change in functionality.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcBorderStart):
(WebCore::RenderTable::calcBorderEnd):
* rendering/style/BorderValue.h:
(WebCore::BorderValue::BorderValue):
(WebCore::BorderValue::width):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::borderBeforeWidth):
(WebCore::RenderStyle::borderAfterWidth):
(WebCore::RenderStyle::borderStartWidth):
(WebCore::RenderStyle::borderEndWidth):
* rendering/style/RenderStyle.h:
2014-01-30 David Kilzer <ddkilzer@apple.com>
Add security-checked cast for WebCore::CachedImage
<http://webkit.org/b/127967>
Reviewed by Darin Adler.
* loader/cache/CachedImage.h:
(WebCore::toCachedImage): Add.
(WebCore::toCachedImageManual): Add.
* loader/cache/CachedResource.h:
(CACHED_RESOURCE_TYPE_CASTS): Add macro.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::switchClientsToRevalidatedResource):
(WebCore::CachedImage::resumeAnimatingImagesForLoader):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::removeImageFromCache):
- Use toCachedImage() and toCachedImageManual().
2014-01-30 Simon Fraser <simon.fraser@apple.com>
Fixed position objects are clipped in iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=127974
Reviewed by Darin Adler.
We clip compositing layers for fixed position objects to the viewport
to avoid huge layers. However, because iOS changes the fixed position
rect when zooming, we need a different rect for iOS.
In WK1 (when we have a platformWidget), we can use
visibleContentRect(ScrollableArea::LegacyIOSDocumentVisibleRect)
which is effectively the whole document. However in WK2 this is
the real visibleContentRect(), so there we use unscaledDocumentRect().
* page/FrameView.cpp:
(WebCore::FrameView::viewportConstrainedExtentRect):
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
2014-01-28 Timothy Hatcher <timothy@apple.com>
Add column number and call timing support to LegacyProfiler.
https://bugs.webkit.org/show_bug.cgi?id=127764
Reviewed by Joseph Pecoraro.
* bindings/js/ScriptProfile.cpp:
(WebCore::ScriptProfile::idleTime):
(WebCore::buildInspectorObjectFor):
(WebCore::ScriptProfile::buildInspectorObject):
* bindings/js/ScriptProfile.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::createSnapshotHeader):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::createSnapshotHeader):
(WebCore::InspectorProfilerAgent::getCPUProfile):
* inspector/ScriptProfileNode.idl:
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::appendProfile):
* inspector/protocol/Profiler.json:
2014-01-26 Timothy Hatcher <timothy@apple.com>
Include profile with FunctionCall and EvaluateScript Timeline records.
https://bugs.webkit.org/show_bug.cgi?id=127663
Reviewed by Joseph Pecoraro.
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didCallInjectedScriptFunction):
* inspector/InspectorController.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCallFunctionImpl):
(WebCore::InspectorInstrumentation::didEvaluateScriptImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didCallFunction):
(WebCore::InspectorInstrumentation::didEvaluateScript):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willCallFunction):
(WebCore::InspectorTimelineAgent::didCallFunction):
(WebCore::InspectorTimelineAgent::willEvaluateScript):
(WebCore::InspectorTimelineAgent::didEvaluateScript):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::appendProfile):
* inspector/TimelineRecordFactory.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::didCallInjectedScriptFunction):
* inspector/WorkerInspectorController.h:
2014-01-30 Joseph Pecoraro <pecoraro@apple.com>
Remove now-empty ScriptController::setCaptureCallStackForUncaughtExceptions
https://bugs.webkit.org/show_bug.cgi?id=127964
Reviewed by Timothy Hatcher.
Remove empty function. It was only needed by v8 at one point.
* bindings/js/ScriptController.h:
* bindings/js/ScriptController.cpp:
Remove empty function.
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::enable):
(WebCore::InspectorConsoleAgent::disable):
Remove callers and related tracking state.
2014-01-30 Roger Fong <roger_fong@apple.com>
WebGL load policy should be queried for the top level document.
https://bugs.webkit.org/show_bug.cgi?id=127937.
<rdar://problem/15950122>
Reviewed by Timothy Horton.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
2014-01-27 Jeffrey Pfau <jpfau@apple.com>
Add a method for schemes to be registered as supporting cache partitioning
https://bugs.webkit.org/show_bug.cgi?id=127739
Reviewed by Darin Adler.
Currently, this assumes that schemes supporting cache partitioning
also support (scheme, host) doubles for the scheme. Furthermore,
the scheme is currently discarded when partitioning and is only
checked to ensure that partitioning is supported for that scheme: it
is assumed that all origins with the same host double should be binned
together, regardless of scheme.
* WebCore.exp.in:
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::cachePartition):
* platform/SchemeRegistry.cpp:
(WebCore::CachePartitioningSchemes):
(WebCore::SchemeRegistry::registerURLSchemeAsCachePartitioned):
(WebCore::SchemeRegistry::shouldPartitionCacheForURLScheme):
* platform/SchemeRegistry.h:
2014-01-30 Jer Noble <jer.noble@apple.com>
[iOS] Convert blocks to lambdas in iOS Fullscreen code.
https://bugs.webkit.org/show_bug.cgi?id=127946
Reviewed by Anders Carlsson.
Pushing a block into a std::function will eventually cause a crash, since std::function
does not know about Block_copy and Block_release.
Lamdas can be intrinsicly converted to blocks, but not vice versa. Switch over all the
blocks in the new iOS Fullscreen code to use lamdas, and use the ref-counted this object
directly rather than implicitly.
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController exitFullscreen]):
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setVideoLayer):
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
2014-01-30 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Add a "make dist" target
https://bugs.webkit.org/show_bug.cgi?id=116378
Reviewed by Gustavo Noronha Silva.
* CMakeLists.txt: Don't build WebKitVersion.h for WebKitGTK+. We don't use it
and we don't want to distribute the dependency.
2014-01-30 Brady Eidson <beidson@apple.com>
IDB: ObjectStore cursor advance() support
<rdar://problem/15779645> and https://bugs.webkit.org/show_bug.cgi?id=127866
Reviewed by Sam Weinig.
Add IDBKeyData sorting for database collation:
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::compare):
* Modules/indexeddb/IDBKeyData.h:
* WebCore.exp.in:
* platform/sql/SQLiteTransaction.h:
(WebCore::SQLiteTransaction::database):
2014-01-30 David Kilzer <ddkilzer@apple.com>
De-virtual-ize CachedResource::isImage()
<http://webkit.org/b/127936>
Reviewed by Andreas Kling.
Also replace explicit type() checks with isImage().
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest): Use isImage().
* loader/cache/CachedImage.h:
(WebCore::CachedResource::isImage): Remove virtual override.
* loader/cache/CachedResource.h:
(WebCore::CachedResource::isImage): Check type() instead of
defining a virtual method that returns false by default.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::reloadImagesIfNotDeferred): Use isImage().
2014-01-30 Eric Carlson <eric.carlson@apple.com>
[iOS] don't update media layers on main thread when using AVFoundation
https://bugs.webkit.org/show_bug.cgi?id=127931
Reviewed by Simon Fraser.
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::mediaLayerMustBeUpdatedOnMainThread): Add mediaLayerMustBeUpdatedOnMainThread.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::mediaLayerMustBeUpdatedOnMainThread): Ask the client if graphics layers
should be updated on the main thread.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::mediaLayerMustBeUpdatedOnMainThread): New, check settings to see
if video plug-in proxy is enabled.
* rendering/RenderLayerBacking.h:
2014-01-30 Jer Noble <jer.noble@apple.com>
[MediaControls][iOS] Fix a couple of UI bugs in the iOS Media Controls
https://bugs.webkit.org/show_bug.cgi?id=127929
Reviewed by Eric Carlson.
Two UI bugs in the iOS Media Controls: the text in the controls should use the apple
system font rather than the webkit small control font, and the buttons in the controls
are clipped due to an "off by one" error when calculating the SVG image dimensions.
* Modules/mediacontrols/mediaControlsiOS.css:
(::-webkit-media-controls):
(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-time-remaining-display):
2014-01-30 Jeremy Jones <jeremyj@apple.com>
Refactor WebVideoFullscreenController separating AVKit from MediaElement.
https://bugs.webkit.org/show_bug.cgi?id=127762
Reviewed by Jer Noble.
Refactor WebVideoFullscreenControllerAVKit implementation into two abstract interfaces with concrete implementations:
WebVideoFullscreenModel, WebVideoFullscreenInterface, WebVideoFullscreenModelMediaElement, WebVideoFullscreenInterfaceAVKit.
* WebCore.xcodeproj/project.pbxproj:
* platform/ios/WebVideoFullscreenControllerAVKit.h:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController init]):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController enterFullscreen:]):
(-[WebVideoFullscreenController exitFullscreen]):
* platform/ios/WebVideoFullscreenInterface.h: Copied from Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h.
(WebCore::WebVideoFullscreenInterface::~WebVideoFullscreenInterface):
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: Added.
(WebCore::WebVideoFullscreenInterfaceAVKit::~WebVideoFullscreenInterfaceAVKit):
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Added.
(NS_ENUM):
(-[WebAVPlayerController init]):
(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController forwardingTargetForSelector:]):
(-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):
(-[WebAVPlayerController play:]):
(-[WebAVPlayerController pause:]):
(-[WebAVPlayerController togglePlayback:]):
(-[WebAVPlayerController isPlaying]):
(-[WebAVPlayerController setPlaying:]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
(-[WebAVPlayerController seekToTime:]):
(:m_videoFullscreenModel):
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel):
(WebVideoFullscreenInterfaceAVKit::setDuration):
(WebVideoFullscreenInterfaceAVKit::setCurrentTime):
(WebVideoFullscreenInterfaceAVKit::setRate):
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
(WebVideoFullscreenInterfaceAVKit::setVideoLayer):
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
* platform/ios/WebVideoFullscreenModel.h: Copied from Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h.
(WebCore::WebVideoFullscreenModel::~WebVideoFullscreenModel):
* platform/ios/WebVideoFullscreenModelMediaElement.h: Copied from Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h.
(WebCore::WebVideoFullscreenModelMediaElement::~WebVideoFullscreenModelMediaElement):
(WebCore::WebVideoFullscreenModelMediaElement::setWebVideoFullscreenInterface):
* platform/ios/WebVideoFullscreenModelMediaElement.mm: Added.
(WebVideoFullscreenModelMediaElement::setMediaElement):
(WebVideoFullscreenModelMediaElement::handleEvent):
(WebVideoFullscreenModelMediaElement::requestExitFullScreen):
(WebVideoFullscreenModelMediaElement::play):
(WebVideoFullscreenModelMediaElement::pause):
(WebVideoFullscreenModelMediaElement::togglePlayState):
(WebVideoFullscreenModelMediaElement::seekToTime):
(WebVideoFullscreenModelMediaElement::didExitFullscreen):
2014-01-30 Jer Noble <jer.noble@apple.com>
[MediaControls][iOS] Add a "start load" button.
https://bugs.webkit.org/show_bug.cgi?id=127861
Reviewed by Eric Carlson.
Add a "start load" button which replaces the controls on platforms
where inline playback is not allowed, or when playback without a
user gesture is not allowed.
Add an accessor to MediaControlsHost to query whether inline playback is allowed.:
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::mediaPlaybackAllowsInline):
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediacontrols/MediaControlsHost.idl:
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::mediaSession):
Update the base controller to allow more functions to be overridden:
* Modules/mediacontrols/mediaControlsApple.js:
(Controller):
(Controller.prototype.shouldHaveAnyUI):
(Controller.prototype.updateBase):
(Controller.prototype.setControlsType):
(Controller.prototype.updateControls):
(Controller.prototype.handleFullscreenChange):
Add the new button, and allow for switching between "start", "inline", and "fullscreen" controls:
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.addVideoListeners):
(ControllerIOS.prototype.removeVideoListeners):
(ControllerIOS.prototype.createBase):
(ControllerIOS.prototype.shouldHaveStartPlaybackButton):
(ControllerIOS.prototype.shouldHaveControls):
(ControllerIOS.prototype.shouldHaveAnyUI):
(ControllerIOS.prototype.createControls):
(ControllerIOS.prototype.setControlsType):
(ControllerIOS.prototype.addStartPlaybackControls):
(ControllerIOS.prototype.removeStartPlaybackControls):
(ControllerIOS.prototype.updateControls):
(ControllerIOS.prototype.handleStartPlaybackButtonTouchStart):
(ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd):
(ControllerIOS.prototype.handleStartPlaybackButtonTouchCancel):
(ControllerIOS.prototype.handleReadyStateChange):
Add the new art:
* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-start-playback-button):
(audio::-webkit-media-controls-start-playback-button.failed):
2014-01-30 Tim Horton <timothy_horton@apple.com>
WebKit2 View Gestures (Swipe): Provide a way for clients to provide views to swipe
https://bugs.webkit.org/show_bug.cgi?id=127891
<rdar://problem/15931413>
Reviewed by Anders Carlsson.
* WebCore.exp.in:
A surprising export.
2014-01-30 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=127371
Explore new API that could be used to help build infinitely scrolling websites
-and corresponding-
<rdar://problem/15244768>
Reviewed by Sam Weinig.
This patch adds 4 new events called webkitwillrevealbottom, webkitwillrevealtop,
webkitwillrevealleft, and webkitwillrevealright. These events will fire when the
user has scrolled close to corresponding edge of the document. Right now that is
defined to be one viewport away from the corresponding edge.
FrameView::scrollPositionChanged() and
FrameView::scrollPositionChangedViaPlatformWidget() now take two parameters
representing the old scroll position and the new position.
* WebCore.exp.in:
New events.
* dom/Document.h:
* dom/Document.idl:
* dom/Element.h:
* dom/Element.idl:
* dom/EventNames.h:
* html/HTMLAttributeNames.in:
* html/HTMLElement.cpp:
(WebCore::populateEventNameForAttributeLocalNameMap):
* page/DOMWindow.h:
* page/DOMWindow.idl:
Send oldPosition and newPosition to scrollPositionChanged().
* page/FrameView.cpp:
(WebCore::FrameView::setFixedVisibleContentRect):
(WebCore::FrameView::scrollPositionChangedViaPlatformWidget):
After sending scroll events, also call sendWillRevealEdgeEventsIfNeeded() to send
the see if we should send the new will-reveal events.
(WebCore::FrameView::scrollPositionChanged):
Use the old position and the new position to determine if the events should be
sent.
(WebCore::FrameView::sendWillRevealEdgeEventsIfNeeded):
Send new parameters to scrollPositionChanged().
(WebCore::FrameView::scrollTo):
(WebCore::FrameView::wheelEvent):
* page/FrameView.h:
2014-01-30 Szabolcs David <davidsz@inf.u-szeged.hu>
[curl] Improve realm string parsing in WWW-Authenticate headers
https://bugs.webkit.org/show_bug.cgi?id=127421
Reviewed by Brent Fulgham.
The realm string contains quotes at the beginning and end - this is the
opposite of the libsoup implementation. Furthermore, if the header is
concatenated from two or more another headers, it contains more incorrect part.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::removeLeadingAndTrailingQuotes):
(WebCore::getProtectionSpace):
2014-01-30 Anders Carlsson <andersca@apple.com>
Modernize HTTPHeaderMap iteration
https://bugs.webkit.org/show_bug.cgi?id=127915
Reviewed by Andreas Kling.
* inspector/InspectorResourceAgent.cpp:
(WebCore::buildObjectForHeaders):
(WebCore::InspectorResourceAgent::willLoadXHR):
(WebCore::InspectorResourceAgent::replayXHR):
* loader/CrossOriginAccessControl.cpp:
(WebCore::isSimpleCrossOriginAccessRequest):
(WebCore::createAccessControlPreflightRequest):
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::store):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::canReuse):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::updateResponseAfterRevalidation):
* platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::copyData):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::addHTTPHeaderFields):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::setHeaderFields):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getAllResponseHeaders):
2014-01-30 Antti Koivisto <antti@apple.com>
WebPage::determinePrimarySnapshottedPlugIn is slow
https://bugs.webkit.org/show_bug.cgi?id=127905
Reviewed by Anders Carlsson.
* WebCore.exp.in: New exports
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLPlugInImageElement.h:
(WebCore::HTMLPlugInImageElement>): Add isElementOfType<>
2014-01-30 Csaba Osztrogonác <ossy@webkit.org>
[SOUP] Fix the build if !ENABLE(WEB_TIMING)
https://bugs.webkit.org/show_bug.cgi?id=127906
Reviewed by Gustavo Noronha Silva.
* platform/network/soup/SoupNetworkSession.cpp:
2014-01-30 Andrei Bucur <abucur@adobe.com>
Remove the ACCELERATED_COMPOSITING flag
https://bugs.webkit.org/show_bug.cgi?id=127833
Reviewed by Antti Koivisto.
Remove the USE(ACCELERATED_COMPOSITING) conditionals from the code base and make AC
mandatory.
Tests: No new tests, no functional change.
* css/MediaQueryEvaluator.cpp:
(WebCore::transform_3dMediaFeatureEval):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
* dom/Document.cpp:
(WebCore::Document::setVisualUpdatesAllowed):
(WebCore::Document::recalcStyle):
(WebCore::Document::createRenderTree):
(WebCore::Document::documentWillBecomeInactive):
(WebCore::Document::documentDidResumeFromPageCache):
(WebCore::Document::windowScreenDidChange):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::~PseudoElement):
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::CachedFrameBase):
(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::CachedFrame):
* history/CachedFrame.h:
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* history/CachedPage.h:
* history/PageCache.cpp:
(WebCore::PageCache::PageCache):
(WebCore::PageCache::markPagesForDeviceScaleChanged):
* history/PageCache.h:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer):
(WebCore::HTMLCanvasElement::createImageBuffer):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* html/canvas/CanvasRenderingContext.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::didDraw):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::markContextChanged):
(WebCore::WebGLRenderingContext::reshape):
(WebCore::WebGLRenderingContext::platformLayer):
* html/canvas/WebGLRenderingContext.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::pseudoElementDestroyedImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::pseudoElementDestroyed):
* inspector/InspectorLayerTreeAgent.cpp:
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
* loader/EmptyClients.h:
* page/ChromeClient.h:
* page/Frame.cpp:
(WebCore::Frame::layerTreeAsText):
(WebCore::Frame::deviceOrPageScaleFactorChanged):
* page/Frame.h:
* page/FrameView.cpp:
(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::scheduleLayerFlushAllowingThrottling):
(WebCore::FrameView::hasCompositedContent):
(WebCore::FrameView::hasCompositedContentIncludingDescendants):
(WebCore::FrameView::hasCompositingAncestor):
(WebCore::FrameView::enterCompositingMode):
(WebCore::FrameView::isEnclosedInCompositingLayer):
(WebCore::FrameView::flushCompositingStateIncludingSubframes):
(WebCore::FrameView::isSoftwareRenderable):
(WebCore::FrameView::layout):
(WebCore::FrameView::contentsInCompositedLayer):
(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::scrollContentsSlowPath):
(WebCore::FrameView::setIsOverlapped):
(WebCore::FrameView::delegatesScrollingDidChange):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::updateCompositingLayersAfterScrolling):
(WebCore::FrameView::visibleContentsResized):
(WebCore::FrameView::addedOrRemovedScrollbar):
(WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
(WebCore::FrameView::updateLayerFlushThrottlingInAllFrames):
(WebCore::FrameView::adjustTiledBackingCoverage):
(WebCore::FrameView::hasExtendedBackground):
(WebCore::FrameView::extendedBackgroundRect):
(WebCore::FrameView::setBackgroundExtendsBeyondPage):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::paintContents):
(WebCore::FrameView::setTracksRepaints):
(WebCore::FrameView::resetTrackedRepaints):
(WebCore::FrameView::setScrollingPerformanceLoggingEnabled):
(WebCore::FrameView::setExposedRect):
* page/FrameView.h:
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
(WebCore::Page::setDeviceScaleFactor):
* page/Settings.cpp:
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::freezeAtTime):
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::supportsAcceleratedAnimationOfProperty):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::CSSPropertyAnimation::blendProperties):
(WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
* page/animation/CSSPropertyAnimation.h:
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::animate):
(WebCore::ImplicitAnimation::startAnimation):
(WebCore::ImplicitAnimation::pauseAnimation):
(WebCore::ImplicitAnimation::endAnimation):
(WebCore::ImplicitAnimation::timeToNextService):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::animate):
(WebCore::KeyframeAnimation::startAnimation):
(WebCore::KeyframeAnimation::pauseAnimation):
(WebCore::KeyframeAnimation::endAnimation):
(WebCore::KeyframeAnimation::timeToNextService):
* page/ios/FrameIOS.mm:
(WebCore::Frame::viewportOffsetChanged):
(WebCore::Frame::containsTiledBackingLayers):
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
(WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
(WebCore::ScrollingCoordinator::scrollLayerForFrameView):
(WebCore::ScrollingCoordinator::headerLayerForFrameView):
(WebCore::ScrollingCoordinator::footerLayerForFrameView):
(WebCore::ScrollingCoordinator::counterScrollingLayerForFrameView):
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
* page/scrolling/ScrollingCoordinator.h:
* platform/ScrollView.cpp:
(WebCore::positionScrollCornerLayer):
(WebCore::ScrollView::positionScrollbarLayers):
(WebCore::ScrollView::paintScrollbars):
(WebCore::ScrollView::paint):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::invalidateScrollbar):
(WebCore::ScrollableArea::invalidateScrollCorner):
(WebCore::ScrollableArea::horizontalScrollbarLayerDidChange):
(WebCore::ScrollableArea::hasLayerForHorizontalScrollbar):
(WebCore::ScrollableArea::hasLayerForVerticalScrollbar):
(WebCore::ScrollableArea::hasLayerForScrollCorner):
* platform/ScrollableArea.h:
* platform/ScrollbarTheme.h:
* platform/efl/EflScreenUtilities.cpp:
(WebCore::applyFallbackCursor):
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/GraphicsContext3DPrivate.h:
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/GraphicsLayerAnimation.cpp:
* platform/graphics/GraphicsLayerAnimation.h:
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/GraphicsLayerFactory.h:
* platform/graphics/GraphicsLayerUpdater.cpp:
* platform/graphics/GraphicsLayerUpdater.h:
* platform/graphics/ImageBuffer.cpp:
* platform/graphics/ImageBuffer.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::platformLayer):
(WebCore::MediaPlayer::supportsAcceleratedRendering):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/PlatformLayer.h:
* platform/graphics/TextTrackRepresentation.cpp:
* platform/graphics/TextTrackRepresentation.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::currentRenderingMode):
(WebCore::MediaPlayerPrivateAVFoundation::preferredRenderingMode):
(WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering):
(WebCore::MediaPlayerPrivateAVFoundation::tearDownVideoRendering):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::platformLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):
* platform/graphics/ca/GraphicsLayerCA.cpp:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/LayerFlushScheduler.cpp:
* platform/graphics/ca/LayerFlushScheduler.h:
* platform/graphics/ca/LayerFlushSchedulerClient.h:
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/PlatformCAFilters.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/PlatformCALayerClient.h:
* platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimation::copyTimingFunctionsFrom):
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::enumerateRectsBeingDrawn):
* platform/graphics/ca/win/AbstractCACFLayerTreeHost.h:
* platform/graphics/ca/win/CACFLayerTreeHost.cpp:
* platform/graphics/ca/win/CACFLayerTreeHost.h:
* platform/graphics/ca/win/CACFLayerTreeHostClient.h:
* platform/graphics/ca/win/LayerChangesFlusher.cpp:
* platform/graphics/ca/win/LayerChangesFlusher.h:
* platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
* platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(PlatformCAAnimation::copyTimingFunctionsFrom):
* platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::createCompatibleLayer):
* platform/graphics/ca/win/PlatformCALayerWin.h:
* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(PlatformCALayerWinInternal::drawTile):
* platform/graphics/ca/win/PlatformCALayerWinInternal.h:
* platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
* platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
* platform/graphics/cairo/DrawingBufferCairo.cpp:
(WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::platformLayer):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::platformLayer):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::platformLayer):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
* platform/graphics/efl/GraphicsContext3DPrivate.h:
* platform/graphics/gpu/DrawingBuffer.h:
* platform/graphics/gpu/LoopBlinnMathUtils.cpp:
* platform/graphics/gpu/TilingData.cpp:
* platform/graphics/gpu/mac/DrawingBufferMac.mm:
(WebCore::DrawingBuffer::frontColorBuffer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
(WebCore::MediaPlayerPrivateIOS::supportsAcceleratedRendering):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
(WebCore::MediaPlayerPrivateQTKit::destroyQTMovieLayer):
(WebCore::MediaPlayerPrivateQTKit::preferredRenderingMode):
(WebCore::MediaPlayerPrivateQTKit::platformLayer):
(WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
(WebCore::MediaPlayerPrivateQTKit::layerHostChanged):
(WebCore::MediaPlayerPrivateQTKit::acceleratedRenderingStateChanged):
(-[WebCoreMovieObserver layerHostChanged:]):
* platform/graphics/mac/WebGLLayer.h:
* platform/graphics/mac/WebGLLayer.mm:
* platform/graphics/mac/WebLayer.h:
* platform/graphics/mac/WebLayer.mm:
* platform/graphics/mac/WebTiledLayer.h:
* platform/graphics/mac/WebTiledLayer.mm:
* platform/graphics/opengl/GLDefs.h:
* platform/graphics/opengl/GLPlatformContext.cpp:
* platform/graphics/opengl/GLPlatformContext.h:
* platform/graphics/opengl/GLPlatformSurface.cpp:
* platform/graphics/opengl/GLPlatformSurface.h:
* platform/graphics/surfaces/GLTransportSurface.cpp:
* platform/graphics/surfaces/GLTransportSurface.h:
* platform/graphics/surfaces/glx/GLXConfigSelector.h:
* platform/graphics/surfaces/glx/GLXContext.cpp:
* platform/graphics/surfaces/glx/GLXContext.h:
* platform/graphics/surfaces/glx/GLXSurface.cpp:
* platform/graphics/surfaces/glx/GLXSurface.h:
* platform/graphics/texmap/TextureMapper.cpp:
* platform/graphics/texmap/TextureMapper.h:
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
* platform/graphics/texmap/TextureMapperBackingStore.h:
* platform/graphics/texmap/TextureMapperFPSCounter.cpp:
* platform/graphics/texmap/TextureMapperFPSCounter.h:
* platform/graphics/texmap/TextureMapperGL.cpp:
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperLayer.cpp:
* platform/graphics/texmap/TextureMapperLayer.h:
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
* platform/graphics/texmap/TextureMapperTile.cpp:
* platform/graphics/texmap/TextureMapperTile.h:
* platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
* platform/graphics/texmap/TextureMapperTiledBackingStore.h:
* platform/graphics/win/GraphicsContext3DWin.cpp:
(WebCore::GraphicsContext3D::platformLayer):
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::createWindow):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerLayoutSublayersOfLayer):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::MediaPlayerPrivateQuickTimeVisualContext):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsFullscreen):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::platformMedia):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::platformLayer):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::naturalSize):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::paint):
(WebCore::CreateCGImageFromPixelBuffer):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveCurrentImage):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::currentRenderingMode):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::preferredRenderingMode):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpVideoRendering):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::tearDownVideoRendering):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::hasSetUpVideoRendering):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveAndResetMovieTransform):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::createLayerForMovie):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::destroyLayerForMovie):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::setPrivateBrowsingMode):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
* platform/graphics/win/WKCAImageQueue.cpp:
* platform/graphics/win/WKCAImageQueue.h:
* platform/mac/ScrollbarThemeMac.h:
* platform/mac/ScrollbarThemeMac.mm:
* plugins/PluginViewBase.h:
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateRenderFlowThreadLayersIfNeeded):
* rendering/FlowThreadController.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleWillChange):
(WebCore::isCandidateForOpaquenessTest):
(WebCore::layersUseImage):
(WebCore::RenderBox::imageChanged):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::suspendAnimations):
(WebCore::RenderBoxModelObject::fixedBackgroundPaintsInLocalCoordinates):
* rendering/RenderBoxModelObject.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::adjustStyleDifference):
(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::styleWillChange):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
* rendering/RenderFlowThread.h:
* rendering/RenderFullScreen.cpp:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageDimensionsChanged):
(WebCore::RenderImage::notifyFinished):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::canRender3DTransforms):
(WebCore::RenderLayer::paintsWithFilters):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
(WebCore::RenderLayer::currentTransform):
(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::checkIfDescendantClippingContextNeedsUpdate):
(WebCore::RenderLayer::shouldRepaintAfterLayout):
(WebCore::RenderLayer::enclosingFilterRepaintLayer):
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::RenderLayer::clippingRootForPainting):
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::removeOnlyThisLayer):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
(WebCore::RenderLayer::invalidateScrollbarRect):
(WebCore::RenderLayer::invalidateScrollCornerRect):
(WebCore::RenderLayer::positionOverflowControls):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::RenderLayer::paintOverflowControls):
(WebCore::shouldDoSoftwarePaint):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderLayerCompositor.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::collectsGraphicsLayersUnderRegions):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containerForRepaint):
(WebCore::RenderObject::repaintUsingContainer):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updatePlayer):
(WebCore::RenderVideo::acceleratedRenderingStateChanged):
* rendering/RenderVideo.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
(WebCore::RenderView::repaintRootContents):
(WebCore::RenderView::repaintRectangleInViewAndCompositedLayers):
(WebCore::RenderView::repaintViewAndCompositedLayers):
(WebCore::RenderView::setMaximalOutlineSize):
(WebCore::RenderView::compositor):
(WebCore::RenderView::setIsInWindow):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry):
(WebCore::RenderWidget::requiresAcceleratedCompositing):
* rendering/RenderWidget.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
(WebCore::RenderStyle::changeRequiresLayerRepaint):
(WebCore::RenderStyle::changeRequiresRecompositeLayer):
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setHeaderHeight):
(WebCore::Internals::setFooterHeight):
2014-01-30 Krzysztof Czech <k.czech@samsung.com>
AX: Clean up AccessibilityRenderObject
https://bugs.webkit.org/show_bug.cgi?id=127838
Reviewed by Chris Fleizach.
Reducing some code by implementing ariaElementsFromAttribute.
It is used as a helper for other methods.
No new tests. Covered by existing ones.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaElementsFromAttribute):
(WebCore::AccessibilityRenderObject::ariaFlowToElements):
(WebCore::AccessibilityRenderObject::ariaDescribedByElements):
(WebCore::AccessibilityRenderObject::ariaOwnsElements):
* accessibility/AccessibilityRenderObject.h:
2014-01-29 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r163048.
http://trac.webkit.org/changeset/163048
https://bugs.webkit.org/show_bug.cgi?id=127890
Caused many crashes, detected by EWS prior to landing
(Requested by ap on #webkit).
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::sortedTrackListForMenu):
(WebCore::MediaControlsHost::displayNameForTrack):
(WebCore::MediaControlsHost::captionDisplayMode):
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::initUserStyle):
* css/InspectorCSSOMWrappers.cpp:
(WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection):
* dom/Document.cpp:
(WebCore::Document::setCompatibilityMode):
(WebCore::Document::registerForCaptionPreferencesChangedCallbacks):
(WebCore::Document::captionPreferencesChanged):
* dom/DocumentStyleSheetCollection.cpp:
* dom/DocumentStyleSheetCollection.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
* page/CaptionStyleSheetMediaAF.cpp: Removed.
* page/CaptionStyleSheetMediaAF.h: Removed.
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::CaptionUserPreferences):
(WebCore::CaptionUserPreferences::notify):
(WebCore::CaptionUserPreferences::setCaptionDisplayMode):
(WebCore::CaptionUserPreferences::userPrefersCaptions):
(WebCore::CaptionUserPreferences::setUserPrefersCaptions):
(WebCore::CaptionUserPreferences::userPrefersSubtitles):
(WebCore::CaptionUserPreferences::setUserPrefersSubtitles):
(WebCore::CaptionUserPreferences::userPrefersTextDescriptions):
(WebCore::CaptionUserPreferences::setUserPrefersTextDescriptions):
(WebCore::CaptionUserPreferences::captionPreferencesChanged):
(WebCore::CaptionUserPreferences::textTrackSelectionScore):
(WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):
* page/CaptionUserPreferences.h:
(WebCore::CaptionUserPreferences::captionsStyleSheetOverride):
(WebCore::CaptionUserPreferences::setInterestedInCaptionPreferenceChanges):
(WebCore::CaptionUserPreferences::testingMode):
(WebCore::CaptionUserPreferences::setTestingMode):
(WebCore::CaptionUserPreferences::pageGroup):
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::userCaptionPreferencesChangedNotificationCallback):
(WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF):
(WebCore::CaptionUserPreferencesMediaAF::userPrefersCaptions):
(WebCore::CaptionUserPreferencesMediaAF::userPrefersSubtitles):
(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged):
(WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsTextColor):
(WebCore::CaptionUserPreferencesMediaAF::captionsTextColorCSS):
(WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsEdgeColorForTextColor):
(WebCore::CaptionUserPreferencesMediaAF::cssPropertyWithTextEdgeColor):
(WebCore::CaptionUserPreferencesMediaAF::colorPropertyCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):
(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore):
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
* page/CaptionUserPreferencesMediaAF.h:
* page/Page.cpp:
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferencesChanged):
(WebCore::PageGroup::captionPreferences):
* page/PageGroup.h:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setShouldDisplayTrackKind):
(WebCore::InternalSettings::shouldDisplayTrackKind):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::Internals):
(WebCore::Internals::captionsStyleSheetOverride):
(WebCore::Internals::setCaptionsStyleSheetOverride):
(WebCore::Internals::setPrimaryAudioTrackLanguageOverride):
(WebCore::Internals::setCaptionDisplayMode):
2014-01-29 Csaba Osztrogonác <ossy@webkit.org>
Remove ENABLE(JAVASCRIPT_DEBUGGER) leftovers
https://bugs.webkit.org/show_bug.cgi?id=127845
Reviewed by Joseph Pecoraro.
* Configurations/FeatureDefines.xcconfig:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::supportsProfiling):
2014-01-29 Gavin Barraclough <barraclough@apple.com>
Add IsVisibleOrOccluded to ViewState
https://bugs.webkit.org/show_bug.cgi?id=127875
Reviewed by Anders Carlsson.
* page/ViewState.h:
- added IsVisibleOrOccluded
2014-01-29 Ryosuke Niwa <rniwa@webkit.org>
EventHandler::handleMouseReleaseEvent shouldn't call updateSelectionCachesIfSelectionIsInsideTextFormControl
and selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=127834
Reviewed by Alexey Proskuryakov.
Removed the calls and made setNonDirectionalSelectionIfNeeded pass in UserTriggered option.
In addition, removed the rather error-prone function override of setSelection since TextGranularity,
which is an enum, could be implicitly coerced into SetSelectionOptions which is a typedefed unsigned int.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionByMouseIfDifferent): Renamed from setNonDirectionalSelectionIfNeeded.
Pass in DoNotRevealSelection to avoid revealing the selection to preserve the existing behavior.
There are two layout tests that fail without this.
(WebCore::FrameSelection::setSelection): Check the newly addeed DoNotRevealSelection option.
(WebCore::FrameSelection::wordSelectionContainingCaretSelection): Call
* editing/FrameSelection.h: Made updateSelectionCachesIfSelectionIsInsideTextFormControl and
selectFrameElementInParentIfFullySelected private as they are no longer called outside of FrameSelection.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::handleMouseReleaseEvent): Removed calls to the functions.
2014-01-29 Jer Noble <jer.noble@apple.com>
Unreviewed iOS build fix after 163050.
Import CALayer.h explicitly as (on iOS) it is not included by other headers.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2014-01-29 Jer Noble <jer.noble@apple.com>
Unreviewed Mac Build fix after r163046.
Forward define AVSampleLayerDisplayLayer and its methods.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2014-01-26 Sam Weinig <sam@webkit.org>
CaptionUserPreferences should not be on the PageGroup if they are not really per-PageGroup (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=127666
Reviewed by Eric Carlson.
This patch:
- Makes CaptionUserPreferences a singleton (temporary) that is accessed
via Page.
- Simplifies overriding system preferences by requiring that a Document be
be passed so the correct Settings object can be obtained (and not just a
random one).
- Stops using UserStyleSheets for captions style injection, and instead
adds a new style sheet to the DocumentStyleSheetCollection.
- Move caption style sheet creation into its own file - CaptionStyleSheetMediaAF.h/cpp
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Add new files.
* WebCore.exp.in:
Update exports.
* css/DocumentRuleSets.cpp:
* css/InspectorCSSOMWrappers.cpp:
* dom/Document.cpp:
* dom/DocumentStyleSheetCollection.cpp:
* dom/DocumentStyleSheetCollection.h:
Switch from using the user style sheet mechanism, which is meant for, you guessed it, users,
to an explicit caption style sheet.
* Modules/mediacontrols/MediaControlsHost.cpp:
* html/HTMLMediaElement.cpp:
* html/shadow/MediaControlElements.cpp:
Get the CaptionUserPreferences via the Page.
* page/CaptionStyleSheetMediaAF.cpp: Added.
* page/CaptionStyleSheetMediaAF.h: Added.
Move caption style sheet creation here. If the global style changes, the sheet is invalidated
and this is called again.
* page/CaptionUserPreferences.cpp:
* page/CaptionUserPreferences.h:
- Removes unused m_havePreferences member.
- Change userPrefersFoo() functions to take a Document&. Use it to check its Settings.
- Remove setUserPrefersFoo() functions and just set the Settings directly.
- Move all the testing only pieces together.
* page/CaptionUserPreferencesMediaAF.cpp:
* page/CaptionUserPreferencesMediaAF.h:
- Extract caption style sheet creation into CaptionStyleSheetMediaAF.h/cpp
- Stop waiting for an interested party, and just register for appearance change
notifications right away. Media elements are common enough that this should not
make a difference.
* page/Page.cpp:
(WebCore::Page::updateStyleForAllPagesForCaptionPreferencesChanged):
Add helper to call captionPreferencesChanged() on all the Pages.
(WebCore::Page::captionPreferences):
Add accessor for the CaptionUserPreferences. Currently this returns a singleton, but I plan
to extract the singleton aspects of it into another class, and leave the per-Page parts here.
* page/Page.h:
* page/PageGroup.cpp:
* page/PageGroup.h:
Remove CaptionUserPreferences from here.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setShouldDisplayTrackKind):
(WebCore::InternalSettings::shouldDisplayTrackKind):
Override the settings for the page directly.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::Internals):
(WebCore::Internals::captionsStyleSheetOverride):
(WebCore::Internals::setCaptionsStyleSheetOverride):
(WebCore::Internals::setPrimaryAudioTrackLanguageOverride):
(WebCore::Internals::setCaptionDisplayMode):
Get the CaptionUserPreferences via the Page.
2014-01-29 Jer Noble <jer.noble@apple.com>
[MSE][Mac] In SourceBufferPrivateAVFObjC, only include those headers actually necessary to compile.
https://bugs.webkit.org/show_bug.cgi?id=127846
Reviewed by Darin Adler.
To work around a compile issue, only include those paths containing classes and typedefs
which are used within SourceBufferPrivateAVFObjC, rather than all of AVFoundation.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2014-01-29 Brady Eidson <beidson@apple.com>
IDB: Fully implement IDBKeyData encoding/decoding
https://bugs.webkit.org/show_bug.cgi?id=127863
Rubberstamped by Alexey Proskuryakov.
* platform/KeyedCoding.h:
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::encode):
(WebCore::IDBKeyData::decode):
* WebCore.exp.in:
2014-01-29 Bem Jones-Bey <bjonesbe@adobe.com>
clip-path swaps bottom radii for the inset shape
https://bugs.webkit.org/show_bug.cgi?id=127859
Reviewed by Dirk Schulze.
The bottom right and bottom left radii were passed in the wrong order,
causing the wrong corner to be clipped in the resultant rendering.
Test: css3/masking/clip-path-inset-corners.html
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeInset::path): Change the parameter order to be
correct.
2014-01-29 Jer Noble <jer.noble@apple.com>
[MediaControls][iOS] Hook up the fullscreen button
https://bugs.webkit.org/show_bug.cgi?id=127850
Reviewed by Eric Carlson.
For the fullscreen button, do the same thing we do for the play button: handle touchstart,
touchend, and touchcancel, and perform the action (i.e., 'click') on touchend.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.createControls): Add listeners for the fullscreenButton.
(ControllerIOS.prototype.isFullScreen): Override.
(ControllerIOS.prototype.handleFullscreenButtonClicked): Override.
(ControllerIOS.prototype.handleFullscreenTouchStart): Added.
(ControllerIOS.prototype.handleFullscreenTouchEnd): Added.
(ControllerIOS.prototype.handleFullscreenTouchCancel): Added.
2014-01-29 Brady Eidson <beidson@apple.com>
IDB: Opening an existing database is broken
https://bugs.webkit.org/show_bug.cgi?id=127851
Reviewed by Tim Hatcher.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::IDBDatabaseBackend):
(WebCore::IDBDatabaseBackend::didOpenInternalAsync): Remember if this method has completed.
(WebCore::IDBDatabaseBackend::processPendingCalls): If didOpenInternalAsync hasn’t
been called yet, then it is incorrect to process any pending calls right now.
* Modules/indexeddb/IDBDatabaseBackend.h:
2014-01-29 Oliver Hunt <oliver@apple.com>
This dereference should not actually be necessary, and
is producing deprecation warnings with newer perls
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributesHashTable):
2014-01-28 Oliver Hunt <oliver@apple.com>
Make DOM attributes appear to be faux accessor properties
https://bugs.webkit.org/show_bug.cgi?id=127797
Reviewed by Michael Saboff.
Refactor the bindings generator, and make sure we emit
the CustomAccessor flag on properties that should
appear to be accessors.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateAttributesHashTable):
(GenerateImplementation):
2014-01-29 Alex Christensen <achristensen@webkit.org>
Prepare for accelerated compositing on WinCairo.
https://bugs.webkit.org/show_bug.cgi?id=127843
Reviewed by Anders Carlsson.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::setupFormData):
Remove VS2005 warning workaround.
* WebCore.vcxproj/WebCore.vcxproj:
Remove StyleCachedImageSet.cpp and CSSImageSetValue.cpp from the Win64 build
to avoid warnings because they are also included in StyleAllInOne.cpp and
CSSAllInOne.cpp, respectively.
2014-01-28 Michael Saboff <msaboff@apple.com>
Merge the jsCStack branch
https://bugs.webkit.org/show_bug.cgi?id=127763
Reviewed by Mark Hahnenberg.
Changes from http://svn.webkit.org/repository/webkit/branches/jsCStack
up to changeset 162958.
2014-01-29 Dan Bernstein <mitz@apple.com>
Fixed the iOS build.
* bindings/js/JSDOMWindowCustom.cpp: Updated for header renames.
2014-01-29 Csaba Osztrogonác <ossy@webkit.org>
Remove ENABLE(JAVASCRIPT_DEBUGGER) guards
https://bugs.webkit.org/show_bug.cgi?id=127840
Reviewed by Mark Lam.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::supportsProfiling):
(WebCore::JSDOMWindowBase::supportsRichSourceInfo):
* bindings/js/PageScriptDebugServer.cpp:
* bindings/js/PageScriptDebugServer.h:
* bindings/js/ScriptProfile.cpp:
* bindings/js/ScriptProfile.h:
* bindings/js/ScriptProfileNode.h:
* bindings/js/ScriptProfiler.cpp:
* bindings/js/ScriptProfiler.h:
* bindings/js/WorkerScriptDebugServer.cpp:
* bindings/js/WorkerScriptDebugServer.h:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::resume):
* inspector/InspectorController.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::isDebuggerPausedImpl):
(WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
(WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
(WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
(WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
(WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
(WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl):
(WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
(WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSPImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::profilerEnabledImpl):
(WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
(WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
(WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent):
* inspector/InspectorInstrumentation.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
* inspector/PageDebuggerAgent.cpp:
* inspector/PageDebuggerAgent.h:
* inspector/ScriptProfile.idl:
* inspector/ScriptProfileNode.idl:
* inspector/WebDebuggerAgent.cpp:
* inspector/WebDebuggerAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
* inspector/WorkerDebuggerAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::resume):
* inspector/WorkerInspectorController.h:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::pauseWorkerGlobalScope):
* inspector/WorkerRuntimeAgent.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
* page/Console.cpp:
* page/Console.h:
* page/Console.idl:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
* workers/WorkerMessagingProxy.cpp:
(WebCore::connectToWorkerGlobalScopeInspectorTask):
(WebCore::WorkerMessagingProxy::connectToInspector):
(WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
(WebCore::WorkerMessagingProxy::disconnectFromInspector):
(WebCore::dispatchOnInspectorBackendTask):
(WebCore::WorkerMessagingProxy::sendMessageToInspector):
2014-01-29 Eric Carlson <eric.carlson@apple.com>
[iOS] cleanup MediaPlayer.cpp
https://bugs.webkit.org/show_bug.cgi?id=127821
Reviewed by Jer Noble.
Don't register MediaPlayerPrivateIOS unless the runtime setting for media player proxy is set.
* platform/graphics/MediaPlayer.cpp: Don't define PlatformMediaEngineClassName on iOS
(WebCore::installedMediaEngines): Drive by cleanup to return early if registration has
already happened.
(WebCore::MediaPlayer::MediaPlayer): Don't force-register the first media engine unless
isVideoPluginProxyEnabled returns true.
2014-01-29 Youenn Fablet <youennf@gmail.com>
Have XHR.getResponseHeader() return null and XHR.getAllResponseHeader() return the empty string in initial ready states
https://bugs.webkit.org/show_bug.cgi?id=125840
Reviewed by Alexey Proskuryakov.
Merging https://chromium.googlesource.com/chromium/blink/+/d201caf874a0bd6f101f517462b3cf1d8c5fce3d
This patch makes it clear that null/empty string is returned whenever the error flag is set.
This new code path is covered by the added test.
Test: http/tests/xmlhttprequest/response-access-on-error.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getAllResponseHeaders):
(WebCore::XMLHttpRequest::getResponseHeader):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.idl:
2014-01-29 Antti Koivisto <antti@apple.com>
REGRESSION (r162947): Repaint test results are different between WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=127814
Reviewed by Anders Carlsson.
* page/FrameView.cpp:
(WebCore::FrameView::repaintContentRectangle):
Move repaint rect logging to RenderView.
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
Record raw repaint rects instead of optimized ones.
2014-01-29 Brady Eidson <beidson@apple.com>
IDB: Serialize IDBKeyDatas to disk, not IDBKeys
https://bugs.webkit.org/show_bug.cgi?id=127829
Reviewed by Tim Horton.
Move encode/decode from IDBKey to IDBKeyData.
* Modules/indexeddb/IDBKey.cpp:
* Modules/indexeddb/IDBKey.h:
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::IDBKeyData):
(WebCore::IDBKeyData::encode):
(WebCore::IDBKeyData::decode):
* Modules/indexeddb/IDBKeyData.h:
* WebCore.exp.in:
2014-01-29 Antti Koivisto <antti@apple.com>
REGRESSION (r162947): css3/flexbox/multiline-justify-content.html and css3/flexbox/position-absolute-child.html are timing out
https://bugs.webkit.org/show_bug.cgi?id=127809
Reviewed by Anders Carlsson.
These tests generate very large number of small repaint rectangles that overwhelm the region code.
* page/FrameView.cpp:
(WebCore::FrameView::repaintContentRectangle):
* platform/graphics/Region.h:
(WebCore::Region::gridSize):
(WebCore::Region::Shape::gridSize):
Add accessor for getting the current region grid complexity.
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
If the region gets very complex merge the repaint rects into a single big rectangle.
2014-01-29 Radu Stavila <stavila@adobe.com>
[CSSRegions] Unable to scroll a scrollable container for regions using mouse wheel
https://bugs.webkit.org/show_bug.cgi?id=123886
When an element flowed into a scrollable region is scrolled using the mouse wheel, the event
needs to be propagated to the region containing that element, on top of which the cursor
is located.
Reviewed by Antti Koivisto.
Tests: fast/regions/wheel-scroll-abspos.html
fast/regions/wheel-scroll.html
* page/EventHandler.cpp:
(WebCore::scrollNode):
(WebCore::EventHandler::defaultWheelEventHandler):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scroll):
(WebCore::RenderBox::scrollWithWheelEventLocation):
* rendering/RenderBox.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::regionFromAbsolutePointAndBox):
* rendering/RenderFlowThread.h:
2014-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r162922): [SOUP] Several tests are failing in EFL and GTK+ after r162922
https://bugs.webkit.org/show_bug.cgi?id=127836
Reviewed by Gustavo Noronha Silva.
The problem is that I assumed that several things done in
ResourceRequest::soupURI() were always desired, so I moved them to
URL. This patch restores the previous behaviour, so that those
tings are only done right before making a request.
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::createSoupURI):
* platform/soup/URLSoup.cpp:
(WebCore::URL::createSoupURI):
2014-01-29 Krzysztof Czech <k.czech@samsung.com>
[ATK] Expose aria-describedby with ATK_RELATION_DESCRIBED_BY
https://bugs.webkit.org/show_bug.cgi?id=121684
Reviewed by Mario Sanchez Prada.
Exposed aria-describedby by ATK_RELATION_DESCRIBED_BY.
Moved elementsFromAttribut to AccessibilityObject to have common interface
for AccessibilityNodeObject and AccessibilityRenderObject. Implemented
supportsARIADescribedBy and ariaDescribedByElements to better deal with aria-describedby attribute.
No new tests. Covered by existed one.
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::elementsFromAttribute):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::supportsARIADescribedBy):
(WebCore::AccessibilityObject::ariaDescribedByElements):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::supportsARIADescribedBy):
(WebCore::AccessibilityRenderObject::ariaDescribedByElements):
* accessibility/AccessibilityRenderObject.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkRelationSetFromCoreObject):
2014-01-29 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] minmax() should be a CSSFunction instead of a CSSValueList
https://bugs.webkit.org/show_bug.cgi?id=127057
Reviewed by Antti Koivisto.
We were incorrectly dumping minmax(x,y) as "x y" instead of
"minmax(x,y)". That's because we were treating minmax() internally
as a CSSValueList instead of a CSSFunction. Replaced that and also
added some extra information to our tests in order to check that
we don't regress. From now on the CSS grid layout testing helper
functions print not only the computed style but also the contents
of element.style.webkitGridDefinition{Columns|Rows}.
* css/CSSFunctionValue.h:
(WebCore::CSSFunctionValue::arguments):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):
* css/CSSParser.h:
* css/StyleResolver.cpp:
(WebCore::createGridTrackSize):
2014-01-29 Ryosuke Niwa <rniwa@webkit.org>
Rename notifyRendererOfSelectionChange
https://bugs.webkit.org/show_bug.cgi?id=127831
Reviewed by Antti Koivisto.
Renamed notifyRendererOfSelectionChange to updateSelectionCachesIfSelectionIsInsideTextFormControl.
* WebCore.order: Removed the exported symbol name as it's not used in WebKit or WebKit2 code.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::updateSelectionCachesIfSelectionIsInsideTextFormControl): Don't update the style since the existence
of text form control's shadow DOM no longer depends on renderer.
* editing/FrameSelection.h:
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::selectionChanged): Don't check renderer() for the same reason.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
2014-01-28 Jer Noble <jer.noble@apple.com>
[Mac] Handle NSURLAuthenticationMethodServerTrust challenges from -resourceLoader:shouldWaitForResponseToAuthenticationChallenge:
https://bugs.webkit.org/show_bug.cgi?id=127806
Reviewed by Eric Carlson.
In addition to the normal "user/password" NSURLAuthenticationChallenges, the
-resourceLoader:shouldWaitForResponseToAuthenticationChallenge: delegate method will
ask us to confirm server certificate chains. Rather than pop up an authentication
dialog (which won't work anyway) we will now just drop such requests and continue
on normally.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
2014-01-28 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162987.
http://trac.webkit.org/changeset/162987
https://bugs.webkit.org/show_bug.cgi?id=127825
Broke Mountain Lion build (Requested by andersca on #webkit).
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateAttributesHashTable):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructor):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerConstructor):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::jsTestNamedConstructorConstructor):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::jsTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsConstructor):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeConstructor):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):
2014-01-28 Enrica Casucci <enrica@apple.com>
Add support for ActionSheets in WK2 for iOS.
https://bugs.webkit.org/show_bug.cgi?id=127586
<rdar://problem/15283667>
Reviewed by Benjamin Poulain.
This patch contains some WebCore changes required to
implement support for ActionSheets.
It adds copyURL implementation for iOS in the Editor
class and fixes some bugs in the iOS specific pasteboard
writing code.
The changes to Localizable.strings are the result of
running update-webkit-localizedstrings script.
* English.lproj/Localizable.strings:
* WebCore.exp.in:
* editing/Editor.cpp:
* editing/Editor.h:
* editing/ios/EditorIOS.mm:
(WebCore::Editor::writeImageToPasteboard):
* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::write):
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write):
2014-01-28 Andy Estes <aestes@apple.com>
[iOS] REGRESSION (r162663): Webpages have strange artifacts or corruption around tile boundaries
https://bugs.webkit.org/show_bug.cgi?id=127823
Reviewed by Daniel Bates.
Original patch by Simon Fraser.
* platform/ScrollView.cpp: Specify LegacyIOSDocumentViewRect when calling visibleContentRect().
2014-01-28 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Adjust inset sizing syntax to the latest specification
https://bugs.webkit.org/show_bug.cgi?id=127785
Reviewed by Bem Jones-Bey.
According to the latest CSS Shapes specification [1], the width arguments of inset should
follow the syntax of the margin shorthand, which let us set all four insets with one, two
or four values. This patch updates the behavior and updates the affected tests.
[1] http://dev.w3.org/csswg/css-shapes/#funcdef-inset
Existing tests have been updated.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::CSSParser::parseBasicShapeInset):
2014-01-28 Oliver Hunt <oliver@apple.com>
Make DOM attributes appear to be faux accessor properties
https://bugs.webkit.org/show_bug.cgi?id=127797
Reviewed by Michael Saboff.
Refactor the bindings generator, and make sure we emit
the CustomAccessor flag on properties that should
appear to be accessors.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateAttributesHashTable):
(GenerateImplementation):
2014-01-27 Chris Fleizach <cfleizach@apple.com>
AX: Support @scope in HTML tables
https://bugs.webkit.org/show_bug.cgi?id=127688
Reviewed by Mario Sanchez Prada.
Add support for scope attribute so that row headers and column headers
are now exposed at the table cell level where appropriate.
Test: platform/mac/accessibility/table-scope.html
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::parentTable):
* accessibility/AccessibilityARIAGridCell.h:
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::parentTable):
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::columns):
(WebCore::AccessibilityTable::rows):
* accessibility/AccessibilityTable.h:
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentTable):
(WebCore::AccessibilityTableCell::isTableHeaderCell):
(WebCore::AccessibilityTableCell::isTableCellInSameRowGroup):
(WebCore::AccessibilityTableCell::isTableCellInSameColGroup):
(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::rowHeaders):
* accessibility/AccessibilityTableCell.h:
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::parentTable):
* accessibility/AccessibilityTableRow.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2014-01-28 Brent Fulgham <bfulgham@apple.com>
Improve latching behavior for wheel events
https://bugs.webkit.org/show_bug.cgi?id=127386
<rdar://problem/12176858>
Reviewed by Simon Fraser.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::clearLatchedNode): Added
(WebCore::ScrollingTree::latchedNode): Added
(WebCore::ScrollingTree::removeDestroyedNodes): Clear latched node if it's being removed.
(WebCore::ScrollingTree::ScrollingTree): Initialize new value used for tracking
scroll latching state.
(WebCore::ScrollingTree::setLatchedNode): Added
(WebCore::ScrollingTree::setOrClearLatchedNode): Added
Set latched node when beginning a swipe event, or clear latched node when scroll/momentum ends.
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Check for an existing
latched node and stay in fast scrolling mode if possible. If the current event should
start a swipe event, clear the current latched node so we can correctly find and assign
the new latch node.
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::hasLatchedNode): Added
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent): Determine latching state
based on wheel event state and position of mouse pointer in the document.
* platform/ScrollAnimator.cpp:
(ScrollAnimator::handleWheelEvent): Always treat PlatformWheelEventPhaseMayBegin
as successfully handled so that it does not "bubble back up" to the root of
the scrolling tree.
2014-01-23 Myles C. Maxfield <mmaxfield@apple.com>
ASSERT_WITH_SECURITY_IMPLICATION in WebCore::InlineTextBox::paint
https://bugs.webkit.org/show_bug.cgi?id=114586
Reviewed by Dave Hyatt.
Taken mostly from https://chromium.googlesource.com/chromium/blink/+/cb2297db16f2e9328cb4dd8b552093d6b22340a8
If RenderQuote is a subclass of RenderObject, it can't be split by the first-letter CSS pseudoclass.
Instead, we should make it a subclass of RenderElement, so that it can be split properly.
Test: fast/css-generated-content/quote-first-letter.html
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::didRecalcStyle):
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::RenderQuote):
(WebCore::RenderQuote::willBeDestroyed):
(WebCore::RenderQuote::willBeRemovedFromTree):
(WebCore::RenderQuote::styleDidChange):
(WebCore::RenderQuote::updateText):
(WebCore::RenderQuote::computeText):
(WebCore::RenderQuote::updateDepth):
* rendering/RenderQuote.h:
* rendering/style/ContentData.cpp:
(WebCore::QuoteContentData::createContentRenderer):
2014-01-28 Antti Koivisto <antti@apple.com>
Document::topDocument() should return a reference
https://bugs.webkit.org/show_bug.cgi?id=127786
Reviewed by Darin Adler.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::mainFrame):
(WebCore::AccessibilityObject::topDocument):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityContainer]):
* dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::createRenderTree):
(WebCore::Document::destroyRenderTree):
(WebCore::Document::clearAXObjectCache):
(WebCore::Document::existingAXObjectCache):
(WebCore::Document::axObjectCache):
(WebCore::Document::implicitClose):
(WebCore::Document::topDocument):
(WebCore::Document::topOrigin):
(WebCore::Document::webkitCancelFullScreen):
(WebCore::Document::webkitDidExitFullScreenForElement):
* dom/Document.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::incrementScrollEventListenersCount):
(WebCore::DOMWindow::decrementScrollEventListenersCount):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::isReplacementObscured):
* rendering/RenderView.cpp:
(WebCore::RenderView::RepaintRegionAccumulator::RepaintRegionAccumulator):
2014-01-28 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
Sticky positioning is broken for table rows
https://bugs.webkit.org/show_bug.cgi?id=112024
Reviewed by Simon Fraser.
Enable sticky positioning for table elements.
Also includes fix for bug wkb.ug/105654
I don't have access to this bug, but from related commit message I
assume it says about "Heap use after free problem".
Debugging showed that it wasn't heap use after free.
The real problem that RenderObject::container() returns object which is
not RenderBlock and it is used as RenderBlock in
RenderBox::containingBlockLogicalHeightForPositioned() method.
Added extra isRenderBlock check and search for containingBlock if
current block is not RenderBlock.
Tests: fast/css/sticky/sticky-table-row-top.html
fast/css/sticky/sticky-table-thead-top.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
* rendering/RenderTableRow.h:
2014-01-28 Myles C. Maxfield <mmaxfield@apple.com>
Fixing several incorrect assumptions with handling isolated inlines.
https://bugs.webkit.org/show_bug.cgi?id=127608
Reviewed by Simon Fraser.
Fixing capitalization.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setUpResolverToResumeInIsolate):
(WebCore::constructBidiRunsForSegment):
2014-01-28 Myles C. Maxfield <mmaxfield@apple.com>
Fixing several incorrect assumptions with handling isolated inlines.
https://bugs.webkit.org/show_bug.cgi?id=127608
Reviewed by Dave Hyatt.
First, when an isolated inline spans multiple lines, we aren't guaranteed
to exit BidiResolver with a nested inline count of zero. Removing the
assert that says otherwise.
Previously in constructBidiRunsForSegment, we called bidiFirst in
an attempt to properly setup the isolatedResolver for any dom/style
that applied, but this only worked on the first line the isolated
inline appeared in. Adding a function that approaches this properly
by recursing through the parents of the starting object for the line
and post-fixing direction attributes to the resolver.
Finally, addressing an issue where the line following a removed isolated
inline (with a continuation) failed to be marked dirty.
Merged from Blink: https://chromium.googlesource.com/chromium/blink/+/72698f203b1c50900e535b80945563b92b7eef23
Tests: fast/text/nested-bidi-assert.html
fast/text/nested-bidi-with-continuation-crash.html
* platform/text/BidiResolver.h:
(WebCore::Run>::~BidiResolver):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setupResolverToResumeInIsolate):
(WebCore::constructBidiRunsForSegment):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
2014-01-28 Antti Koivisto <antti@apple.com>
REGRESSION(r162837): 5% regression on html5-full-render and 3% regression in DoYouEvenBench
https://bugs.webkit.org/show_bug.cgi?id=127722
Reviewed by Darin Adler.
Accumulate repaint region in RendeView instead of flushing rects directly to the system.
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
(WebCore::Document::updateLayout):
(WebCore::Document::topDocument):
Make less silly.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
(WebCore::RenderView::flushAccumulatedRepaintRegion):
(WebCore::RenderView::RepaintRegionAccumulator::RepaintRegionAccumulator):
(WebCore::RenderView::RepaintRegionAccumulator::~RepaintRegionAccumulator):
* rendering/RenderView.h:
2014-01-28 Jeremy Jones <jeremyj@apple.com>
HTMLMediaElement::m_platformLayerBorrowed is uninitialized.
https://bugs.webkit.org/show_bug.cgi?id=127759
Reviewed by Eric Carlson.
Initalize m_platformLayerBorrowed to false.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
2014-01-28 Jer Noble <jer.noble@apple.com>
[Mac] Use explicit, rather than canonical, AudioFormatFlags and types.
https://bugs.webkit.org/show_bug.cgi?id=127781
Reviewed by Eric Carlson.
Since every mac platform uses Float32 audio samples, use these types explicitly
rather than the implicit, canonical AudioSampleType type. Once we're using Float32
explicity, we can also use the explicit kAudioFormatFlagsNativeFloatPacked flag
rather than the canonical version.
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationMac::configure):
* platform/audio/mac/AudioFileReaderMac.cpp:
(WebCore::AudioFileReader::createBus):
2014-01-27 Alexey Proskuryakov <ap@apple.com>
Expose SQL database creation and modification times
https://bugs.webkit.org/show_bug.cgi?id=127728
Reviewed by Brady Eidson.
* platform/FileSystem.h:
* platform/posix/FileSystemPOSIX.cpp:
(WebCore::getFileCreationTime):
* platform/win/FileSystemWin.cpp:
(WebCore::getFileCreationTimeFromFindData):
(WebCore::getFileCreationTime):
Added functions to get file creation times. Not all OSes support that, but Darwin
and Windows do, as (I think) various BSD flavors.
* platform/gtk/FileSystemGtk.cpp: Added a stub for getFileCreationTime().
* platform/sql/SQLiteFileSystem.h:
* platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::databaseCreationTime):
(WebCore::SQLiteFileSystem::databaseModificationTime):
Expose it in the same strange manner other database file operations are.
* Modules/webdatabase/DatabaseDetails.h:
(WebCore::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::creationTime):
(WebCore::DatabaseDetails::modificationTime):
Added creation and modification times to DatabaseDetails.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase):
(WebCore::DatabaseManager::openDatabaseBackend):
ProposedDatabase is an unfortunate mechanism for communicating quota errors to the
client, we should really straighten it up. But for now, just leave the times uninitialized.
* Modules/webdatabase/DatabaseBackendBase.cpp: (WebCore::DatabaseBackendBase::details):
This code path is for handling quota errors, so there is no need to initialize most
of DatabaseDetails here as well.
* Modules/webdatabase/DatabaseTracker.cpp: (WebCore::DatabaseTracker::detailsForNameAndOrigin):
* Modules/webdatabase/DatabaseTracker.h:
Fill in database file times. Inlined and removed usageForDatabase function to
avoid rebuilding the path multiple times.
2014-01-28 Jer Noble <jer.noble@apple.com>
Setting muted attribute on <video> element is not reflected in controls
https://bugs.webkit.org/show_bug.cgi?id=127726
Reviewed by Eric Carlson.
If the 'muted' IDL attribute is queried after the 'muted' and 'src' content attributes are
set but before loading begins, it will return 'false' until loading begins, but with no
way to query whether that value is valid, nor firing a volumechange event when its value
changes.
The HTML spec says that the 'muted' content attribute controls whether audio output is
muted "when the media element is created", not when loading begins, but we don't
necessarily have a signal that the element is fully parsed. Additionally, this means its
impossible to make an element via script and get this behavior.
So the new behavior is that the 'muted' IDL attribute will always reflect the 'muted'
content attribute up until one of the following three conditions:
- The 'muted' IDL attribute is set via script.
- The element is inserted in the document.
- The element begins loading.
After the first one of the above conditions, the 'muted' IDL attribute will no longer
change when the 'muted' content attribute changes.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
2014-01-28 Anders Carlsson <andersca@apple.com>
Add stubbed out VisitedLinkProvider class
https://bugs.webkit.org/show_bug.cgi?id=127744
Reviewed by Andreas Kling.
This is a first step towards moving responsibility of visited links from
the page group to a separate object.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* page/PageGroup.cpp:
(WebCore::PageGroup::PageGroup):
* page/PageGroup.h:
(WebCore::PageGroup::visitedLinkProvider):
* page/VisitedLinkProvider.cpp: Added.
(WebCore::VisitedLinkProvider::VisitedLinkProvider):
(WebCore::VisitedLinkProvider::~VisitedLinkProvider):
* page/VisitedLinkProvider.h: Added.
(WebCore::VisitedLinkProvider::create):
2014-01-28 Gurpreet Kaur <k.gurpreet@samsung.com>
Add support for menclose element
https://bugs.webkit.org/show_bug.cgi?id=85729
Reviewed by Chris Fleizach.
Added support for menclose element. MathML <menclose> element renders
its content inside an enclosing notation specified by the notation
attribute. The notation attribute can have values longdiv, box, left,
right, top, bottom , radical, madruwb, actuarial, roundedbox, circle,
updiagonalstrike, downdiagonalstrike, verticalstrike and
horizontalstrike.
Tests: mathml/presentation/menclose-add-children.html
mathml/presentation/menclose-notation-attribute-add.html
mathml/presentation/menclose-notation-attribute-change-value.html
mathml/presentation/menclose-notation-attribute-remove.html
mathml/presentation/menclose-notation-attribute-set1.html
mathml/presentation/menclose-notation-attribute-set2.html
mathml/presentation/menclose-notation-no-overlap.html
mathml/presentation/menclose-notation-radical.html
mathml/presentation/menclose-remove-children.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/mathml.css:
(mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose):
(math, mrow, mfenced, msqrt, mroot, merror, mphantom, mstyle, menclose):
* mathml/MathMLAllInOne.cpp:
* mathml/MathMLElement.h:
* mathml/MathMLInlineContainerElement.cpp:
* mathml/MathMLMencloseElement.cpp: Added.
(WebCore::MathMLMencloseElement::MathMLMencloseElement):
(WebCore::MathMLMencloseElement::create):
(WebCore::MathMLMencloseElement::createElementRenderer):
(WebCore::MathMLMencloseElement::isPresentationAttribute):
(WebCore::MathMLMencloseElement::finishParsingChildren):
(WebCore::MathMLMencloseElement::collectStyleForPresentationAttribute):
(WebCore::MathMLMencloseElement::longDivLeftPadding):
* mathml/MathMLMencloseElement.h: Added.
(WebCore::toMathMLMencloseElement):
* mathml/mathattrs.in:
* mathml/mathtags.in:
* rendering/mathml/RenderMathMLMenclose.cpp: Added.
(WebCore::RenderMathMLMenclose::RenderMathMLMenclose):
(WebCore::RenderMathMLMenclose::addChild):
(WebCore::RenderMathMLMenclose::computePreferredLogicalWidths):
(WebCore::RenderMathMLMenclose::updateLogicalHeight):
(WebCore::RenderMathMLMenclose::paint):
(WebCore::RenderMathMLMenclose::checkNotationalValuesValidity):
* rendering/mathml/RenderMathMLMenclose.h: Added.
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::RenderMathMLRoot):
* rendering/mathml/RenderMathMLRoot.h:
* rendering/mathml/RenderMathMLSquareRoot.cpp:
(WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot):
(WebCore::RenderMathMLSquareRoot::createAnonymousWithParentRenderer):
* rendering/mathml/RenderMathMLSquareRoot.h:
Added new file related to menclose element implementation. Menclose
element is created and while parsing its notation attribute based on
its values like top, left CSSBorder properties are applied and for
values like circle, verticalstrike, longidv its taken care in paint.
For radical value an anonymous RenderMathMLSquareRoot is created as
a child of menclose.
2014-01-28 Krzysztof Czech <k.czech@samsung.com>
[ATK] accessibility/range-alter-by-percent.html is failing after r162587.
https://bugs.webkit.org/show_bug.cgi?id=127774
Reviewed by Mario Sanchez Prada.
Implicit value of step in range type elements should be one or larger.
No new tests. Covered by exiting one.
* accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
(webkitAccessibleValueGetMinimumIncrement):
2014-01-28 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/127767> Disable some deprecation warnings to fix the build.
Reviewed by Ryosuke Niwa.
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper renderWidgetChildren]):
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationMac::configure):
* platform/audio/mac/AudioFileReaderMac.cpp:
(WebCore::AudioFileReader::createBus):
2014-01-28 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Remove soupURIToKURL
https://bugs.webkit.org/show_bug.cgi?id=127104
Reviewed by Martin Robinson.
In favor of a URL constructor receiving a SoupURI. Also add a
method to URL to create a soupURI.
* GNUmakefile.list.am: Remove SoupURIUtils and add URLSoup.
* PlatformEfl.cmake: Ditto.
* PlatformGTK.cmake: Ditto.
* platform/URL.h: Add URL constructor receiving a SoupURI and
createSoupURI() to create a new soupURI for the URL.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::setCookiesFromDOM): Use URL::createSoupURI().
(WebCore::cookiesForSession): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Ditto.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect): Use the new URL constructor instead of
soupURIToKURL.
(WebCore::createSoupRequestAndMessageForHandle): Use URL::createSoupURI().
* platform/network/soup/ResourceRequest.h: Rename soupURI as
createSoupURI to make it clear that the method returns a newly
created SoupURI.
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessageMembers): Use URL::createSoupURI().
(WebCore::ResourceRequest::updateSoupMessage): Ditto.
(WebCore::ResourceRequest::updateFromSoupMessage): Use the new URL
constructor instead of soupURIToKURL.
(WebCore::ResourceRequest::createSoupURI): Use URL::createSoupURI().
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::updateFromSoupMessage): Use the new
URL constructor instead of soupURIToKURL.
* platform/network/soup/SoupURIUtils.cpp: Removed.
* platform/network/soup/SoupURIUtils.h: Removed.
* platform/soup/URLSoup.cpp: Added.
(WebCore::URL::URL):
(WebCore::URL::createSoupURI):
2014-01-27 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Avoid unnecessary string duplications in FileSystemGtk
https://bugs.webkit.org/show_bug.cgi?id=127469
Reviewed by Martin Robinson.
We are using fileSystemRepresentation() everywhere internally
which returns a CString that always duplicates the string.
Add unescapedFilename() internal helper function that returns a
GUniquePtr and used it everywhere instead of fileSystemRepresentation().
* platform/gtk/FileSystemGtk.cpp:
(WebCore::unescapedFilename):
(WebCore::fileSystemRepresentation):
(WebCore::filenameForDisplay):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::getFileStat):
(WebCore::getFileSize):
(WebCore::getFileModificationTime):
(WebCore::getFileMetadata):
(WebCore::pathByAppendingComponent):
(WebCore::makeAllDirectories):
(WebCore::pathGetFileName):
(WebCore::directoryName):
(WebCore::listDirectory):
(WebCore::openFile):
2014-01-27 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Make webkit_uri_scheme_request_get_web_view() work with CustomProtocols
https://bugs.webkit.org/show_bug.cgi?id=127614
Reviewed by Gustavo Noronha Silva.
Add API to set the page identifier that initiated the request to
ResourceRequest, and remove the initiatingPageID() method from the
NetworkingContext class.
* platform/network/NetworkingContext.h:
* platform/network/ResourceHandle.h:
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::createSoupRequestAndMessageForHandle):
* platform/network/soup/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::initiatingPageID):
(WebCore::ResourceRequest::setInitiatingPageID):
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupRequest):
(WebCore::ResourceRequest::updateFromSoupRequest):
2014-01-27 Tim Horton <timothy_horton@apple.com>
Lots of varied and random crashes on the scrolling thread (ScrollbarPainters are going away)
https://bugs.webkit.org/show_bug.cgi?id=127734
<rdar://problem/15906263>
Reviewed by Simon Fraser.
* page/scrolling/ScrollingStateScrollingNode.h:
Retain the ScrollbarPainters in the scrolling state tree.
2014-01-27 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed iOS build fix. FALLTHROUGHs for iOS.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
2014-01-27 Roger Fong <roger_fong@apple.com>
WebGLLoadPolicy::WebGLAsk is an unnecessary value.
https://bugs.webkit.org/show_bug.cgi?id=127755
Reviewed by Anders Carlsson.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
* loader/FrameLoaderTypes.h:
2014-01-27 Brady Eidson <beidson@apple.com>
IDB: Cursor support - Messaging, IPC, Threading plumbing
https://bugs.webkit.org/show_bug.cgi?id=127736
Reviewed by Sam Weinig.
* Modules/indexeddb/IDBCursorBackendOperations.h:
(WebCore::CursorIterationOperation::cursorID):
(WebCore::CursorAdvanceOperation::cursorID):
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::OpenCursorOperation::transactionID):
* WebCore.exp.in:
2014-01-27 Joseph Pecoraro <pecoraro@apple.com>
WebCore: Enable -Wimplicit-fallthrough and add FALLTHROUGH annotation where needed
https://bugs.webkit.org/show_bug.cgi?id=127671
Reviewed by Ryosuke Niwa.
* Configurations/Base.xcconfig:
Enable the warning.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Caught a bug. CSSPropertyWebkitAlt could fall through to CSSPropertyQuotes.
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
Caught a bug. CSSPropertyWebkitSvgShadow could fall through to CSSPropertyMaskType.
* platform/Decimal.cpp:
(WebCore::Decimal::fromString):
Possible bug. Implementation doesn't seem to match its documentation.
Filed an issue to follow-up on this unclear function.
* css/makeprop.pl:
* css/makevalues.pl:
* platform/ColorData.gperf:
Ignore implicit fallthrough warnings in generated code. gperf outputs
a "/*FALLTHROUGH*/" comment, but is not easily customizable to change
this output. Easiest to just ignore the warning for now.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
(WebCore::AutoTableLayout::layout):
There has been a "fall through" comment immediately followed by a break
since its introduction in 2003. Removing the inaccurate comment.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren):
(WebCore::AccessibilityNodeObject::visibleText):
(WebCore::AccessibilityNodeObject::title):
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase accessibilityDescription]):
(-[WebAccessibilityObjectWrapperBase accessibilityHelpText]):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::deserialize):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseContent):
(WebCore::CSSParser::realLex):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
(WebCore::CSSSelector::selectorText):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* dom/Node.cpp:
(WebCore::appendTextContent):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* page/EventSource.cpp:
(WebCore::EventSource::parseEventStream):
* platform/DateComponents.cpp:
(WebCore::DateComponents::toStringForTime):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::totalBytes):
* platform/graphics/win/FullScreenController.cpp:
(FullScreenController::Private::fullscreenClientWndProc):
* platform/text/BidiResolver.h:
(WebCore::Run>::updateStatusLastFromCurrentDirection):
(WebCore::Run>::createBidiRunsForLine):
* platform/text/win/LocaleWin.cpp:
(WebCore::LocaleWin::initializeLocaleData):
* rendering/PointerEventsHitRules.cpp:
(WebCore::PointerEventsHitRules::PointerEventsHitRules):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::newLine):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateFillTileSize):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::originalText):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::replacedContentRect):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setWordSpacing):
* rendering/svg/RenderSVGResource.cpp:
(WebCore::requestPaintingResource):
* rendering/svg/SVGMarkerData.h:
(WebCore::SVGMarkerData::updateMarkerDataForPathElement):
* svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::parsePathDataFromSource):
* svg/SVGTransformDistance.cpp:
(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addToSVGTransform):
(WebCore::SVGTransformDistance::distance):
Add annotation or break before falling into a default:break;
2014-01-27 Andreas Kling <akling@apple.com>
Allow mmap encoded data replacement for WOFF fonts.
<https://webkit.org/b/127737>
We always have to convert WOFF fonts to SFNT format. This happens
in a separate buffer from the CachedFont's internal resource buffer.
Because of this, there's no need to protect the original buffer from
mmap replacement.
With this change, WOFF web fonts are no longer duplicated between
the network and web processes.
Reviewed by Brady Eidson.
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::CachedFont):
(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::mayTryReplaceEncodedData):
* loader/cache/CachedFont.h:
2014-01-27 David Hyatt <hyatt@apple.com>
[New Multicolumn] Add support for block progression axis and reverse direction
https://bugs.webkit.org/show_bug.cgi?id=127715
Reviewed by thorton.
This patch adds support for -webkit-progression-direction and -webkit-progression-axis
to the new column code. This allows columns to stack along the block axis instead of
the inline axis or to reverse directions along that progression axis.
Added fast/multicol/newmulticol/progression-reverse.html and
fast/multicol/newmulticol/progression-reverse-overflow.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isTopLayoutOverflowAllowed):
(WebCore::RenderBlock::isLeftLayoutOverflowAllowed):
New functions have been added for top and left layout overflow in order to get
a bunch of code out of RenderBox that didn't belong there. RenderBlock is overriding
the functions for the old multicolumn layout code to keep it working.
* rendering/RenderBlock.h:
Added the new top/left overflow functions.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::determineLogicalLeftPositionForChild):
Moved from RenderBlock, since it didn't belong there.
(WebCore::RenderBlockFlow::isTopLayoutOverflowAllowed):
(WebCore::RenderBlockFlow::isLeftLayoutOverflowAllowed):
* rendering/RenderBlockFlow.h:
Overridden for the new multi-column code to specify when top/left overflow are
allowed (e.g., when the columns go backwards).
* rendering/RenderBox.cpp:
(WebCore::RenderBox::addLayoutOverflow):
Overridden to use the new top/left overflow functions.
* rendering/RenderBox.h:
(WebCore::RenderBox::isTopLayoutOverflowAllowed):
(WebCore::RenderBox::isLeftLayoutOverflowAllowed):
Added base definitions that look at direction and writing-mode.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::isTopLayoutOverflowAllowed):
(WebCore::RenderFlexibleBox::isLeftLayoutOverflowAllowed):
* rendering/RenderFlexibleBox.h:
Overrides for flexible box of the top/left overflow functions.
* rendering/RenderMultiColumnFlowThread.h:
Make sure requiresBalancing() is set to false if the axis of the columns
is block, since at least right now, we don't support balancing columns
along the block axis. (In theory we could support this in the future, but
nobody has requested it.)
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
Remove the code that expands the width of multi column sets. We now always
let their logical width match the containing block's content width and instead
add the overflow to the set itself.
(WebCore::RenderMultiColumnSet::columnRectAt):
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
(WebCore::RenderMultiColumnSet::paintColumnRules):
(WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
(WebCore::RenderMultiColumnSet::collectLayerFragments):
(WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
Patch all of these functions to know how to handle a block axis or reversed
direction.
(WebCore::RenderMultiColumnSet::addOverflowFromChildren):
* rendering/RenderMultiColumnSet.h:
Make multi-column set add in its overflow in the same way that the old
multi-column code did, by looking at the last column rect. (This is really
not a very good way to do it, but it's the same as the old code for now.)
2014-01-27 Daniel Bates <dabates@apple.com>
Fix the Mac build following <http://trac.webkit.org/changeset/162887>
(https://bugs.webkit.org/show_bug.cgi?id=127703)
Export symbol for WebCore::AXObjectCache::enableAccessibility().
* WebCore.exp.in:
2014-01-27 Roger Fong <roger_fong@apple.com>
[Mac] Unreviewed build fix. Add missing export symbol.
* WebCore.exp.in:
2014-01-27 Roger Fong <roger_fong@apple.com>
[Windows] Tests crashing on Windows after r162816.
https://bugs.webkit.org/show_bug.cgi?id=127703.
Reviewed by Alexey Proskuryakov.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::enableAccessibility):
(WebCore::AXObjectCache::disableAccessibility):
* accessibility/AXObjectCache.h: Un-inline some methods so that they can be exported.
2014-01-27 Andy Estes <aestes@apple.com>
Update bindings test expectations after r162872
* bindings/scripts/test/ObjC/DOMTestInterface.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
2014-01-27 Andy Estes <aestes@apple.com>
Scrub WebKit API headers of WTF macros
https://bugs.webkit.org/show_bug.cgi?id=127706
Reviewed by David Kilzer.
* Configurations/FeatureDefines.xcconfig: Added ENABLE_INSPECTOR.
* bindings/objc/DOMEvents.h: Guarded include of
DOM{Gesture,Touch}Event.h with TARGET_OS_IPHONE, since those features
are always enabled on iOS.
* platform/graphics/mac/MediaPlayerProxy.h: Replaced PLATFORM(IOS) with
TARGET_OS_IPHONE and ensured ENABLE_IOS_AIRPLAY is defined.
* platform/ios/SystemMemory.h: Replaced PLATFORM(IOS) with
TARGET_OS_IPHONE.
* platform/ios/wak/WKGraphics.h: Replaced PLATFORM(IOS_SIMULATOR) with
TARGET_IPHONE_SIMULATOR.
2014-01-27 Jer Noble <jer.noble@apple.com>
[iOS] Use callOnMainThread() not dispatch_async() in MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=127701
Reviewed by Eric Carlson.
dispatch_async(dispatch_get_main_queue(), ...) used to be fine so long as the main
thread was also the web thread. But since that's not the case on iOS, we should be
using callOnMainThread() instead (because it dispatches to the web thread, not as
its name implies, the main thread).
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createWeakPtr):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
2014-01-27 Maciej Stachowiak <mjs@apple.com>
Move Conditional=BLOB from URL interface to Blob-related methods, to prepare for adding URL API
https://bugs.webkit.org/show_bug.cgi?id=127719
Reviewed by Sam Weinig.
* html/DOMURL.idl:
2014-01-27 Andreas Kling <akling@apple.com>
Remove unused USE(OPENTYPE_SANITIZER) code.
<https://webkit.org/b/127710>
This code was only used by the Chromium port.
Reviewed by Darin Adler.
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::ensureCustomFontData):
* platform/graphics/WOFFFileFormat.cpp:
* platform/graphics/WOFFFileFormat.h:
* platform/graphics/opentype/OpenTypeSanitizer.cpp: Removed.
* platform/graphics/opentype/OpenTypeSanitizer.h: Removed.
2014-01-27 Andy Estes <aestes@apple.com>
Stop the code generator from adding ENABLE() macros to Objective-C DOM headers
https://bugs.webkit.org/show_bug.cgi?id=127706
Reviewed by David Kilzer.
Instead of adding ENABLE() macros to generated Objective-C DOM
headers, which might become Public or Private headers, elide generated
code for disabled features.
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateInterface): Passed $defines to GenerateHeader.
(ConditionalIsEnabled): Checked if the given conditional is found in
$defines. Handled conditionals with '&' and '|'.
(GenerateHeader): Rather than calling GenerateConditionalString to
generate an "#if ENABLE(...)", called ConditionalIsEnabled() to see
whether we should generate code for the given constant, attribute, or
function.
2014-01-27 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Remove restriction of negative values for inset parameters
https://bugs.webkit.org/show_bug.cgi?id=127704
Reviewed by Darin Adler.
The latest version of CSS Shapes (http://www.w3.org/TR/css-shapes/) specification
doesn't contain any restriction of using negative values for the inset sizing.
I removed the restriction from the code and added testing for them.
Existing tests have been extended with the new cases.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBasicShapeInset):
2014-01-27 Eric Carlson <eric.carlson@apple.com>
[iOS] preload=none prevents play()
https://bugs.webkit.org/show_bug.cgi?id=127702
Reviewed by Jer Noble.
No new tests, covered by existing tests.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::potentiallyPlaying): Cleanup logic to make it simpler to understand,
fix logic error introduced in r161973
(WebCore::HTMLMediaElement::updatePlayState): Conditionalize some iOS-only code on whether or not
we are using the plug-in proxy.
2014-01-27 Brady Eidson <beidson@apple.com>
IDB: LevelDB backing store shouldn't know about IDBCursor or IDBCallbacks
https://bugs.webkit.org/show_bug.cgi?id=127708
Reviewed by Tim Horton.
Move that knowledge to the IDBCursorBackendOperations inside the callback.
* Modules/indexeddb/IDBCursorBackendOperations.cpp:
(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendOperations.h:
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::cursorAdvance):
(WebCore::IDBServerConnectionLevelDB::cursorIterate):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2014-01-27 Brady Eidson <beidson@apple.com>
IDB: Remove unused concept of "cursor prefetch"
https://bugs.webkit.org/show_bug.cgi?id=127700
Reviewed by Tim Horton.
* Modules/indexeddb/IDBCursorBackend.cpp:
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBCursorBackendOperations.cpp:
* Modules/indexeddb/IDBCursorBackendOperations.h:
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2014-01-27 Brady Eidson <beidson@apple.com>
IDB: Refactor out the last of the operation callbacks that are called by the LevelDB backing store
https://bugs.webkit.org/show_bug.cgi?id=127592
Reviewed by Tim Horton.
For each of the 3 remaining operations where the backing store calls callbacks directly,
factor out the callbacks to the operation itself.
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
* Modules/indexeddb/IDBTransactionBackendOperations.h:
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::count):
(WebCore::IDBServerConnectionLevelDB::deleteRange):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2014-01-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162755.
http://trac.webkit.org/changeset/162755
https://bugs.webkit.org/show_bug.cgi?id=127696
not quite right, breaks subframe scrolling in some cases
(Requested by thorton on #webkit).
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::removeDestroyedNodes):
* page/scrolling/ScrollingTree.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
2014-01-27 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] inset() function with multiple spaces on element style
https://bugs.webkit.org/show_bug.cgi?id=127617
Reviewed by Dirk Schulze.
When only a subset of parameters were defined for an inset shape, the built
inset string contained some extra spaces. This patch fixes the behavior and
adds tests for the case. I also removed the string allocation optimization from
buildInsetString, since it's not worthwhile to always allocate as many memory
as needed for a fully defined inset.
I added the new test cases to the shapes parser code test.
* css/CSSBasicShapes.cpp:
(WebCore::buildInsetString):
2014-01-27 Antti Koivisto <antti@apple.com>
* WebCore.exp.in: Add export needed for iOS.
2014-01-27 Antti Koivisto <antti@apple.com>
REGRESSION(r133214): Don't invalidate style when adding classes that don't match rules
https://bugs.webkit.org/show_bug.cgi?id=126177
Reviewed by Anders Carlsson.
Spotted by Elliott Sprehn in Chromium.
* dom/Element.cpp:
(WebCore::checkSelectorForClassChange):
Remove unnecessary templating.
(WebCore::Element::classAttributeChanged):
Fix logic error with 'continue'.
2014-01-27 Brendan Long <b.long@cablelabs.com>
[GStreamer] Lockup when playing Icecast radio
https://bugs.webkit.org/show_bug.cgi?id=127452
Reviewed by Philippe Normand.
No new tests. This bug can only be demonstrated with an Icecast stream, and it's
not clear how to do that in our testing framework.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient::handleResponseReceived): Wait until we unlock to send notifications.
2014-01-27 Jessie Berlin <jberlin@apple.com>
Build fix after r162838.
* page/FrameView.cpp:
Remove an unused constant.
2014-01-27 Antti Koivisto <antti@apple.com>
Remove repaint throttling
https://bugs.webkit.org/show_bug.cgi?id=127681
Reviewed by Sam Weinig.
Nowadays we throttle layer flushes. This code is unnecessary.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* dom/Element.cpp:
(WebCore::Element::classAttributeChanged):
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::insertDictatedText):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkCompleted):
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTextInputEvent):
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::flushCompositingStateForThisFrame):
(WebCore::FrameView::layout):
(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
* page/FrameView.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::setSelection):
2014-01-24 Eric Carlson <eric.carlson@apple.com>
Merge Chromium TextTrack cleanups
https://bugs.webkit.org/show_bug.cgi?id=127483
Reviewed by Darin Adler.
Merge some TextTrack cleanups:
https://chromium.googlesource.com/chromium/blink/+/b571b9fbc6e62e05aa77a402cf8f447e681b8ee3
https://chromium.googlesource.com/chromium/blink/+/6b1940151258150ea01bcf21ebfd958e2af247f4
https://chromium.googlesource.com/chromium/blink/+/397c2a2d9416f5c0d79bca22d6979f174eefcce2
https://chromium.googlesource.com/chromium/blink/+/f42ad93e25c6310b2b0327ab7ce5d82d3c4a6c1b
https://chromium.googlesource.com/chromium/blink/+/d55b52b53b7da05bba5fe378a4278250b9347430
https://chromium.googlesource.com/chromium/blink/+/cac766ecaaac477a08879f0b3157d0327cc75d96
https://chromium.googlesource.com/chromium/blink/+/6197ce278696cdd52fc2ad81893f369492468ca0
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::loadTimerFired): Remove the LoadableTextTrack* parameter, it isn't used.
(WebCore::HTMLTrackElement::didCompleteLoad): Ditto.
* html/HTMLTrackElement.h: didCompleteLoad doesn't need to be virtual.
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::loadTimerFired): Pass a reference, not a pointer.
(WebCore::LoadableTextTrack::cueLoadingStarted): Removed, it wasn't used.
(WebCore::LoadableTextTrack::cueLoadingCompleted): Pass a reference, not a pointer.
* html/track/LoadableTextTrack.h: Delete LoadableTextTrackClient, it is no longer used.
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::TextTrackLoader): Take a TextTrackLoaderClient reference.
(WebCore::TextTrackLoader::~TextTrackLoader): Rename m_cachedCueData m_resource.
(WebCore::TextTrackLoader::cueLoadTimerFired): m_client is a reference.
(WebCore::TextTrackLoader::cancelLoad): m_cachedCueData -> m_resource.
(WebCore::TextTrackLoader::processNewCueData): Ditto.
(WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource): Ditto.
(WebCore::TextTrackLoader::notifyFinished): Ditto.
(WebCore::TextTrackLoader::load): shouldLoadCues was removed from the client interface because
the only implementation always returned true.
(WebCore::TextTrackLoader::newRegionsParsed): m_client is a reference
* loader/TextTrackLoader.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest): Remove an outdated comment.
2014-01-27 Chris Fleizach <cfleizach@apple.com>
AX: Disable accessibility after every test run
https://bugs.webkit.org/show_bug.cgi?id=127439
Reviewed by Csaba Osztrogonác.
Speculative fix for EFL build. Don't process these notifications unless accessibility is enabled.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::prepareForLoadStart):
2014-01-27 Csaba Osztrogonác <ossy@webkit.org>
Buildfix for !ENABLE(COMPARE_AND_SWAP) platforms after r162774
https://bugs.webkit.org/show_bug.cgi?id=127678
Reviewed by Zoltan Herczeg.
* platform/text/TextBreakIterator.cpp:
(WebCore::compareAndSwapNonSharedCharacterBreakIterator):
Use std::mutex instead of Mutex and std::lock_guard instead of MutexLocker.
2014-01-26 Tim Horton <timothy_horton@apple.com>
Fix the iOS build (failed to correctly revert some broken changes in the last patch).
* platform/graphics/cg/BitmapImageCG.cpp:
2014-01-26 Tim Horton <timothy_horton@apple.com>
Start cleaning up iOS upstreaming #ifs in platform/graphics
https://bugs.webkit.org/show_bug.cgi?id=127641
Reviewed by Sam Weinig.
* platform/graphics/BitmapImage.h:
* platform/graphics/mac/ColorMac.h:
Use USE(APPKIT) instead of PLATFORM(MAC) && !PLATFORM(IOS) for NSImage/getNSImage().
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
(WebCore::AVTrackPrivateAVFObjCImpl::label):
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
(WebCore::InbandTextTrackPrivateLegacyAVFObjC::label):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
Remove some code that was only used on OS X on Lion or below.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
ToT WebKit doesn't build on Lion or earlier anymore, so this code can always run.
* platform/graphics/cg/FloatPointCG.cpp:
* platform/graphics/cg/FloatRectCG.cpp:
* platform/graphics/cg/FloatSizeCG.cpp:
* platform/graphics/cg/GradientCG.cpp:
* platform/graphics/cg/ImageBufferCG.cpp:
* platform/graphics/cg/ImageCG.cpp:
* platform/graphics/cg/IntPointCG.cpp:
* platform/graphics/cg/IntRectCG.cpp:
* platform/graphics/cg/PathCG.cpp:
* platform/graphics/cg/PatternCG.cpp:
* platform/graphics/mac/FontCustomPlatformData.cpp:
Use CoreGraphics/CoreGraphics.h instead of ApplicationServices/ApplicationServices.h
even on Mac, so we can share the include.
* platform/graphics/cg/IntSizeCG.cpp:
Remove a random comment of a style we don't tend to use in WebKit,
and from a file not large enough to need it.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::setFont):
Remove some more always-true #ifs.
* platform/graphics/mac/WebLayer.mm:
Move a #if'd include out to its own block as per the style guide.
2014-01-26 David Hyatt <hyatt@apple.com>
[New Multicolumn] Make sure the progression axis and direction are propagated to the new columns.
https://bugs.webkit.org/show_bug.cgi?id=127670
This patch makes sure that the progression axis and direction style properties
are properly propagated from the style to the multi-column flow thread. Virtualizing
and renaming updateColumnInfoFromStyle to updateColumnProgressionFromStyle lets us
share code between the old multi-column code and the new.
Reviewed by Sam Weinig.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateColumnProgressionFromStyle):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
(WebCore::RenderBlockFlow::updateColumnProgressionFromStyle):
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnFlowThread.h:
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
2014-01-26 David Hyatt <hyatt@apple.com>
[New Multicolumn] Change the axis property to be a boolean like other isInline checks
https://bugs.webkit.org/show_bug.cgi?id=127661
Reviewed by Simon Fraser.
* rendering/ColumnInfo.h:
(WebCore::ColumnInfo::ColumnInfo):
(WebCore::ColumnInfo::progressionIsInline):
(WebCore::ColumnInfo::setProgressionIsInline):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumnRules):
(WebCore::RenderBlock::initialBlockOffsetForPainting):
(WebCore::RenderBlock::blockDeltaForPaintingNextColumn):
(WebCore::RenderBlock::setComputedColumnCountAndWidth):
(WebCore::RenderBlock::updateColumnInfoFromStyle):
(WebCore::RenderBlock::columnRectAt):
(WebCore::RenderBlock::adjustPointToColumnContents):
(WebCore::RenderBlock::adjustRectForColumns):
(WebCore::RenderBlock::adjustForColumns):
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::columnNumberForOffset):
2014-01-26 Benjamin Poulain <benjamin@webkit.org>
Make DOMStringMap a typedef of DatasetDOMStringMap
https://bugs.webkit.org/show_bug.cgi?id=127658
Reviewed by Sam Weinig.
The only concrete implementation of DOMStringMap is DatasetDOMStringMap.
The abstract interface for a single definition is adding complexity for no gain.
This patch removes DOMStringMap and simply keeps the name through a typedef.
I used a typedef instead of just renaming DatasetDOMStringMap because I think
having both name has value. DatasetDOMStringMap is a better description of what
the implementation does. DOMStringMap is the public name and the classname is
the same as the JavaScript type by convention.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/DOMStringMap.cpp: Removed.
* dom/DOMStringMap.h:
* dom/DatasetDOMStringMap.h:
* dom/Element.cpp:
(WebCore::Element::dataset):
* dom/Element.h:
2014-01-26 David Kilzer <ddkilzer@apple.com>
Part 2: Assertion failure in WebCore::PseudoElement::didRecalcStyle()
<https://bugs.webkit.org/show_bug.cgi?id=126761>
<rdar://problem/15793540>
Reviewed by Simon Fraser.
* bindings/objc/DOM.mm:
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeImage):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeImage):
(WebCore::getCachedImage):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::image):
- More places where toRenderImage() should be used instead of
toImage().
- Fixed last two places where static_cast<WebCore::RenderImage*>
was being used instead of toRenderImage().
2014-01-26 Chris Fleizach <cfleizach@apple.com>
AX: Disable accessibility after every test run
https://bugs.webkit.org/show_bug.cgi?id=127439
Reviewed by Alexey Proskuryakov.
If accessibility is disabled, we may still need to return the existing
AXObjectCache, so that objects can be cleaned up appropriately.
A such we have to be prepared to handle a nullptr return value in more cases.
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::disableAccessibility):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::childrenChanged):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
* dom/Document.cpp:
(WebCore::Document::existingAXObjectCache):
2014-01-26 Anders Carlsson <andersca@apple.com>
Move history item visit count handling to WebKit
https://bugs.webkit.org/show_bug.cgi?id=127659
Reviewed by Dan Bernstein.
Remove all members dealing with visit handling - they're going back to WebKit.
* WebCore.exp.in:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::reset):
(WebCore::HistoryItem::decodeBackForwardTree):
* history/HistoryItem.h:
(WebCore::HistoryItem::create):
2014-01-26 Anders Carlsson <andersca@apple.com>
Move lastVisitWasHTTPNonGet out to WebHistoryItem
https://bugs.webkit.org/show_bug.cgi?id=127657
Reviewed by Dan Bernstein.
Remove m_lastVisitWasHTTPNonGet, it's only used by WebKit.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::reset):
* history/HistoryItem.h:
2014-01-26 Zalan Bujtas <zalan@apple.com>
Subpixel Layout: Align <input type="button", submit etc (PushButtonPart) top and bottom paddings with <button>
https://bugs.webkit.org/show_bug.cgi?id=127640
Reviewed by Simon Fraser.
<button> sets padding-top: 2px and padding-bottom: 3px as default values (html.css),
while <input type="button" (submit, etc) has the hardcoded values of 0, 0 and we center the text using the available space.
This results in different baseline text position in normal cases. This adjustment puts the <input type='button'
rendering back to the pre-subpixel layout state.
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::controlPadding):
2014-01-26 Benjamin Poulain <bpoulain@apple.com>
Improve the bindings of NodeList's name accessor
https://bugs.webkit.org/show_bug.cgi?id=127358
Reviewed by Geoffrey Garen.
When accessing an item of NodeList by name, the default bindings was
going through the list of node twice:
-First, getOwnProperty calls canGetItemsForName() to find if a property exists for
the given name. This in turn used NodeList::namedItem() which is a slow operation.
-Then, the value itself was queried through nameGetter(), calling NodeList::namedItem()
a second time to find the same value.
This patch kills the default name getter in favor of a getOwnPropertySlotDelegate() returning
the value directly on the PropertySlot.
Ad Hoc testing show about 15% speed up for simple cases.
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeList::getOwnPropertySlotDelegate):
* dom/NodeList.idl:
2014-01-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move InspectorDebuggerAgent into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=127629
Rubber-stamped by Sam Weinig.
Test: inspector-protocol/debugger/pause-on-assert.html
* CMakeLists.txt:
* ForwardingHeaders/inspector/agents/InspectorDebuggerAgent.h: Added.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
- Remove InspectorDebuggerAgent.
- Add WebDebuggerAgent (shared between Page and Worker).
* inspector/WebDebuggerAgent.h: Added.
(WebCore::WebDebuggerAgent::~WebDebuggerAgent):
* inspector/WebDebuggerAgent.cpp: Added.
(WebCore::WebDebuggerAgent::WebDebuggerAgent):
(WebCore::WebDebuggerAgent::enable):
(WebCore::WebDebuggerAgent::disable):
Shared code for Page and Worker debugger agents.
Instrumenting agents is a concept in WebCore only,
and the Debugger agent is only in the instrumenting
agents list when it is enabled and removed when disabled.
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::inspectorDebuggerAgent):
(WebCore::InstrumentingAgents::setInspectorDebuggerAgent):
* inspector/InspectorDOMDebuggerAgent.cpp:
* inspector/InspectorDOMDebuggerAgent.h:
Update namespace for debugger agent.
* inspector/InspectorInstrumentation.cpp:
(WebCore::isConsoleAssertMessage):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
DebuggerAgent in JavaScriptCore does not yet know about console
types. So temporarily handle it here. We need to give JavaScriptCore
some concept of Console messages and types.
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::PageDebuggerAgent):
(WebCore::PageDebuggerAgent::enable):
(WebCore::PageDebuggerAgent::disable):
(WebCore::PageDebuggerAgent::sourceMapURLForScript):
(WebCore::PageDebuggerAgent::injectedScriptForEval):
* inspector/PageDebuggerAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::injectedScriptForEval):
* inspector/WorkerDebuggerAgent.h:
Modernize the Page and Worker debugger agents.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
New constructors for the debugger agents.
2014-01-25 Timothy Hatcher <timothy@apple.com>
Remove dead code from the JSC profiler.
https://bugs.webkit.org/show_bug.cgi?id=127643
Reviewed by Mark Lam.
Passes existing tests in fast/profiler.
* bindings/js/ScriptProfile.cpp:
(WebCore::buildInspectorObjectFor): Remove visible.
* inspector/ScriptProfileNode.idl: Ditto.
* inspector/protocol/Profiler.json: Ditto.
2014-01-25 Sam Weinig <sam@webkit.org>
Remove unused support for DRAGGABLE_REGION
https://bugs.webkit.org/show_bug.cgi?id=127642
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* WebCore.exp.in:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
* page/Chrome.cpp:
* page/ChromeClient.h:
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::paintContents):
* page/FrameView.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addAnnotatedRegions):
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::setHasHorizontalScrollbar):
(WebCore::RenderLayer::setHasVerticalScrollbar):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::setHasVerticalScrollbar):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::addAnnotatedRegions):
* rendering/RenderObject.h:
(WebCore::AnnotatedRegionValue::operator==):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-01-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Clean up SVGPatternElement::collectPatternAttributes
https://bugs.webkit.org/show_bug.cgi?id=127612
Reviewed by Andreas Kling.
This patch refactors SVGPatternElement::collectPatternAttributes() by extracting
the setPatternAttributes logic into a new function. This patch also changes the
while loop to be easier to understand and similar to collectGradientAttributes.
* svg/SVGPatternElement.cpp:
(WebCore::setPatternAttributes):
(WebCore::SVGPatternElement::collectPatternAttributes):
2014-01-25 Zalan Bujtas <zalan@apple.com>
Subpixel layout: RenderInline is not centered when child RenderTextControl's innerTextRenderer needs bias centering.
https://bugs.webkit.org/show_bug.cgi?id=125659
Reviewed by Andreas Kling
layoutMod(logicalHeightDiff, 2) fails to bias round when subpixel layout is enabled. It sets
the denominator value to 2, which returns incorrect modulo result.
(subpixel off: 3px % 2 = 1 vs subpixel on: (3px * 64) -> 192 % 2 = 0)
Covered by existing tests.
* platform/LayoutUnit.h:
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::centerContainerIfNeeded):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::centerRenderer):
(WebCore::RenderTextControlSingleLine::layout):
* rendering/RenderTextControlSingleLine.h:
2014-01-25 Sam Weinig <sam@webkit.org>
Remove more unnecessary #if PLATFORM(IOS)s in ApplicationCacheStorage.cpp
https://bugs.webkit.org/show_bug.cgi?id=127635
Reviewed by Antti Koivisto.
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::executeSQLCommand):
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
(WebCore::ApplicationCacheStorage::executeStatement):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):
(WebCore::ApplicationCacheStorage::loadCache):
2014-01-25 Sam Weinig <sam@webkit.org>
Remove some iOS #ifdefs by adding SQLiteDatabaseTracker to all the builds
https://bugs.webkit.org/show_bug.cgi?id=127632
Reviewed by Darin Adler.
Move the SQLiteDatabaseTracker and client from platform/sql/ios to platform/sql,
as there is nothing iOS specific about it. Then, un-#ifdef all its uses. For
ports that don't setup a client, this has no change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/DatabaseBackendBase.cpp:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* loader/appcache/ApplicationCacheStorage.cpp:
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::sendWillRevealEdgeEventsIfNeeded):
* platform/sql/SQLiteDatabaseTracker.cpp: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.cpp.
* platform/sql/SQLiteDatabaseTracker.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.h.
* platform/sql/SQLiteDatabaseTrackerClient.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTrackerClient.h.
* platform/sql/ios: Removed.
* platform/sql/ios/SQLiteDatabaseTracker.cpp: Removed.
* platform/sql/ios/SQLiteDatabaseTracker.h: Removed.
* platform/sql/ios/SQLiteDatabaseTrackerClient.h: Removed.
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::openDatabase):
(WebCore::StorageAreaSync::sync):
* storage/StorageTracker.cpp:
2014-01-25 Anders Carlsson <andersca@apple.com>
Remove an unused FrameLoaderClient function
https://bugs.webkit.org/show_bug.cgi?id=127628
Reviewed by Andreas Kling.
All implementations of FrameLoaderClient::shouldStopLoadingForHistoryItem return true and this function
was only used by Chromium so we can get rid of it.
* loader/EmptyClients.h:
* loader/FrameLoaderClient.h:
* loader/HistoryController.cpp:
(WebCore::HistoryController::shouldStopLoadingForHistoryItem):
2014-01-25 Darin Adler <darin@apple.com>
Call deprecatedCharacters instead of characters at more call sites
https://bugs.webkit.org/show_bug.cgi?id=127631
Reviewed by Sam Weinig.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
* editing/CompositeEditCommand.cpp:
(WebCore::containsOnlyWhitespace):
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText):
* editing/VisibleUnits.cpp:
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::stripLeadingAndTrailingHTMLSpaces):
(WebCore::parseHTMLNonNegativeInteger):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
* inspector/InspectorStyleTextEditor.cpp:
(WebCore::InspectorStyleTextEditor::insertProperty):
(WebCore::InspectorStyleTextEditor::internalReplaceProperty):
* platform/Length.cpp:
(WebCore::newCoordsArray):
* platform/LinkHash.cpp:
(WebCore::visitedLinkHash):
* platform/graphics/Color.cpp:
(WebCore::Color::parseHexColor):
(WebCore::Color::Color):
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
* platform/text/TextEncodingRegistry.cpp:
(WebCore::atomicCanonicalTextEncodingName):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::width):
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::registerLigaturesInGlyphCache):
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunId::evaluate):
Use the new name.
2014-01-25 Darin Adler <darin@apple.com>
Get rid of ICU_UNICODE and WCHAR_UNICODE remnants
https://bugs.webkit.org/show_bug.cgi?id=127623
Reviewed by Anders Carlsson.
* CMakeLists.txt: Removed SmartReplaceICU.cpp.
* GNUmakefile.list.am: Ditto.
* PlatformEfl.cmake: Ditto.
* PlatformGTK.cmake: Ditto.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::modifyMovingRight): Ditto.
(WebCore::FrameSelection::modifyMovingLeft): Ditto.
* editing/SmartReplace.cpp: Moved code here from SmartReplaceICU,
since we always support ICU now. Added some FIXME comments about
bugs and mistakes I spotted in the code as I was moving it.
* editing/SmartReplaceICU.cpp: Removed.
* editing/TextIterator.cpp: Removed unneeded checks.
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData): Ditto.
(WebCore::ThreadGlobalData::destroy): Ditto.
* platform/ThreadGlobalData.h: Ditto.
* platform/URL.cpp:
(WebCore::appendEncodedHostname): Ditto.
* platform/graphics/SurrogatePairAwareTextIterator.cpp: Ditto.
Also removed unneeded "using namespace".
* platform/text/TextCodecICU.cpp: Ditto.
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode): Ditto.
* platform/text/TextEncodingRegistry.cpp:
(WebCore::extendTextCodecMaps): Ditto.
2014-01-25 Darin Adler <darin@apple.com>
Get rid of UnicodeRange.h/cpp, using ICU instead
https://bugs.webkit.org/show_bug.cgi?id=127622
Reviewed by Anders Carlsson.
* CMakeLists.txt: Remove UnicodeRange.h/cpp.
* GNUmakefile.list.am: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::systemFallbackForCharacters): To check if a character has
multiple code pages, use UCHAR_UNIFIED_IDEOGRAPH instead of cRangeSetCJK.
* platform/graphics/wince/FontCacheWinCE.cpp:
(WebCore::FontCache::systemFallbackForCharacters): Ditto. Also, to check if a
character is in the Thai block, use UBLOCK_THAI.
* platform/graphics/wince/FontPlatformData.cpp: Removed include of UnicodeRange.h.
* platform/text/UnicodeRange.cpp: Removed.
* platform/text/UnicodeRange.h: Removed.
* rendering/svg/SVGTextLayoutEngineBaseline.cpp:
(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle): To figure
out if a character is full width, use UCHAR_EAST_ASIAN_WIDTH, instead of hard-coding
"not Latin or Arabic" as the rule.
2014-01-25 Tim Horton <timothy_horton@apple.com>
Remove an unnecessary platform #if in BitmapImage(CG)::checkForSolidColor()
https://bugs.webkit.org/show_bug.cgi?id=127610
Reviewed by Simon Fraser.
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::checkForSolidColor):
Over time, the two sides of this #if !PLATFORM(IOS) converged. Remove the #if
and merge the code. We explicitly use kCGBitmapByteOrder32Big to be correct everywhere.
2014-01-25 Tim Horton <timothy_horton@apple.com>
[cg] Look in the PNG dictionary for image duration information
https://bugs.webkit.org/show_bug.cgi?id=127611
<rdar://problem/15408643>
Reviewed by Simon Fraser.
We should look in the PNG properties dictionary for frame duration and loop count data.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::repetitionCount):
Mush repetitionCount a bit more to make it easier to read (early returns, etc.)
Also, look in the PNG properties dictionary for a loop count.
(WebCore::ImageSource::frameDurationAtIndex):
Look in the PNG properties dictionary for delay time.
Get rid of WebCoreCGImagePropertyGIFUnclampedDelayTime; it hasn't
been needed since Snow Leopard.
2014-01-25 Anders Carlsson <andersca@apple.com>
Remove atomicIncrement/atomicDecrement
https://bugs.webkit.org/show_bug.cgi?id=127625
Reviewed by Andreas Kling.
Replace atomicIncrement/atomicDecrement with std::atomic.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::incrementActiveSourceCount):
(WebCore::AudioContext::decrementActiveSourceCount):
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::~AudioNode):
(WebCore::AudioNode::ref):
(WebCore::AudioNode::finishDeref):
* Modules/webaudio/AudioNode.h:
* Modules/webdatabase/OriginLock.h:
2014-01-25 Alex Christensen <achristensen@webkit.org>
Unreviewed build fix for WinCairo.
* platform/network/curl/CurlDownload.h:
Included wtf/Threading.h for ThreadIdentifier definition.
2014-01-25 Anders Carlsson <andersca@apple.com>
Modernize HashTable threading code
https://bugs.webkit.org/show_bug.cgi?id=127621
Reviewed by Darin Adler.
Explicitly include headers that used to be brought in by HashTable.h
* platform/DragData.h:
Change a Windows-specific typedef to avoid having to include WindDef.h from a header.
* platform/audio/AudioSession.h:
* platform/network/cf/SocketStreamHandle.h:
2014-01-25 Zan Dobersek <zdobersek@igalia.com>
Move CSSGroupingRule, CSSStyleSheet, ElementRuleCollector to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127575
Reviewed by Andreas Kling.
Use std::unique_ptr and std::make_unique in place of OwnPtr and adoptPtr
in the CSSGroupingRule, CSSStyleSheet and ElementRuleCollector classes.
* css/CSSFunctionValue.cpp: Remove the unnecessary PassOwnPtr header inclusion.
* css/CSSGroupingRule.cpp:
(WebCore::CSSGroupingRule::cssRules):
* css/CSSGroupingRule.h:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::cssRules):
* css/CSSStyleSheet.h:
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::addMatchedRule):
* css/ElementRuleCollector.h:
2014-01-25 Zan Dobersek <zdobersek@igalia.com>
Move MediaQueryMatcher, SelectorFilter to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127574
Reviewed by Andreas Kling.
Replace the use of OwnPtr and adoptPtr with std::unique_ptr and std::make_unique
in the MediaQueryMatcher and SelectorFilter classes.
* css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::prepareEvaluator):
(WebCore::MediaQueryMatcher::evaluate):
(WebCore::MediaQueryMatcher::addListener):
(WebCore::MediaQueryMatcher::styleResolverChanged):
* css/MediaQueryMatcher.h:
* css/SelectorFilter.cpp:
(WebCore::SelectorFilter::popParentStackFrame):
(WebCore::SelectorFilter::setupParentStack):
* css/SelectorFilter.h:
2014-01-25 Zan Dobersek <zdobersek@igalia.com>
Move PropertySetCSSStyleDeclaration, WebKitCSSKeyframesRule to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127572
Reviewed by Andreas Kling.
Switch the PropertySetCSSStyleDeclaration and WebKitCSSKeyframesRule classes from using
OwnPtr and adoptPtr to using std::unique_ptr and std::make_unique.
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
(WebCore::StyleRuleCSSStyleDeclaration::didMutate):
(WebCore::InlineCSSStyleDeclaration::didMutate):
* css/PropertySetCSSStyleDeclaration.h:
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::WebKitCSSKeyframesRule::cssRules):
* css/WebKitCSSKeyframesRule.h:
2014-01-25 Zan Dobersek <zdobersek@igalia.com>
Move StyleProperties, StyleResolver to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127570
Reviewed by Andreas Kling.
Move the StyleProperties and StyleResolver classes from using OwnPtr and adoptPtr
to using std::unique_ptr and std::make_unique.
* css/StyleInvalidationAnalysis.h: Remove the PassOwnPtr.h header inclusion.
* css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::ensureCSSStyleDeclaration):
(WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration):
* css/StyleProperties.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::addViewportDependentMediaQueryResult):
* css/StyleResolver.h:
* css/StyleScopeResolver.h:
2014-01-25 Zan Dobersek <zdobersek@igalia.com>
Move CSSFontFace, CSSFontSelector to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127569
Reviewed by Andreas Kling.
Move the CSSFontFace and CSSFontSelector classes from using OwnPtr, PassOwnPtr and adoptPtr
to using std::unique_ptr, move semantics and std::make_unique.
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::addSource):
* css/CSSFontFace.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::getFontFace):
* css/CSSFontSelector.h:
2014-01-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move InspectorRuntimeAgent into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=127605
Reviewed by Timothy Hatcher.
Covered by existing tests. No change in functionality.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
Remove WebCore InspectorRuntimeAgent.
* ForwardingHeaders/inspector/agents/InspectorRuntimeAgent.h: Added.
Add JavaScriptCore InspectorRuntimeAgent.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/WorkerInspectorController.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
New constructors for the runtime agent.
* inspector/PageRuntimeAgent.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::disable):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::didCreateIsolatedContext):
(WebCore::PageRuntimeAgent::globalVM):
Modernize and implement globalVM.
* inspector/WorkerRuntimeAgent.h:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::injectedScriptForEval):
(WebCore::WorkerRuntimeAgent::globalVM):
Modernize and implement globalVM.
2014-01-25 Diego Pino Garcia <dpino@igalia.com>
[GTK] Add parameters from 'DOM Object Model Core' spec and 'DOM CSS' spec that can be NULL
https://bugs.webkit.org/show_bug.cgi?id=117536
Reviewed by Xan Lopez.
* bindings/scripts/CodeGeneratorGObject.pm:
(ParamCanBeNull): Add new pairs (function, parameter) that can be NULL
2014-01-25 Anders Carlsson <andersca@apple.com>
Get rid of BackForwardController::isActive()
https://bugs.webkit.org/show_bug.cgi?id=127604
Reviewed by Sam Weinig.
BackForwardController::isActive() used to mean "my page maintains a back forward
list that has zero capacity". Move that logic into WebKit instead, namely the
WebFrameLoaderClient::canCachePage function so we can simplify WebCore.
* history/BackForwardClient.h:
* history/BackForwardController.cpp:
* history/BackForwardController.h:
* history/BackForwardList.h:
* history/PageCache.cpp:
(WebCore::logCanCachePageDecision):
(WebCore::PageCache::canCache):
2014-01-25 Antti Koivisto <antti@apple.com>
REGRESSION(r162744): wsj.com paints white
https://bugs.webkit.org/show_bug.cgi?id=127619
Reviewed by Sam Weinig.
Test: fast/css/stylesheet-layout-with-pending-paint.html
* dom/Document.cpp:
(WebCore::Document::styleResolverChanged):
Ensure we switch out from IgnoreLayoutWithPendingSheets state after stylesheet loads complete.
2014-01-24 Dan Bernstein <mitz@apple.com>
Reverted r162760. It broke more things.
* WebCore.exp.in:
2014-01-24 Dan Bernstein <mitz@apple.com>
Try to fix some 32-bit builds.
* WebCore.exp.in:
2014-01-24 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL] Replace usage of DEFINE_STATIC_LOCAL with NeverDestroyed in WebCore/platform/efl
https://bugs.webkit.org/show_bug.cgi?id=127607
Reviewed by Anders Carlsson.
* platform/efl/EflKeyboardUtilities.cpp:
(WebCore::keyMap): Use NeverDestroyed instead of DEFINE_STATIC_LOCAL.
(WebCore::windowsKeyMap): Ditto.
(WebCore::keyDownCommandsMap): Ditto.
(WebCore::keyPressCommandsMap): Ditto.
* platform/efl/GamepadsEfl.cpp:
(WebCore::sampleGamepads): Ditto.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::systemFont): Do not use unnecessary DEFINE_STATIC_LOCAL.
2014-01-23 Joseph Pecoraro <pecoraro@apple.com>
Move JavaScriptCallFrame and ScriptDebugServer into JavaScriptCore for inspector
https://bugs.webkit.org/show_bug.cgi?id=127543
Reviewed by Geoffrey Garen.
Covered by existing tests.
* ForwardingHeaders/inspector/ScriptDebugServer.h: Added.
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* inspector/JavaScriptCallFrame.idl: Removed.
Update builds now that ScriptDebugServer moved to JavaScriptCore.
* bindings/js/PageScriptDebugServer.h:
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):
* bindings/js/WorkerScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):
Handle ScriptDebugServer functionality depending on WebCore knowledge.
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::breakpointActionSound):
Handle ScriptDebugServer functionality that depended on WebCore knowledge.
This will eventually be written in a non-WebCore specific way.
* inspector/InspectorRuntimeAgent.cpp:
* inspector/InspectorRuntimeAgent.h:
Update ScriptDebugServer type now that it is in namespace Inspector.
* workers/WorkerGlobalScope.h:
Make addConsoleMessage public again so the inspector can call it.
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/PageDebuggerAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::breakpointActionLog):
* inspector/WorkerDebuggerAgent.h:
Let each of these handle console logs in their own way. Both of these
eventually go through the PageConsole and log through the InspectorConsoleAgent
and ChromeClient.
2014-01-24 Brent Fulgham <bfulgham@apple.com>
Improve latching behavior for wheel events
https://bugs.webkit.org/show_bug.cgi?id=127386
<rdar://problem/12176858>
Reviewed by Simon Fraser.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree): Initialize new values used for tracking
scroll latching state.
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Check for an existing
latched node and stay in fast scrolling mode if possible.
(WebCore::ScrollingTree::removeDestroyedNodes): Clear latched node if it's being removed.
(WebCore::ScrollingTree::latchedNode): Added
(WebCore::ScrollingTree::setLatchedNode): Added
(WebCore::ScrollingTree::clearLatchedNode): Added
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::hasLatchedNode): Added
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::shouldConsiderLatching): Added
(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent): Determine latching state
based on wheel event state and position of mouse pointer in the document.
2014-01-24 Anders Carlsson <andersca@apple.com>
Another attempted build fix.
Use wildcards in the the std::duration symbol.
* WebCore.exp.in:
2014-01-24 Simon Fraser <simon.fraser@apple.com>
Start using the RemoteScrollingCoordinatorProxy on iOS
https://bugs.webkit.org/show_bug.cgi?id=127598
Reviewed by Tim Horton.
Add a scrollPositionChangedViaDelegatedScrolling() function to
ScrollingTree, allowing the ScrollingTree to be informed about
external sources of scrolling.
Also add a convenience getter for nodes, nodeForID().
* WebCore.exp.in:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::nodeForID):
* page/scrolling/ScrollingTree.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
To avoid assertions on iOS, bail from iOS WK1 fixed position code if
we have a ScrollingCoordinator.
(WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
Ditto.
2014-01-24 Simon Fraser <simon.fraser@apple.com>
Add typesafe casts for ScrollingTreeNode classes
https://bugs.webkit.org/show_bug.cgi?id=127597
Reviewed by Tim Horton.
Add a ScrollingNodeType member to ScrollingTreeNodes and
use it for type-safe casting.
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::ScrollingTreeNode):
* page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::nodeType):
(WebCore::ScrollingTreeNode::scrollingNodeID):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
2014-01-24 Anders Carlsson <andersca@apple.com>
Remove back/forward list related functions from Page
https://bugs.webkit.org/show_bug.cgi?id=127596
Reviewed by Andreas Kling.
* WebCore.exp.in:
* history/BackForwardController.cpp:
(WebCore::BackForwardController::canGoBackOrForward):
(WebCore::BackForwardController::goBackOrForward):
(WebCore::BackForwardController::goBack):
(WebCore::BackForwardController::goForward):
(WebCore::BackForwardController::count):
* page/EventHandler.cpp:
(WebCore::EventHandler::defaultBackspaceEventHandler):
* page/Page.cpp:
* page/Page.h:
2014-01-24 Antti Koivisto <antti@apple.com>
Update style asynchronously after style sheet load
https://bugs.webkit.org/show_bug.cgi?id=127563
Reviewed by Andreas Kling.
Since we don't attach synchronously we don't need to recalc style synchronously either.
* dom/Document.cpp:
(WebCore::Document::didRemoveAllPendingStylesheet):
2014-01-24 Zalan Bujtas <zalan@apple.com>
Subpixel layout: Default style of input type=checkbox/radio (0.5ex) adds 1px extra margin on both left and right.
https://bugs.webkit.org/show_bug.cgi?id=125728
Reviewed by Simon Fraser.
Using the 0.5ex value to set checkbox/radio left and right margins is a long-standing
(khtml) behavior. While it indicates dynamic behavior, in order to get the margins changed,
the widget's font size needs to be set, which is rather rare for such input types.
It also results in odd layout, where the checkbox's indentation may seem to change randomly.
'<input style="font-size: 30px;" type="checkbox">foo' changes neither the checkbox
nor the text size, but it indents the line by about 15px.
Other browsers (FF, Opera with Presto) disagree and they set static margins values.
2px is the current default computed value.
* css/html.css:
(input[type="radio"], input[type="checkbox"]):
2014-01-24 Oliver Hunt <oliver@apple.com>
Put functions need to take a base object and a this value, and perform type checks on |this|
https://bugs.webkit.org/show_bug.cgi?id=127594
Reviewed by Geoffrey Garen.
Update bindings generator to emit setters with correct type, and perform
type checks on |this|, instead of the baseObject.
Test: js/dom/dom-as-prototype-assignment-exception.html
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsStr3):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceSupplementalNode):
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjByteAttr):
(WebCore::setJSTestObjOctetAttr):
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::setJSTestObjCustomAttr):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjConditionalAttr4Constructor):
(WebCore::setJSTestObjConditionalAttr5Constructor):
(WebCore::setJSTestObjConditionalAttr6Constructor):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjStrictFloat):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjReplaceableAttribute):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::setJSTestObjAttributeWithReservedEnumType):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
2014-01-24 Oliver Hunt <oliver@apple.com>
Generic JSObject::put should handle static properties in the classinfo hierarchy
https://bugs.webkit.org/show_bug.cgi?id=127523
Reviewed by Geoffrey Garen.
Update the bindings generator to emit the flag indicating the presence
of setters, and remove the many (now unnecessary) put overrides.
Tested with run-jsc-benchmarks and shows neutral performance. A few of the
micro benchmarks actually get a significant performance increase which
is nice.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
We still need a custom call to lookupPut here in order
to get the magic security semantics of the window object.
* bindings/scripts/CodeGeneratorJS.pm:
(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
* bindings/scripts/CodeGeneratorJS.pm:
(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(InstanceOverridesPutImplementation):
(InstanceOverridesPutDeclaration):
(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::put):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
* html/canvas/WebGLRenderingContext.idl:
Remove bogus attribute, as it has never been in the spec and should not
have been added.
2014-01-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162713.
http://trac.webkit.org/changeset/162713
https://bugs.webkit.org/show_bug.cgi?id=127593
broke media/network-no-source-const-shadow (Requested by
thorton on #webkit).
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
* bindings/scripts/CodeGeneratorJS.pm:
(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::put):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::put):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::put):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefs::put):
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
* html/canvas/WebGLRenderingContext.idl:
2014-01-24 Zalan Bujtas <zalan@apple.com>
Replace LayoutUnit() calls to a more descriptive LayoutUnit::fromPixel(int).
https://bugs.webkit.org/show_bug.cgi?id=127580
Reviewed by Simon Fraser.
LayoutUnit(1) statement is ambiguous. While it is intended to set one (CSS) pixel, it
could be interpreted as 1 layout unit (1/64th of a CSS pixel atm).
No change in behavior.
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForRegionHighlight):
* rendering/FloatingObjects.cpp:
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatTypeValue>::heightRemaining):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::collapseMargins):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::mainAxisContentExtent):
(WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
(WebCore::RenderFlexibleBox::alignChildren):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
2014-01-24 Simon Fraser <simon.fraser@apple.com>
Prepare scrolling tree to handle > 1 scrolling node
https://bugs.webkit.org/show_bug.cgi?id=127590
Reviewed by Tim Horton.
Clean up the code path called after the ScrollingTree has scrolled a node,
to prepare for multiple scrolling nodes.
Change "updateMainFrameScrollPosition" terminology to "updateScrollPositionAfterAsyncScroll",
and pass along the ScrollingNodeID that scrolled.
Move updateMainFrameScrollPosition-related code from ScrollingCoordinator to
AsyncScrollingCoordinator, since this sync-up is only necessary when doing
async scrolling.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
* page/scrolling/AsyncScrollingCoordinator.h:
(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::matchesUpdateType):
Package up the data related to a scheduled scroll into a ScheduledScrollUpdate struct,
for easier comparison and cleaner code.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::ScrollingCoordinator):
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/ScrollingTree.h:
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
* page/scrolling/ios/ScrollingTreeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
2014-01-24 Mark Lam <mark.lam@apple.com>
ASSERT(!m_markedSpace.m_currentDelayedReleaseScope) reloading page in inspector.
<https://webkit.org/b/127582>
Reviewed by Mark Hahnenberg.
No new tests.
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::attachDebugger):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::detachDebugger):
- Adding reasons for detaching a globalObject from the debugger.
2014-01-24 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make PaintInfo layout unit aware.
https://bugs.webkit.org/show_bug.cgi?id=127562
Reviewed by Simon Fraser.
Replace PaintInfo's IntRect with LayoutRect to be able to render to
subpixel positions.
No functional changes.
* platform/graphics/LayoutRect.h:
* rendering/PaintInfo.h:
(WebCore::PaintInfo::PaintInfo):
(WebCore::PaintInfo::applyTransform):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderLayer.cpp:
(WebCore::cornerRect):
(WebCore::RenderLayer::scrollCornerRect):
(WebCore::resizerCornerRect):
(WebCore::RenderLayer::scrollCornerAndResizerRect):
(WebCore::RenderLayer::horizontalScrollbarStart):
(WebCore::RenderLayer::drawPlatformResizerImage):
(WebCore::RenderLayer::paintResizer):
(WebCore::RenderLayer::hitTestOverflowControls):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintContents):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintScrollbar):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paintContents):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
* rendering/svg/SVGRenderingContext.h:
2014-01-24 Simon Fraser <simon.fraser@apple.com>
#ifdef out handleWheelEventPhase for iOS
https://bugs.webkit.org/show_bug.cgi?id=127583
Reviewed by Tim Horton.
handleWheelEventPhase() doesn't make any sense for iOS, which
has no wheel events.
* page/scrolling/ScrollingTree.h:
* page/scrolling/ThreadedScrollingTree.cpp:
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/ios/ScrollingTreeIOS.h:
2014-01-24 David Hyatt <hyatt@apple.com>
[New Multicolumn] Don't destroy all the renderers when a multi-column block stops being multi-column (and vice versa)
https://bugs.webkit.org/show_bug.cgi?id=127584
Make the logic for when you need columns and when you don't shared between the
old multi-column code and the new multi-column code. Make sure that the flow thread
and sets get created lazily and destroyed on-demand when whether or not we should
have multiple columns changes.
Reviewed by Beth Dakin.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateLogicalWidthAndColumnWidth):
No longer virtual. The new column code now uses this function too.
(WebCore::RenderBlock::availableLogicalWidth):
Renamed desiredColumnWidth() to computedColumnWidth().
(WebCore::RenderBlock::computeColumnCountAndWidth):
Renamed calcColumnWidth to computeColumnCountAndWidth.
(WebCore::RenderBlock::setComputedColumnCountAndWidth):
Rename setDesiredColumnCountAndWidth to computed.
(WebCore::RenderBlock::computedColumnWidth):
(WebCore::RenderBlock::computedColumnCount):
Renamed desiredColumnWidth/Count to computedColumnWidth/Count and made them virtual.
(WebCore::RenderBlock::updateFirstLetterStyle):
desired -> computed rename.
* rendering/RenderBlock.h:
Renames and made a few functions virtual so that RenderBlockFlow can override.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::RenderBlockFlow):
Don't create the flow thread at construction time any longer.
(WebCore::RenderBlockFlow::createMultiColumnFlowThread):
(WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
The methods to create and destroy flow threads. These work at any time now and will
fix up the render tree accordingly.
(WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
Virtual override that creates/destroys the new multi-column information as needed.
(WebCore::RenderBlockFlow::computedColumnWidth):
(WebCore::RenderBlockFlow::computedColumnCount):
Overrides to return the cached column width and count from the flow thread.
* rendering/RenderBlockFlow.h:
Has overrides of the virtual functions needed to turn multi-column state on/off and
to hand back computed count/width information.
* rendering/RenderMultiColumnFlowThread.cpp:
* rendering/RenderMultiColumnFlowThread.h:
Removed the algorithm to compute column count and width, since this has been combined
with the old multi-column layout code.
* rendering/RenderView.cpp:
(WebCore::RenderView::computeColumnCountAndWidth):
Renamed desired -> computed.
* rendering/RenderView.h:
Renamed desired -> computed.
* style/StyleResolveTree.cpp:
(WebCore::Style::determineChange):
(WebCore::Style::resolveLocal):
(WebCore::Style::resolveTree):
* style/StyleResolveTree.h:
The Settings argument is no longer needed now that we don't destroy and re-create
the renderer for a block flow if it stops being (or becomes) multi-column.
2014-01-24 Anders Carlsson <andersca@apple.com>
Fix 32-bit build.
* WebCore.exp.in:
2014-01-24 Brent Fulgham <bfulgham@apple.com>
[Win] Convert some NMake files to MSBuild project files
https://bugs.webkit.org/show_bug.cgi?id=127579
Reviewed by Tim Horton.
* WebCore.vcxproj/WebCore.make: Removed.
* WebCore.vcxproj/WebCore.proj: Added.
2014-01-24 Joseph Pecoraro <pecoraro@apple.com>
fast/profiler tests ASSERTing after moving recompileAllJSFunctions off a timer
https://bugs.webkit.org/show_bug.cgi?id=127566
Reviewed by Oliver Hunt.
Covered by existing tests.
* testing/Internals.cpp:
(WebCore::Internals::closeDummyInspectorFrontend):
Now that we don't have to fake that this is a page being destroyed to
avoid recompilation. Use the InspectorDestroyed reason.
2014-01-24 Anders Carlsson <andersca@apple.com>
Get rid of monotonicallyIncreasingTimeMS and start using std::chrono instead
https://bugs.webkit.org/show_bug.cgi?id=127571
Reviewed by Antti Koivisto.
WebCore.exp.in:
Update symbols.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::implicitClose):
(WebCore::Document::setParsing):
(WebCore::Document::isLayoutTimerActive):
(WebCore::Document::minimumLayoutDelay):
(WebCore::Document::elapsedTime):
(WebCore::Document::write):
(WebCore::Document::styleResolverChanged):
* dom/Document.h:
Use std::chrono instead of doubles for the times and durations.
* fileapi/FileReader.cpp:
(WebCore::FileReader::FileReader):
(WebCore::FileReader::didReceiveData):
* fileapi/FileReader.h:
Switch over to std::chrono.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::layoutTimerFired):
(WebCore::FrameView::scheduleRelayout):
(WebCore::FrameView::scheduleRelayoutOfSubtree):
Update for Document::elapsedTime() changes.
* page/Settings.cpp:
(WebCore::Settings::setLayoutInterval):
* page/Settings.h:
(WebCore::Settings::layoutInterval):
Change layoutInterval to be std::chrono::milliseconds instead of int.
* platform/Timer.h:
(WebCore::TimerBase::startOneShot):
Add an overload that takes std::chrono::milliseconds.
2014-01-24 Oliver Hunt <oliver@apple.com>
Generic JSObject::put should handle static properties in the classinfo hierarchy
https://bugs.webkit.org/show_bug.cgi?id=127523
Reviewed by Geoffrey Garen.
Update the bindings generator to emit the flag indicating the presence
of setters, and remove the many (now unnecessary) put overrides.
Tested with run-jsc-benchmarks and shows neutral performance. A few of the
micro benchmarks actually get a significant performance increase which
is nice.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
We still need a custom call to lookupPut here in order
to get the magic security semantics of the window object.
* bindings/scripts/CodeGeneratorJS.pm:
(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
* bindings/scripts/CodeGeneratorJS.pm:
(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(InstanceOverridesPutImplementation):
(InstanceOverridesPutDeclaration):
(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::put):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
* html/canvas/WebGLRenderingContext.idl:
Remove bogus attribute, as it has never been in the spec and should not
have been added.
2014-01-24 David Hyatt <hyatt@apple.com>
[New Multicolumn] Eliminate RenderMultiColumnBlock
https://bugs.webkit.org/show_bug.cgi?id=127565
Reviewed by Antti Koivisto.
This patch eliminates RenderMultiColumnBlock and folds all of its remaining code
back into RenderBlockFlow. This allows all block flows to support multi-column
layout, including table cells, list items, and the RenderView itself.
* CMakeLists.txt:
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Remove RenderMultiColumnBlock from the makefiles.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns):
Tweak the comment, since it was no longer accurate.
* rendering/RenderBlock.h:
Move some functions down into RenderBlockFlow.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::RenderBlockFlow):
(WebCore::RenderBlockFlow::createMultiColumnFlowThreadIfNeeded):
(WebCore::RenderBlockFlow::styleDidChange):
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
(WebCore::RenderBlockFlow::updateLogicalWidthAndColumnWidth):
(WebCore::RenderBlockFlow::addChild):
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
* rendering/RenderBlockFlow.h:
Move a bunch of functions from RenderMultiColumnBlock up into RenderBlockFlow.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::isUnsplittableForPagination):
Calls isMultiColumnBlockFlow() now instead of testing for a specific renderer type.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
Remove the multicolumn block creation code, since we always make a block flow now.
* rendering/RenderMultiColumnBlock.cpp: Removed.
* rendering/RenderMultiColumnBlock.h: Removed.
Nuke the files.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
(WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
(WebCore::RenderMultiColumnSet::addForcedBreak):
(WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::columnGap):
(WebCore::RenderMultiColumnSet::paintColumnRules):
Change all of the functions in the multicolumnset and multicolumnflowthread classes
to cast the parent to a RenderBlockFlow now instead of a RenderMultiColumnBlock.
Change the code to call through to multiColumnFlowThread() for column-specific information
for that parent block.
* rendering/RenderObject.h:
(WebCore::RenderObject::isMultiColumnBlockFlow):
Remove isRenderMultiColumnBlock() and replace with isMultiColumnBlockFlow().
* rendering/RenderingAllInOne.cpp:
Remove RenderMultiColumnBlock include.
2014-01-24 Brady Eidson <beidson@apple.com>
IDB: support createIndex/deleteIndex messaging
https://bugs.webkit.org/show_bug.cgi?id=127546
Reviewed by Tim Horton.
* WebCore.exp.in: Export a needed CrossThreadCopier
2014-01-24 Daniel Bates <dabates@apple.com>
Fix the Windows build after <http://trac.webkit.org/changeset/162704>
(https://bugs.webkit.org/show_bug.cgi?id=127293)
Only include TargetConditionals.h when building on a Darwin-based OS.
Also, check that TARGET_OS_IPHONE is defined before referencing its value
since it will be undefined when building on Windows.
* bindings/objc/PublicDOMInterfaces.h:
2014-01-24 Daniel Bates <dabates@apple.com>
Bindings generation tests hit an error trying to include wtf/Platform.h after r161638
https://bugs.webkit.org/show_bug.cgi?id=127293
Reviewed by Alexey Proskuryakov.
Include TargetConditionals.h instead of wtf/Platform.h as the latter isn't available
in the public SDK.
As a side effect of this change, replace usage of PLATFORM(IOS) with TARGET_OS_IPHONE.
* bindings/objc/PublicDOMInterfaces.h:
2014-01-21 David Hyatt <hyatt@apple.com>
[New Multicolumn] Table cells and list items need to work as multicolumn blocks.
https://bugs.webkit.org/show_bug.cgi?id=127365
This patch is a first step towards eliminating RenderMultiColumnBlock and moving
all its functionality into RenderBlockFlow. Doing so will allow table cells, list
items and the RenderView to use the new multi-column layout.
Reviewed by Simon Fraser.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::setMultiColumnFlowThread):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
(WebCore::RenderBlockFlow::multiColumnFlowThread):
Add the flow thread pointer to the multi-column flow thread to RenderBlockFlow's
rare data. This lets us use only one pointer in the rare data to point to an object
that can hold all of the rest of the multi-column info.
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
Move the construction of the flow thread to the constructor. This ensures we
never have a null flow thread and lets us avoid having to null check it for
empty multi-column blocks.
(WebCore::RenderMultiColumnBlock::columnHeightAvailable):
(WebCore::RenderMultiColumnBlock::columnWidth):
(WebCore::RenderMultiColumnBlock::columnCount):
(WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
The above functions now call through to the multi-column flow thread for results.
(WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
Set the column height available on the flow thread.
(WebCore::RenderMultiColumnBlock::relayoutForPagination):
The balancing pass and guard is in the multi-column flow thread now.
(WebCore::RenderMultiColumnBlock::addChild):
Don't have to create the flow thread here any longer, since we do it up front
in the constructor of RenderMultiColumnBlock.
(WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
Don't need the null check of the flow thread any more.
* rendering/RenderMultiColumnBlock.h:
Change the inlined functions to not be inlined, since they need to call
RenderMultiColumnFlowThread functions now.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
Init the new member variables we moved here from RenderMultiColumnBlock.
(WebCore::RenderMultiColumnFlowThread::computeColumnCountAndWidth):
Moved from RenderMultiColumnBlock.
* rendering/RenderMultiColumnFlowThread.h:
Add public getters/setters to the member variables so that RenderMultiColumnBlock can
still see them. Move the member variables here from RenderMultiColumnBlock.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::columnCount):
Call through to the flow thread instead.
2014-01-24 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix after r162663.
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::visibleContentRectInternal): Renamed from visibleContentRect.
2014-01-24 Zan Dobersek <zdobersek@igalia.com>
Move HistoryItem to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127275
Reviewed by Darin Adler.
Replace the uses of OwnPtr and PassOwnPtr in the HistoryItem class with std::unique_ptr.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::reset):
(WebCore::HistoryItem::addRedirectURL):
(WebCore::HistoryItem::setRedirectURLs):
* history/HistoryItem.h:
* history/mac/HistoryItemMac.mm:
(WebCore::HistoryItem::setTransientProperty):
WebCore.exp.in: Update the symbol.
2014-01-23 Morten Stenshorne <mstensho@opera.com>
Region based multicol: unresolvable percent height results in 1px tall multicol
https://bugs.webkit.org/show_bug.cgi?id=122826
Reviewed by David Hyatt.
If a box has a percentage height, but the computed height of its
containing block is auto, the computed height of the box also becomes
auto. computeContentLogicalHeight() returns -1 if the height isn't
resolvable, and we need to make sure that such a value doesn't
constrain the height of the multicol container.
Tests: fast/multicol/newmulticol/unresolvable-percent-height-2.html
fast/multicol/newmulticol/unresolvable-percent-height.html
fast/multicol/newmulticol/unresolvable-percent-max-height-2.html
fast/multicol/newmulticol/unresolvable-percent-max-height.html
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
(WebCore::RenderMultiColumnSet::prepareForLayout):
2014-01-23 Joseph Pecoraro <pecoraro@apple.com>
Move ContentSearchUtils, ScriptBreakpoint, and ScriptDebugListener into JavaScriptCore for inspector
https://bugs.webkit.org/show_bug.cgi?id=127537
Reviewed by Timothy Hatcher.
- Rename ContentSearchUtils => ContentSearchUtilities and move to JavaScriptCore.
- Move ScriptBreakpoint and ScriptDebugListener to JavaScriptCore.
- Move them all to namespace Inspector.
- Update build files and users to the new names.
No change in functionality, just moving code.
* CMakeLists.txt:
* ForwardingHeaders/inspector/ContentSearchUtilities.h: Added.
* ForwardingHeaders/inspector/ScriptBreakpoint.h: Added.
* ForwardingHeaders/inspector/ScriptDebugListener.h: Added.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/PageScriptDebugServer.cpp:
* bindings/js/PageScriptDebugServer.h:
* bindings/js/ScriptDebugServer.cpp:
* bindings/js/ScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
* bindings/js/WorkerScriptDebugServer.h:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
(WebCore::InspectorDebuggerAgent::didParseSource):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::sourceMapURLForResource):
(WebCore::InspectorPageAgent::searchInResource):
(WebCore::InspectorPageAgent::searchInResources):
* inspector/InspectorStyleSheet.cpp:
(WebCore::buildSourceRangeObject):
(WebCore::InspectorStyleSheet::lineEndings):
(WebCore::InspectorStyleSheetForInlineStyle::lineEndings):
2014-01-23 Joseph Pecoraro <pecoraro@apple.com>
Move RegularExpression into JavaScriptCore for inspector
https://bugs.webkit.org/show_bug.cgi?id=127526
Reviewed by Geoffrey Garen.
Update as appropriate for the moved file and namespace
change for class RegularExpression.
* CMakeLists.txt:
* ForwardingHeaders/yarr/RegularExpression.h: Added.
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMImplementation.h:
* html/BaseCheckableInputType.cpp:
* html/BaseTextInputType.cpp:
(WebCore::BaseTextInputType::patternMismatch):
* html/EmailInputType.cpp:
(WebCore::isValidEmailAddress):
* html/InputType.cpp:
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
(WebCore::ContentSearchUtils::createSearchRegex):
(WebCore::ContentSearchUtils::countRegularExpressionMatches):
(WebCore::ContentSearchUtils::searchInTextByLines):
* inspector/ContentSearchUtils.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::matches):
(WebCore::InspectorDebuggerAgent::breakpointActionLog):
(WebCore::InspectorDebuggerAgent::breakpointActionSound):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::searchInResources):
* inspector/InspectorPageAgent.h:
* inspector/InspectorRuntimeAgent.cpp:
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorStyleSheet.cpp:
(WebCore::selectorsFromSource):
* inspector/WorkerDebuggerAgent.cpp:
* page/Frame.cpp:
(WebCore::createRegExpForLabels):
(WebCore::Frame::searchForLabelsAboveCell):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::matchLabelsAgainstString):
* page/Frame.h:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::getUnmangledInfoLog):
2014-01-23 Brady Eidson <beidson@apple.com>
IDB: Support IDBObjectStore.clear()
https://bugs.webkit.org/show_bug.cgi?id=127541
Reviewed by Anders Carlsson.
The backing store should never be performing callbacks directly:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::clearObjectStore):
Instead, the transaction operations should do that themselves:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::ClearObjectStoreOperation::perform):
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::ClearObjectStoreOperation::transaction):
2014-01-23 Dan Bernstein <mitz@apple.com>
<rdar://problem/15875326> REGRESSION (r162257): Assertion failure (should not be reached) in CSSPreloadScanner::tokenize()
https://bugs.webkit.org/show_bug.cgi?id=127540
Reviewed by Anders Carlsson.
No new tests, because I could not reproduce the bug reliably and I don’t know how to trigger
it.
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scan): Check for the DoneParsingImportRules before tokenizing
a character, not after. This restores the logic from before r162257.
2014-01-23 Jer Noble <jer.noble@apple.com>
[iOS] Protect against possbile deadlock by delaying video layer creation
https://bugs.webkit.org/show_bug.cgi?id=127505
Reviewed by Eric Carlson.
Work around a possible deadlock on iOS when creating a media element
backed by AVFoundation by delaying creation of the AVPlayerLayer.
The deadlock can occur when the web thread is doing CALayer layout
while taking the web thread lock, while CoreMedia is doing property
access on an async thread while taking the CM lock, and each is waiting
for the other's lock to be released.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
2014-01-23 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Crash when reloading a page during playback
https://bugs.webkit.org/show_bug.cgi?id=126903
Reviewed by Eric Carlson.
Periodic time observers added to AVSampleBufferRenderSynchronizer will execute their
callback block even after being removed with -removeTimeObserver:, which is tracked by
<rdar://problem/15798050>. Work around this problem by passing a WeakPtr into the block
and bail early if the owning media player has been destroyed.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
2014-01-23 ChangSeok Oh <changseok.oh@collabora.com>
Dragging from inner side of video to outside causes a crash
https://bugs.webkit.org/show_bug.cgi?id=126338
Reviewed by Jer Noble.
The crash happens while dragging mouse cursor through timeline control to outside
of video region. This is beacause media controls are selected with the drag.
The media controls disappear when mouse cursor goes outside of video though
the dragging/selection proceeds. If once media controls are hidden, related element
lose their renderers. However the drag is still under going. it requires shadowPseudoId
of the selected controls. Untorntunately, SliderThumbElement/SliderContainerElement
don't return a static value for the shadowPseudoId unlike other media controls,
but they need a renderer to determine it. This is the reason of crash.
Test: media/media-controller-drag-crash.html
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::shadowPseudoId):
(WebCore::SliderContainerElement::shadowPseudoId):
2014-01-23 Brady Eidson <beidson@apple.com>
IDB: Implement SQLite backing store 'get' support
https://bugs.webkit.org/show_bug.cgi?id=127502
Reviewed by Tim Horton.
Get a KeyRange from a KeyRangeData:
* Modules/indexeddb/IDBKeyRangeData.cpp:
(WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange):
* Modules/indexeddb/IDBKeyRangeData.h:
Add collation function support to SQLiteDatabase:
* platform/sql/SQLiteDatabase.cpp:
(WebCore::destroyCollationFunction):
(WebCore::callCollationFunction):
(WebCore::SQLiteDatabase::setCollationFunction):
(WebCore::SQLiteDatabase::removeCollationFunction):
* platform/sql/SQLiteDatabase.h:
* WebCore.exp.in:
2014-01-23 Jon Honeycutt <jhoneycutt@apple.com>
Assertion failure in WebCore::PseudoElement::didRecalcStyle()
<https://bugs.webkit.org/show_bug.cgi?id=126761>
<rdar://problem/15793540>
Reviewed by Andy Estes.
Test: fast/images/animate-list-item-image-assertion.html
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::didRecalcStyle):
Check isRenderImage() rather than isImage() before casting to
RenderImage.
* editing/ios/EditorIOS.mm:
(WebCore::getImage):
Ditto.
* editing/mac/EditorMac.mm:
(WebCore::getImage):
Ditto.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didAttachRenderers):
Ditto.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::renderImageResource):
Ditto.
* page/DragController.cpp:
(WebCore::getCachedImage):
Ditto.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
(WebCore::RenderLayerBacking::updateImageContents):
Ditto.
2014-01-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
https://bugs.webkit.org/show_bug.cgi?id=127409
Reviewed by Geoffrey Garen.
Covered by existing tests.
* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
Remove m_recompileTimer and the recompile soon function.
We can just recompile immediately in all existing cases.
* bindings/js/PageScriptDebugServer.h:
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
(WebCore::PageScriptDebugServer::removeListener):
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
(WebCore::PageScriptDebugServer::didAddFirstListener):
(WebCore::PageScriptDebugServer::didRemoveLastListener):
Add a "didAddFirstListener" to match "didRemoveLastListener".
Only recompile functions when we attach the debugger and when
we detach the last listener.
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
(WebCore::WorkerScriptDebugServer::removeListener):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
Same thing. Also rearrange the functions to read better.
* inspector/InspectorProfilerAgent.cpp:
Use the direct recompile function instead of the removed "soon" version.
* WebCore.exp.in:
Update disconnectFrontend symbol.
* page/PageDebuggable.cpp:
(WebCore::PageDebuggable::disconnect):
* testing/Internals.cpp:
(WebCore::Internals::closeDummyInspectorFrontend):
* workers/WorkerMessagingProxy.cpp:
(WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
Include an InspectorDisconnectReason when calling disconnectFrontend.
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::enable):
(WebCore::InspectorProfilerAgent::disable):
(WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
* inspector/InspectorController.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::inspectedPageDestroyed):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::close):
Pass different reasons for the different disconnect reasons.
* inspector/WorkerInspectorController.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::~WorkerInspectorController):
(WebCore::WorkerInspectorController::disconnectFrontend):
Pass different reasons for the different disconnect reasons.
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
* inspector/InspectorPageAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
* inspector/InspectorResourceAgent.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorWorkerAgent.h:
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::disable):
(WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
* inspector/PageDebuggerAgent.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
* inspector/PageRuntimeAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer):
* inspector/WorkerDebuggerAgent.h:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
* inspector/WorkerRuntimeAgent.h:
Include InspectorDisconnectReason param.
2014-01-23 Simon Fraser <simon.fraser@apple.com>
Another Windows fix: include <algorithm> for std::min and std::max.
* platform/graphics/IntSize.h:
2014-01-23 Simon Fraser <simon.fraser@apple.com>
Try to fix Windows build.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::visibleSize):
* platform/win/PopupMenuWin.h:
2014-01-23 Simon Fraser <simon.fraser@apple.com>
Make visibleContentRect() return actualVisibleContentRect() on iOS most of the time
https://bugs.webkit.org/show_bug.cgi?id=127456
Reviewed by Antti Koivisto.
On iOS, visibleContentRect() returns the entire document rect for historical
reasons, and actualVisibleContentRect() returns what visibleContentRect()
returns on other platforms.
In addition, actualVisibleContentRect() was returning an empty rect in WK2.
Reduce the confusion of #ifdefs by making visibleContentRect() behave like
actualVisibleContentRect() by default on iOS. Where it needs the old behavior,
an optional parameter, LegacyIOSDocumentVisibleRect, provides this.
Achieve this by having the virtual ScrollableArea::visibleContentRectInternal(),
which is called by non-virtual visibleContentRect() and visibleContentRectIncludingScrollbars().
Similarly clean up visibleHeight/visibleWidth functions by having visibleSize() be virtual,
with non-virtual visibleHeight() and visibleWidth().
ScrollableArea subclasses override visibleContentRectInternal() and visibleSize() where necessary.
Mechanically change all the call sites of actualVisibleContentRect() to
use visibleContentRect(), and the call sites of visibleContentRect()
to visibleContentRect(..., LegacyIOSDocumentVisibleRect), adding comments
where this may not be appropriate.
Change callers of visibleContentRect(IncludeScrollbars...) to visibleContentRectIncludingScrollbars().
Also add actualScrollPosition(), and clean up some actualScroll* call sites.
No behavior change.
* WebCore.exp.in:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isOnscreen):
(WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isOffScreen):
* dom/Document.cpp:
(WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
(WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale):
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
* editing/Editor.cpp:
(WebCore::Editor::countMatchesForText):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::bounds):
(WebCore::FrameSelection::getClippedVisibleTextRectangles):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::imageFitsInWindow):
(WebCore::ImageDocument::windowSizeChanged):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::update):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::innerHeight):
(WebCore::DOMWindow::innerWidth):
(WebCore::DOMWindow::scrollX):
(WebCore::DOMWindow::scrollY):
(WebCore::DOMWindow::scrollBy):
* page/FrameView.cpp:
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::layout):
(WebCore::FrameView::scrollContentsSlowPath):
(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::sendResizeEventIfNeeded):
(WebCore::FrameView::windowClipRect):
(WebCore::FrameView::isScrollable):
(WebCore::FrameView::paintControlTints):
* page/SpatialNavigation.cpp:
(WebCore::canScrollInDirection):
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSize):
(WebCore::ScrollView::visibleContentRectInternal):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::paint):
* platform/ScrollView.h:
(WebCore::ScrollView::scrollOffset):
(WebCore::ScrollView::actualScrollX):
(WebCore::ScrollView::actualScrollY):
(WebCore::ScrollView::actualScrollPosition):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::visibleContentRect):
(WebCore::ScrollableArea::visibleContentRectIncludingScrollbars):
(WebCore::ScrollableArea::visibleContentRectInternal):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::visibleWidth):
(WebCore::ScrollableArea::visibleHeight):
* platform/graphics/IntSize.h:
(WebCore::IntSize::expandedTo): Drive-by cleanup.
(WebCore::IntSize::shrunkTo):
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::visibleContentRect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::maximumScrollPosition):
(WebCore::RenderLayer::visibleContentRectInternal):
(WebCore::RenderLayer::hitTest):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
* rendering/RenderListBox.cpp:
* rendering/RenderListBox.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::viewRect):
(WebCore::RenderView::viewportSize):
2014-01-20 Myles C. Maxfield <mmaxfield@apple.com>
Turn text-decoration-skip: ink on for all underlines
https://bugs.webkit.org/show_bug.cgi?id=127331
Reviewed by Antti Koivisto.
No new tests are necessary because tests already exist
* rendering/style/RenderStyle.h:
2014-01-23 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Image valued shape size and position should conform to the spec
https://bugs.webkit.org/show_bug.cgi?id=123295
Reviewed by Andreas Kling.
Implement image valued shape-outside scaling and translation per the spec,
http://dev.w3.org/csswg/css-shapes/#shapes-from-image:
"The image is sized and positioned as if it were a replaced element whose
specified width and height are the same as the element’s used content box size."
This change doesn't completely fulfill the spec, it's limited to image elements
and shape-outside.
Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-001.html
fast/shapes/shape-outside-floats/shape-outside-image-fit-002.html
fast/shapes/shape-outside-floats/shape-outside-image-fit-003.html
fast/shapes/shape-outside-floats/shape-outside-image-fit-004.html
* rendering/shapes/Shape.h:
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
Added an imageRect parameter which specifies where the shape image is to
appear relative to the content box. The imageRect implies both scaling and
translation of the shape image.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape):
(WebCore::getShapeImageRect):
For replaced elements, compute the shape's imageRect with
RenderReplaced::replacedContentRect().
2014-01-23 Max Vujovic <mvujovic@adobe.com>
Remove CSS Custom Filters code and tests
https://bugs.webkit.org/show_bug.cgi?id=127382
Reviewed by Simon Fraser.
No new tests. Removing functionality.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
(kitClass):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForFilter):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSComputedStyleDeclaration.h:
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseValue):
(WebCore::filterInfoForName):
(WebCore::CSSParser::parseFilter):
(WebCore::CSSParser::detectAtToken):
* css/CSSParser.h:
* css/CSSParserMode.h:
* css/CSSPropertyNames.in:
* css/CSSPropertySourceData.h:
* css/CSSRule.h:
* css/CSSRule.idl:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::cloneForCSSOM):
* css/CSSValue.h:
* css/CSSValueKeywords.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::applyProperty):
(WebCore::filterOperationForType):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingResources):
* css/StyleResolver.h:
(WebCore::StyleResolver::State::State):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
* css/StyleRule.h:
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* css/WebKitCSSArrayFunctionValue.cpp: Removed.
* css/WebKitCSSArrayFunctionValue.h: Removed.
* css/WebKitCSSFilterRule.cpp: Removed.
* css/WebKitCSSFilterRule.h: Removed.
* css/WebKitCSSFilterRule.idl: Removed.
* css/WebKitCSSFilterValue.cpp:
(WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue):
(WebCore::WebKitCSSFilterValue::customCSSText):
* css/WebKitCSSFilterValue.h:
* css/WebKitCSSFilterValue.idl:
* css/WebKitCSSMatFunctionValue.cpp: Removed.
* css/WebKitCSSMatFunctionValue.h: Removed.
* css/WebKitCSSMixFunctionValue.cpp: Removed.
* css/WebKitCSSMixFunctionValue.h: Removed.
* css/WebKitCSSMixFunctionValue.idl: Removed.
* css/WebKitCSSShaderValue.cpp: Removed.
* css/WebKitCSSShaderValue.h: Removed.
* loader/cache/CachedResource.cpp:
(WebCore::defaultPriorityForResourceType):
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource):
(WebCore::CachedResourceLoader::checkInsecureContent):
(WebCore::CachedResourceLoader::canRequest):
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedShader.cpp: Removed.
* loader/cache/CachedShader.h: Removed.
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilter):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::filtersCanBeComposited):
* platform/graphics/filters/CustomFilterArrayParameter.h: Removed.
* platform/graphics/filters/CustomFilterColorParameter.h: Removed.
* platform/graphics/filters/CustomFilterCompiledProgram.cpp: Removed.
* platform/graphics/filters/CustomFilterCompiledProgram.h: Removed.
* platform/graphics/filters/CustomFilterConstants.h: Removed.
* platform/graphics/filters/CustomFilterGlobalContext.cpp: Removed.
* platform/graphics/filters/CustomFilterGlobalContext.h: Removed.
* platform/graphics/filters/CustomFilterMesh.cpp: Removed.
* platform/graphics/filters/CustomFilterMesh.h: Removed.
* platform/graphics/filters/CustomFilterMeshGenerator.cpp: Removed.
* platform/graphics/filters/CustomFilterMeshGenerator.h: Removed.
* platform/graphics/filters/CustomFilterNumberParameter.h: Removed.
* platform/graphics/filters/CustomFilterOperation.cpp: Removed.
* platform/graphics/filters/CustomFilterOperation.h: Removed.
* platform/graphics/filters/CustomFilterParameter.h: Removed.
* platform/graphics/filters/CustomFilterParameterList.cpp: Removed.
* platform/graphics/filters/CustomFilterParameterList.h: Removed.
* platform/graphics/filters/CustomFilterProgram.cpp: Removed.
* platform/graphics/filters/CustomFilterProgram.h: Removed.
* platform/graphics/filters/CustomFilterProgramClient.h: Removed.
* platform/graphics/filters/CustomFilterProgramInfo.cpp: Removed.
* platform/graphics/filters/CustomFilterProgramInfo.h: Removed.
* platform/graphics/filters/CustomFilterRenderer.cpp: Removed.
* platform/graphics/filters/CustomFilterRenderer.h: Removed.
* platform/graphics/filters/CustomFilterTransformParameter.h: Removed.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp: Removed.
* platform/graphics/filters/CustomFilterValidatedProgram.h: Removed.
* platform/graphics/filters/FECustomFilter.cpp: Removed.
* platform/graphics/filters/FECustomFilter.h: Removed.
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::outsets):
* platform/graphics/filters/FilterOperations.h:
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
* platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
* platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Removed.
* platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Removed.
* platform/graphics/gpu/Texture.cpp:
* platform/graphics/texmap/TextureMapper.h:
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::getPassesRequiredForFilter):
(WebCore::BitmapTextureGL::applyFilters):
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::clearPendingStateChanges):
(WebCore::CompositingCoordinator::syncLayerState):
* platform/graphics/texmap/coordinated/CompositingCoordinator.h:
* platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Removed.
* platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Removed.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
(WebCore::CoordinatedGraphicsScene::commitSceneState):
(WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::FilterEffectRenderer):
(WebCore::FilterEffectRenderer::build):
(WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
* rendering/FilterEffectRenderer.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateFilters):
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::~FilterInfo):
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderView.cpp:
* rendering/RenderView.h:
* rendering/style/StyleCachedShader.cpp: Removed.
* rendering/style/StyleCachedShader.h: Removed.
* rendering/style/StyleCustomFilterProgram.cpp: Removed.
* rendering/style/StyleCustomFilterProgram.h: Removed.
* rendering/style/StyleCustomFilterProgramCache.cpp: Removed.
* rendering/style/StyleCustomFilterProgramCache.h: Removed.
* rendering/style/StylePendingShader.h: Removed.
* rendering/style/StyleShader.h: Removed.
2014-01-22 Jon Honeycutt <jhoneycutt@apple.com>
REGRESSION(r161967): Crash in WebCore::CachedSVGDocumentReference::load
<https://webkit.org/b/127151>
<rdar://problem/15840760>
There were two issues introduced here; the first is a use-after-free of
CachedSVGDocumentReference objects.
The previous code kept a map from FilterOperation ->
RefPtr<WebKitCSSSVGDocumentValue>, which retained the
CachedSVGDocument. In r161967, this was changed to use a weak HashSet,
which allows stale CachedSVGDocumentReferences in the pending document
set if the owning FilterOperation is deleted. To fix this, we'll keep a
vector of RefPtr<FilterOperation> with pending SVG documents.
The second issue is a null deref in CachedSVGDocumentReference::load();
CachedResourceLoader::requestSVGDocument() can return 0 if (for
example) an invalid URL is passed. r161967 removed a null check as part
of the refactoring.
Reviewed by Dirk Schulze.
Tests: css3/filters/crash-filter-animation-invalid-url.html
css3/filters/crash-invalid-url.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear):
Use new member var name.
(WebCore::StyleResolver::loadPendingSVGDocuments):
For each FilterOperation with a pending SVG document, get or create a
CachedSVGDocumentReference, and tell it to load. Changed to use new
function names.
(WebCore::StyleResolver::createFilterOperations):
Append the FilterOperation to the list of FilterOperations with
unloaded SVG documents.
* css/StyleResolver.h:
Changed from using PendingSVGDocumentSet, a weak set, to
a Vector<RefPtr<ReferenceFilterOperation>>.
(WebCore::StyleResolver::State::filtersWithPendingSVGDocuments):
Return the vector.
* loader/cache/CachedSVGDocumentReference.cpp:
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
Null check m_document rather than checking m_loadRequested.
m_loadRequested may be true when m_document is 0.
(WebCore::CachedSVGDocumentReference::load):
Null check the result of CachedResourceLoader::requestSVGDocument().
* platform/graphics/filters/FilterOperation.cpp:
(WebCore::ReferenceFilterOperation::getOrCreateCachedSVGDocumentReference):
Create, if necessary, and return the CachedSVGDocumentReference.
* platform/graphics/filters/FilterOperation.h:
Replaced createCachedSVGDocumentReference() with
getOrCreateCachedSVGDocumentReference(), which makes for slightly
cleaner code.
2014-01-23 Antti Koivisto <antti@apple.com>
Don't enable speculative tiles immediately after main load stops progressing
https://bugs.webkit.org/show_bug.cgi?id=127507
Reviewed by Andreas Kling.
It is common for timers and events to trigger more loading after the initial main frame loading
has completed. We should delay a bit before enabling speculative tiles and keep them disabled
if loading still continues.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::adjustTiledBackingCoverage):
(WebCore::shouldEnableSpeculativeTilingDuringLoading):
(WebCore::FrameView::enableSpeculativeTilingIfNeeded):
When load progression stops wait 0.5s before enabling speculative tiles.
(WebCore::FrameView::speculativeTilingEnableTimerFired):
Don't enable speculative tiles if the progression has started again. Instead restart the timer.
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::computeTileCoverage):
Move the FrameView level code to FrameView (so we don't need to add a timer to every RenderLayerBacking).
* rendering/RenderLayerBacking.h:
2014-01-23 Antti Koivisto <antti@apple.com>
Loads started soon after main frame completion should be considered part of the main load
https://bugs.webkit.org/show_bug.cgi?id=127504
Reviewed by Andreas Kling.
ProgressTracker currently decides that main load is complete when the main frame stops loading.
However it is common that timers and onload events trigger more loads immediately (for example
by inserting iframes) and loading continues visually. These should be considered as part of the
main load for paint throttling and speculative tiling coverage purposes.
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::ProgressTracker):
(WebCore::ProgressTracker::progressStarted):
Track whether this is considered part of the main load or not with a boolean.
It is set for subframe loads too if they start loading soon (within 1s) after the main frame load completes.
(WebCore::ProgressTracker::finalProgressComplete):
Get a timestamp.
(WebCore::ProgressTracker::isMainLoadProgressing):
New definition of "main load".
* loader/ProgressTracker.h:
2014-01-23 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=127499
Reviewed by Brent Fulgham.
* platform/network/curl/ResourceError.h: Include <winsock2.h> before <curl/curl.h>.
2014-01-23 Brady Eidson <beidson@apple.com>
IDB: Implement cross-thread and IPC plumbing for 'get' support
https://bugs.webkit.org/show_bug.cgi?id=127501
Reviewed by Anders Carlsson.
Add isolatedCopy to the IDBGetResult object:
* Modules/indexeddb/IDBGetResult.h:
(WebCore::IDBGetResult::isolatedCopy):
Add a cross-thread and cross-IPC appropriate object for IDBKeyRanges:
* Modules/indexeddb/IDBKeyRangeData.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
(WebCore::IDBKeyRangeData::isolatedCopy):
* Modules/indexeddb/IDBKeyRangeData.h: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
(WebCore::IDBKeyRangeData::IDBKeyRangeData):
Add a few more cross-thread copiers:
* platform/CrossThreadCopier.cpp:
(WebCore::IDBGetResult>::copy):
(WebCore::IDBKeyRangeData>::copy):
* platform/CrossThreadCopier.h:
Project file gunk:
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2014-01-23 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Adopt new AVStreamDataParser delegate API
https://bugs.webkit.org/show_bug.cgi?id=127498
Reviewed by Eric Carlson.
Adopt a new delegate API which passes in whether or not the new AVAsset
is discontinuous, implying the AVAsset is entirely new rather than
just updated with new information.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
2014-01-23 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Use PDFPlugin even if there's an external plugin installed, if it's blocked
https://bugs.webkit.org/show_bug.cgi?id=127415
<rdar://problem/12482452>
Reviewed by Sam Weinig.
* English.lproj/Localizable.strings:
* WebCore.exp.in:
* platform/LocalizedStrings.cpp:
(WebCore::useBlockedPlugInContextMenuTitle):
* platform/LocalizedStrings.h:
Add a localizable string for the generic case, where the client
didn't provide a more specific string for the context menu item.
2014-01-23 peavo@outlook.com <peavo@outlook.com>
[Curl] There is no way to specify cache folder.
https://bugs.webkit.org/show_bug.cgi?id=125028
Reviewed by Brent Fulgham.
Fixed logical test, disc cache should be disabled if creating cache folder fails.
* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::setCacheDirectory):
2014-01-23 Brady Eidson <beidson@apple.com>
Unreviewed build fix.
* WebCore.xcodeproj/project.pbxproj: Export the new header so WebKit can see it
2014-01-22 Brent Fulgham <bfulgham@apple.com>
[Win] Update project and solution files for 64-bit builds
https://bugs.webkit.org/show_bug.cgi?id=127457
Reviewed by Eric Carlson.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Update for VS2013
* WebCore.vcxproj/WebCore.submit.sln: Add x64 targets
* WebCore.vcxproj/WebCore.vcxproj: Update for VS2013. Also exclude 32-bit specific
assembly when building 64-bit target.
* WebCore.vcxproj/WebCore.vcxproj.filters: Update for VS2013
* config.h: Handle 64-bit type definitions.
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(PlatformCAAnimation::setFromValue): Use CGFloat to support 64-bit builds
(PlatformCAAnimation::setToValue): Ditto
(PlatformCAAnimation::setValues): Ditto
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Add cast to
support 32- and 64-bit targets.
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::drawLineForDocumentMarker): Use CGFloat to
support 64-bit builds.
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeURLToDataObject): Specialize std::min to
work on 32- and 64-bit code.
(WebCore::createGlobalImageFileDescriptor): Ditto
* platform/win/StructuredExceptionHandlerSuppressor.cpp:
(WebCore::StructuredExceptionHandlerSuppressor::StructuredExceptionHandlerSuppressor):
Comment out 32-bit inline assembly.
(WebCore::StructuredExceptionHandlerSuppressor::~StructuredExceptionHandlerSuppressor):
Ditto
2014-01-23 Brady Eidson <beidson@apple.com>
Make IDBGetResult work with IDBKeyData instead of IDBKey.
https://bugs.webkit.org/show_bug.cgi?id=127493
Reviewed by Eric Carlson.
Also break it into its own header to work better with IPC messages.
* Modules/indexeddb/IDBGetResult.h: Added.
(WebCore::IDBGetResult::IDBGetResult):
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::GetOperation::perform):
* WebCore.xcodeproj/project.pbxproj:
2014-01-23 Mátyás Mustoha <mmatyas@inf.u-szeged.hu>
[curl] Add storage limit to cache manager
https://bugs.webkit.org/show_bug.cgi?id=125779
Reviewed by Brent Fulgham.
Sets a local disc storage size limit for the cache manager
used by the curl network backend.
* platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::CurlCacheEntry):
(WebCore::CurlCacheEntry::isCached):
(WebCore::CurlCacheEntry::saveCachedData):
(WebCore::CurlCacheEntry::readCachedData):
(WebCore::CurlCacheEntry::didFail):
(WebCore::CurlCacheEntry::didFinishLoading):
(WebCore::CurlCacheEntry::loadFileToBuffer):
(WebCore::CurlCacheEntry::parseResponseHeaders):
(WebCore::CurlCacheEntry::entrySize):
* platform/network/curl/CurlCacheEntry.h:
(WebCore::CurlCacheEntry::requestHeaders):
* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::CurlCacheManager):
(WebCore::CurlCacheManager::setStorageSizeLimit):
(WebCore::CurlCacheManager::loadIndex):
(WebCore::CurlCacheManager::saveIndex):
(WebCore::CurlCacheManager::makeRoomForNewEntry):
(WebCore::CurlCacheManager::didReceiveResponse):
(WebCore::CurlCacheManager::didReceiveData):
(WebCore::CurlCacheManager::invalidateCacheEntry):
(WebCore::CurlCacheManager::readCachedData):
* platform/network/curl/CurlCacheManager.h:
(WebCore::CurlCacheManager::cacheDirectory):
2014-01-23 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix automake warning.
* GNUmakefile.list.am: Remove trailing whitespaces.
2014-01-23 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Fix positioning composited layers when the region has overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=124042
Reviewed by Mihnea Ovidenie.
If there's a clipping GraphicsLayer on the hierarchy, substract its offset, since it's its
parent that positions us.
Tests: compositing/regions/position-layer-inside-region-overflow-hidden.html
compositing/regions/position-layer-inside-overflow-hidden.html
compositing/regions/position-layers-inside-region-overflow-hidden.html
compositing/regions/position-layers-inside-regions-overflow-hidden.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): The position
must also be correct when the region has box-shadow that inflates the region's layer. The
composited layers from the flow thread should be rendered in the same position whether the
associated region has clipping or not.
Using the position of the clipping layer instead of the location of the clipbox makes it
also work with box-shadow that inflates the region's graphics layer.
2014-01-23 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Convert regions iterator loops to range-based loops
https://bugs.webkit.org/show_bug.cgi?id=127464
Reviewed by Antti Koivisto.
Replace most of the iterator loops in the region implementation with
range based for loops. The for loops that iterate only over subsets
of collections have not been changed.
Tests: no new tests, this is a refactoring patch.
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForCSSRegionsHighlight):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::validateRegions):
(WebCore::RenderFlowThread::updateLogicalWidth):
(WebCore::RenderFlowThread::computeLogicalHeight):
(WebCore::RenderFlowThread::repaintRectangleInRegions):
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
(WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
(WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
(WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
(WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
(WebCore::RenderFlowThread::markRegionsForOverflowLayoutIfNeeded):
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
(WebCore::RenderFlowThread::collectLayerFragments):
(WebCore::RenderFlowThread::fragmentsBoundingBox):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
(WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::clearContentElements):
(WebCore::RenderNamedFlowThread::nextRendererForNode):
(WebCore::RenderNamedFlowThread::dependsOn):
(WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
(WebCore::RenderNamedFlowThread::checkInvalidRegions):
(WebCore::RenderNamedFlowThread::pushDependencies):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::isContainedInElements):
(WebCore::RenderNamedFlowThread::getRanges):
(WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
(WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeRenderRegionList):
2014-01-23 László Langó <llango.u-szeged@partner.samsung.com>
Range should be constructable.
https://bugs.webkit.org/show_bug.cgi?id=115639
Reviewed by Ryosuke Niwa.
http://www.w3.org/TR/2013/WD-dom-20131107/#interface-range
Now we can do `new Range()` instead of `document.createRange()`.
Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/47ca40efdf58a4787aa33aa75a35778899b1c002%5E%21
Test: fast/dom/Range/range-constructor.html
* dom/Range.cpp:
(WebCore::Range::create):
* dom/Range.h:
* dom/Range.idl:
2014-01-23 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix for gles after r162565. Add missing definitions.
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::drawArraysInstanced):
(WebCore::GraphicsContext3D::drawElementsInstanced):
(WebCore::GraphicsContext3D::vertexAttribDivisor):
2014-01-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GLIB] Use GUniquePtr instead of GOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=127431
Reviewed by Martin Robinson.
GUniquePtr is a template alias of std::unique_ptr with a custom
deleter that replaces GOwnPtr. GOwnPtr is still used for the cases
where the output pointer is needed, but it will also be replaced soon.
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* accessibility/atk/AXObjectCacheAtk.cpp:
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
(accessibilityObjectLength):
(textExtents):
(webkitAccessibleTextGetChar):
(numberOfReplacedElementsBeforeOffset):
* page/ContextMenuController.cpp:
* platform/SharedBuffer.h:
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcLoop):
* platform/audio/gtk/AudioBusGtk.cpp:
(WebCore::AudioBus::loadPlatformResource):
* platform/geoclue/GeolocationProviderGeoclue.cpp:
* platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcAddSrc):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcStart):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):
* platform/graphics/gtk/ImageBufferGtk.cpp:
(WebCore::encodeImage):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/gtk/ImageGtk.cpp:
(WebCore::getThemeIconFileName):
(WebCore::Image::loadPlatformResource):
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::itemCount):
(WebCore::contextMenuItemVector):
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::createPlatformMenuItemDescription):
* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::setURIList):
(WebCore::DataObjectGtk::setURL):
* platform/gtk/FileSystemGtk.cpp:
(WebCore::filenameToString):
(WebCore::fileSystemRepresentation):
(WebCore::filenameForDisplay):
(WebCore::pathGetFileName):
(WebCore::applicationDirectoryPath):
(WebCore::sharedResourcesPath):
(WebCore::directoryName):
(WebCore::listDirectory):
(WebCore::openTemporaryFile):
* platform/gtk/GOwnPtrGtk.cpp: Removed.
* platform/gtk/GOwnPtrGtk.h: Removed.
* platform/gtk/GUniquePtrGtk.h: Added.
* platform/gtk/GamepadsGtk.cpp:
(WebCore::GamepadsGtk::GamepadsGtk):
* platform/gtk/GtkClickCounter.cpp:
(WebCore::GtkClickCounter::shouldProcessButtonEvent):
* platform/gtk/GtkInputMethodFilter.cpp:
(WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
* platform/gtk/GtkPopupMenu.cpp:
(WebCore::GtkPopupMenu::popUp):
(WebCore::GtkPopupMenu::typeAheadFind):
* platform/gtk/LanguageGtk.cpp:
(WebCore::platformLanguage):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::imageTitle):
(WebCore::localizedMediaTimeDescription):
* platform/gtk/PasteboardHelper.cpp:
(WebCore::selectionDataToUTF8String):
(WebCore::PasteboardHelper::getClipboardContents):
(WebCore::PasteboardHelper::fillSelectionData):
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenuGtk::createGtkActionForMenuItem):
(WebCore::PopupMenuGtk::show):
* platform/gtk/WebKitAuthenticationWidget.cpp:
(webkitAuthenticationWidgetInitialize):
* platform/network/ResourceHandleInternal.h:
* platform/network/gtk/CredentialBackingStore.cpp:
(WebCore::credentialForChallengeAsyncReadyCallback):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForSession):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
* platform/network/soup/DNSSoup.cpp:
* platform/network/soup/GUniquePtrSoup.h: Added.
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::failingURI):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::ensureReadBuffer):
(WebCore::cleanupSoupRequestOperation):
(WebCore::createSoupRequestAndMessageForHandle):
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessageMembers):
(WebCore::ResourceRequest::updateSoupMessage):
* platform/network/soup/ResourceResponseSoup.cpp:
* platform/network/soup/SoupURIUtils.cpp:
(WebCore::soupURIToKURL):
* platform/soup/SharedBufferSoup.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::clearPlatformData):
(WebCore::SharedBuffer::maybeTransferPlatformData):
(WebCore::SharedBuffer::hasPlatformData):
* plugins/gtk/PluginPackageGtk.cpp:
(WebCore::PluginPackage::fetchInfo):
(WebCore::PluginPackage::load):
2014-01-22 Simon Fraser <simon.fraser@apple.com>
Surround fixedVisibleContentRect code with USE(TILED_BACKING_STORE)
https://bugs.webkit.org/show_bug.cgi?id=127461
Reviewed by Andreas Kling.
The "fixedVisibleContentRect" code path is only used by platforms
which enabled TILED_BACKING_STORE, so to reduce confusion, surround
this code with #if USE(TILED_BACKING_STORE).
* page/Frame.cpp:
(WebCore::Frame::createView):
* page/FrameView.cpp:
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSize):
(WebCore::ScrollView::visibleContentRect):
* platform/ScrollView.h:
(WebCore::ScrollView::visibleSize):
2014-01-22 Myles C. Maxfield <mmaxfield@apple.com>
ASSERTION FAILED: v.isFixed() in WebCore::RenderStyle::setWordSpacing
https://bugs.webkit.org/show_bug.cgi?id=126987
Reviewed by Simon Fraser.
When "inherit" is specified and there is no parent, Length values have an "Auto" type
Test: fast/css3-text/css3-word-spacing-percentage/word-spacing-crash.html
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setWordSpacing):
2014-01-22 Samuel White <samuel_white@apple.com>
AX: Can't always increment web sliders.
https://bugs.webkit.org/show_bug.cgi?id=127451
Reviewed by Chris Fleizach.
Clamping the decrement/increment amount to one when necessary (if a percent change would result in a change of less than one).
Test: accessibility/range-alter-by-percent.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::changeValueByPercent):
2014-01-22 Myles C. Maxfield <mmaxfield@apple.com>
Remove CSS3_TEXT_DECORATION define
https://bugs.webkit.org/show_bug.cgi?id=127333
Reviewed by Simon Fraser.
This is required for unprefixing the text-decoration-* CSS properties.
No new tests are necessary becase the flag was already on by default.
* Configurations/FeatureDefines.xcconfig:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::renderTextDecorationSkipFlagsToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isColorPropertyID):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::addTextDecorationProperty):
(WebCore::CSSParser::parseTextUnderlinePosition):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StylePropertyShorthand.cpp:
(WebCore::webkitTextDecorationShorthand):
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
* css/StylePropertyShorthand.h:
* css/StyleResolver.cpp:
(WebCore::shouldApplyPropertyInParseOrder):
(WebCore::isValidVisitedLinkProperty):
(WebCore::StyleResolver::applyProperty):
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformStrokeStyle):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::createPen):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeMaxLogicalTop):
* rendering/InlineFlowBox.h:
* rendering/InlineTextBox.cpp:
(WebCore::textDecorationStyleToStrokeStyle):
(WebCore::boundingBoxForAllActiveDecorations):
(WebCore::InlineTextBox::paintDecoration):
* rendering/RenderObject.cpp:
(WebCore::decorationColor):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::maxLogicalTop):
* rendering/RootInlineBox.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline):
(WebCore::RenderStyle::colorIncludingFallback):
(WebCore::RenderStyle::visitedDependentColor):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-01-22 Chris Fleizach <cfleizach@apple.com>
AX: Do not return an accessible name for an object just because it has tabindex=0
https://bugs.webkit.org/show_bug.cgi?id=126914
Reviewed by Mario Sanchez Prada.
WebKit has code to return an accessible name for any object that is "generically" focusable (ie. tabindex=0).
This behavior, which is not supported in ARIA, has caused many problems for VoiceOver. Often VoiceOver will
speak all the text underneath any type of group.
I think we need to revert this behavior and follow the ARIA spec more closely.
Test: accessibility/aria-describedby-ensures-visibility.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::visibleText):
(WebCore::AccessibilityNodeObject::title):
2014-01-22 Brady Eidson <beidson@apple.com>
The IDB backing store get() method shouldn't call IDB callbacks directly
https://bugs.webkit.org/show_bug.cgi?id=127453
Reviewed by Beth Dakin.
* Modules/indexeddb/IDBServerConnection.h:
(WebCore::IDBGetResult::IDBGetResult): Add a new structure to hold all of the
possible results of a get() call.
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::get): Don't call IDBCallbacks directly.
Instead, return the GetResult to the GetOperation which will make IDBCallbacks.
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::GetOperation::perform): Get all of the IDBGetResults in the completion callback
make the appropriate IDBCallback.
* Modules/indexeddb/IDBTransactionBackendOperations.h:
2014-01-22 Dean Jackson <dino@apple.com>
Unreviewed attempt to fix 32-bit builds.
Use long long rather than GC3Dintptr.
* html/canvas/ANGLEInstancedArrays.cpp:
(WebCore::ANGLEInstancedArrays::drawElementsInstancedANGLE):
* html/canvas/ANGLEInstancedArrays.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::drawElementsInstanced):
* html/canvas/WebGLRenderingContext.h:
2014-01-21 Brady Eidson <beidson@apple.com>
IDB: "Put" support
<rdar://problem/15779643> and https://bugs.webkit.org/show_bug.cgi?id=127401
Reviewed by Alexey Proskuryakov.
Add persistent encode/decode for storage to the database:
* Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::encode):
(WebCore::IDBKey::decode):
* Modules/indexeddb/IDBKey.h:
Add a data class to represent IDBKey suitable for crossing IPC:
* Modules/indexeddb/IDBKeyData.cpp: Added.
(WebCore::IDBKeyData::IDBKeyData):
(WebCore::IDBKeyData::maybeCreateIDBKey):
(WebCore::IDBKeyData::isolatedCopy):
* Modules/indexeddb/IDBKeyData.h: Added.
(WebCore::IDBKeyData::IDBKeyData):
* platform/CrossThreadCopier.cpp:
(WebCore::IDBKeyData>::copy):
* platform/CrossThreadCopier.h:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2014-01-22 Dean Jackson <dino@apple.com>
[WebGL] Implement ANGLE_instanced_arrays
https://bugs.webkit.org/show_bug.cgi?id=127257
Reviewed by Brent Fulgham.
Implement the instanced drawing WebGL extension,
ANGLE_instanced_arrays. This is currently Mac-only,
but should be portable to other platforms if their
OpenGL exposes the functions. It's also done in a way
that will make exposing it to WebGL2 simple.
Test: fast/canvas/webgl/angle-instanced-arrays.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Add the new files to all the build systems.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS): Link JS side to C++ side.
* html/canvas/ANGLEInstancedArrays.cpp: Added.
(WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
* html/canvas/ANGLEInstancedArrays.h: Added.
* html/canvas/ANGLEInstancedArrays.idl: Added.
New boilerplate files that expose the extension methods.
* html/canvas/WebGLExtension.h: New extension enum.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateVertexAttributes): Add an optional
parameter representing the number of instance primitives we are asked
to draw. Use that for the draw count if looking at an instanced attribute.
Also make sure we see at least one non-instanced attribute.
(WebCore::WebGLRenderingContext::validateDrawArrays): Update this so it could
be used from either drawArrays or drawArraysInstanced.
(WebCore::WebGLRenderingContext::drawArrays):
(WebCore::WebGLRenderingContext::validateDrawElements): Same here, now can be
used by the instanced and non-instanced versions.
(WebCore::WebGLRenderingContext::drawElements):
(WebCore::WebGLRenderingContext::getExtension): Create and return the new extension.
(WebCore::WebGLRenderingContext::getSupportedExtensions): Add new extension to the list.
(WebCore::WebGLRenderingContext::getVertexAttrib): Intercept a query to the divisor
attribute and return the value we kept in the state.
(WebCore::WebGLRenderingContext::drawArraysInstanced): Call the GC3D method.
(WebCore::WebGLRenderingContext::drawElementsInstanced): Ditto.
(WebCore::WebGLRenderingContext::vertexAttribDivisor): Ditto.
* html/canvas/WebGLRenderingContext.h: Define the new methods and parameters.
* html/canvas/WebGLVertexArrayObjectOES.cpp:
(WebCore::WebGLVertexArrayObjectOES::setVertexAttribDivisor): Keep a record of the
divisor if we set it.
* html/canvas/WebGLVertexArrayObjectOES.h:
(WebCore::WebGLVertexArrayObjectOES::VertexAttribState::VertexAttribState):
* platform/graphics/GraphicsContext3D.h: New enum.
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::drawArraysInstanced): The actual calls into OpenGL.
(WebCore::GraphicsContext3D::drawElementsInstanced): Ditto.
(WebCore::GraphicsContext3D::vertexAttribDivisor): Ditto.
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: Empty implementations
for non-mac platforms.
* platform/graphics/ios/GraphicsContext3DIOS.h: Define the iOS names for the
functions.
2014-01-22 Zalan Bujtas <zalan@apple.com>
[CSS Shapes] shape-inside rectangle layout can fail
https://bugs.webkit.org/show_bug.cgi?id=124784
Reviewed by Darin Adler.
Early subpixel rounding/flooring/ceiling can have unwanted
side effect on the final pixel value. Delay pixel
conversions as much as possible.
Existing test is changed to reflect subpixel functionality.
* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
2014-01-22 Jochen Eisinger <jochen@chromium.org>
Add protocolIsInHTTPFamily for strings and use it where appropriate
https://bugs.webkit.org/show_bug.cgi?id=127336
Reviewed by Alexey Proskuryakov.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute):
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSource::schemeMatches):
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::generateReferrerHeader):
* platform/URL.cpp:
(WebCore::protocolIsInHTTPFamily):
* platform/URL.h:
2014-01-22 Zalan Bujtas <zalan@apple.com>
Subpixel Layout: SimpleLineLayout needs more position rounding to match InlineFlowBox layout.
https://bugs.webkit.org/show_bug.cgi?id=127404
Reviewed by Antti Koivisto.
In order to produce a CSS pixel perfect layout, SimpleLineLayout needs to
round line positions to CSS (integral) position similarly to InlineFlowBox.
Existing tests cover it.
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::Run::baseline):
2014-01-22 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed rollout of r162534, this caused inspector test failures.
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
(WebCore::PageScriptDebugServer::removeListener):
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
(WebCore::PageScriptDebugServer::didRemoveLastListener):
* bindings/js/PageScriptDebugServer.h:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::recompileAllJSFunctionsSoon):
(WebCore::ScriptDebugServer::recompileAllJSFunctionsTimerFired):
* bindings/js/ScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
(WebCore::WorkerScriptDebugServer::removeListener):
* inspector/InspectorProfilerAgent.cpp:
2014-01-22 peavo@outlook.com <peavo@outlook.com>
Crashes in setTextForIterator
https://bugs.webkit.org/show_bug.cgi?id=127424
Reviewed by Brent Fulgham.
* platform/text/icu/UTextProviderLatin1.cpp:
(WebCore::uTextLatin1Clone): Provide correct buffer size in utext_setup function call.
(WebCore::uTextLatin1Access): Give correct buffer size to memset call.
(WebCore::openLatin1UTextProvider): Ditto.
2014-01-22 Jer Noble <jer.noble@apple.com>
[Mac] MediaPlayerPrivateMediaSourceAVFObjC::load ASSERTs on lots of tests
https://bugs.webkit.org/show_bug.cgi?id=127430
Reviewed by Eric Carlson.
When other registered media engines cannot load a URL, the engine selection
will eventually pick MediaPlayerPrivateMediaSourceAVFObjC and ask it to load
the URL. Instead of ASSERTing here, simply reject the URL by setting the
network state to FormatError.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
2014-01-22 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[EFL][GTK] Get EFL and GTK compiling with ACCESSIBILITY disabled
https://bugs.webkit.org/show_bug.cgi?id=127119
Reviewed by Mario Sanchez Prada.
At build time, the compiler was not able to determine which Timer's constructor to call in AXObjectCache when
ACCESSIBILITY is not enabled, fixing that.
Also guarding some members in AccessibilityObject that are only being used by EFL and GTK with ACCESSIBILITY.
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::AXObjectCache):
* accessibility/AccessibilityObject.h:
2014-01-22 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Refactor calculation of hasRx and hasRy values in SVGPathData
https://bugs.webkit.org/show_bug.cgi?id=127423
Reviewed by Darin Adler.
This is a follow-up on https://bugs.webkit.org/show_bug.cgi?id=127337
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromRectElement):
2014-01-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
https://bugs.webkit.org/show_bug.cgi?id=127409
Reviewed by Timothy Hatcher.
* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
Remove m_recompileTimer and the recompile soon function.
We can just recompile immediately in all existing cases.
* bindings/js/PageScriptDebugServer.h:
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
(WebCore::PageScriptDebugServer::removeListener):
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
(WebCore::PageScriptDebugServer::didAddFirstListener):
(WebCore::PageScriptDebugServer::didRemoveLastListener):
Add a "didAddFirstListener" to match "didRemoveLastListener".
Only recompile functions when we attach the debugger and when
we detach the last listener.
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
(WebCore::WorkerScriptDebugServer::removeListener):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
Same thing. Also rearrange the functions to read better.
* inspector/InspectorProfilerAgent.cpp:
Use the direct recompile function instead of the removed "soon" version.
2014-01-22 Robert Sipka <sipka@inf.u-szeged.hu>
[curl] Improve detecting and handling of SSL client certificate
https://bugs.webkit.org/show_bug.cgi?id=125006
Reviewed by Brent Fulgham.
Add client certificate handling.
* platform/network/ResourceHandle.h:
* platform/network/curl/ResourceError.h:
(WebCore::ResourceError::hasSSLConnectError):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::setClientCertificateInfo):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::initializeHandle):
* platform/network/curl/SSLHandle.cpp:
(WebCore::addAllowedClientCertificate):
(WebCore::setSSLClientCertificate):
* platform/network/curl/SSLHandle.h:
2014-01-22 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] layerOwner in RenderNamedFlowFragment cannot return null
https://bugs.webkit.org/show_bug.cgi?id=127343
Reviewed by Sam Weinig.
RenderNamedFlowFragment::layerOwner cannot return null because regions create stacking
contexts which create layers.
No new tests, no functional change.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::hasCompositingRegionDescendant):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
* rendering/RenderNamedFlowFragment.h:
2014-01-22 Antti Koivisto <antti@apple.com>
Avoid unthrottled layer flushes triggered by RenderLayerCompositor::ensureRootLayer
https://bugs.webkit.org/show_bug.cgi?id=127426
Reviewed by Anders Carlsson.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollLayerPosition):
(WebCore::RenderLayerCompositor::frameViewDidScroll):
Factor scroll layer position update to a function.
(WebCore::RenderLayerCompositor::ensureRootLayer):
Stop calling frameViewDidChangeSize/frameViewDidScroll. Instead call the relevent functions
directly. This avoid unthrottled layer flush that is done when the view actually scrolls.
* rendering/RenderLayerCompositor.h:
2014-01-22 Mihai Tica <mitica@adobe.com>
[CSS Background Blending] -webkit-background-blend-mode fails for certain SVG files
https://bugs.webkit.org/show_bug.cgi?id=127350
Reviewed by Dirk Schulze.
The graphics context of the SVG inherits the blend mode set
on the background layer. Fix consists in drawing the SVG
in a transparency layer.
Test: css3/compositing/background-blend-mode-svg.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw): Begin a transparency layer if a blend mode is set.
2014-01-22 Antti Koivisto <antti@apple.com>
Update overlay scrollbars in single pass
https://bugs.webkit.org/show_bug.cgi?id=127289
Reviewed by Anders Carlsson.
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
Multi-pass scrollbar resolution is only needed for traditional scrollbars. Overlay scrollbars don't affect layout.
2014-01-22 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Incorrect layout of a region pseudo children
https://bugs.webkit.org/show_bug.cgi?id=126146
Reviewed by David Hyatt.
Test: fast/regions/collapse-anonymous-region.html
A region behaviour, styled using -webkit-flow-from, is modeled using an anonymous
block created to fragment the named flow content inside the region. We have to prevent
the behaviour of anonymous children collapsing for this block to make sure that the
region element children are still laid out properly when the region element becomes an ordinary
element.
* rendering/RenderBlockFlow.h:
2014-01-21 Ryuan Choi <ryuan.choi@samsung.com>
Remove unused "acceleratedCompositingForScrollableFramesEnabled" setting
https://bugs.webkit.org/show_bug.cgi?id=127402
Reviewed by Anders Carlsson.
compositing/iframes/iframe-composited-scrolling.html is updated because
there are no usages in WebCore.
* page/Settings.in:
2014-01-21 Alex Christensen <achristensen@webkit.org>
Compile fix for using libsoup on Windows.
https://bugs.webkit.org/show_bug.cgi?id=127377
Reviewed by Daniel Bates.
* platform/network/soup/ProxyResolverSoup.cpp:
(soupProxyResolverWkSetProperty):
(soupProxyResolverWkGetProperty):
(soupProxyResolverWkGetProxyURISync):
Replaced uint with unsigned.
2014-01-21 Daniel Bates <dabates@apple.com>
Break up single assertion into two assertions in HTMLMediaElement::returnPlatformLayer()
Following up after <http://trac.webkit.org/changeset/162473>, we should break up
the assertion into two assertions as suggested by Darin Adler. Separating the single
assertion into two assertions makes it straightforward to determine the conjunct that
failed among other benefits.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2014-01-21 Brady Eidson <beidson@apple.com>
The IDB backing store put() method shouldn't call IDB callbacks directly
https://bugs.webkit.org/show_bug.cgi?id=127399
Reviewed by Beth Dakin.
Refactor the put() callback to take a resulting key or an error.
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::PutOperation::perform): Call to the backing store, then perform the
appropriate IDB callback whether a key or an error was returned.
* Modules/indexeddb/IDBTransactionBackendOperations.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::put): Don’t call IDB callbacks directly.
Instead, pass the resulting key/error back to the PutOperation.
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2014-01-21 Jae Hyun Park <jae.park@company100.net>
Use nullptr in HTMLCanvasElement
https://bugs.webkit.org/show_bug.cgi?id=127388
Reviewed by Gyuyoung Kim.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::drawingContext):
(WebCore::HTMLCanvasElement::existingDrawingContext):
2014-01-21 László Langó <llango.u-szeged@partner.samsung.com>
Assertion failure in Range::nodeWillBeRemoved
https://bugs.webkit.org/show_bug.cgi?id=121694
Reviewed by Ryosuke Niwa.
Based on Blink a change: https://chromium.googlesource.com/chromium/blink/+/407c1d7b2c45974aa614b3f847ffe9e8fce205fa
This patch fix an assertion failure. Range::nodeWillBeRemoved() might
be called with removed node in ContainerNode, when DOMNodeRemovedFromDocument
event handler calls removeChild(), for node being removed.
Test: fast/dom/Range/remove-twice-crash.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::willRemoveChild):
* dom/ContainerNode.h:
2014-01-21 Tim Horton <timothy_horton@apple.com>
REGRESSION (r161580): Some PDFs render outside their <img>
https://bugs.webkit.org/show_bug.cgi?id=127381
<rdar://problem/15872168>
Reviewed by Simon Fraser.
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::transformContextForPainting):
Only try to make the scale uniform if it isn't already, and use the minimum
of the two original scales when doing so, so that it is absolutely certain
to fit inside space allocated for the image during layout.
2014-01-21 Simon Fraser <simon.fraser@apple.com>
Remove #if PLATFORM(IOS) in various places around customFixedPositionLayoutRect() code
https://bugs.webkit.org/show_bug.cgi?id=127373
Reviewed by Beth Dakin.
Instead of PLATFORM(IOS) #idefs at every call site for viewportConstrainedVisibleContentRect(),
move the #ifdef inside viewportConstrainedVisibleContentRect().
The one call site that needs special handling is RenderLayerBacking::updateCompositedBounds(),
which needs to avoid clipping fixed layers to the custom fixed position rect, but instead to
visibleContentRect() (which is really the document bounds on iOS). This ensures that the
fixed layers aren't clipped when zooming out.
* page/FrameView.cpp:
(WebCore::FrameView::viewportConstrainedVisibleContentRect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::stickyPositionOffset):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
(WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
2014-01-21 Andy Estes <aestes@apple.com>
[iOS] Allow all clients to link against WebCore
https://bugs.webkit.org/show_bug.cgi?id=127372
Reviewed by Dan Bernstein.
* Configurations/WebCore.xcconfig:
2014-01-21 Bear Travis <betravis@adobe.com>
[CSS Shapes] Preserve box-shape order when serializing shape values
https://bugs.webkit.org/show_bug.cgi?id=127200
Reviewed by Dirk Schulze.
Convert the parsed shape-box pair to a CSSValueList rather than directly
adding the box value to BasicShape. The CSSValueList preserves the
shape-box ordering, and cleans up a little bit of the code shared between
clip and shape values.
Modifying existing parsing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::shapePropertyValue): Factor out code common to generating shape
values.
(WebCore::ComputedStyleExtractor::propertyValue): Generate a CSSValueList when
you have both a shape and a box.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBasicShapeAndOrBox): Factor out code common to clip
paths and shape properties that parses the [basic-shape || box] syntax from
the CSS Shapes spec.
(WebCore::CSSParser::parseShapeProperty): Parse shape-box pairs as a CSSValueList.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyShape::applyValue): Use the CSSValueList for shape-box pairs.
* css/CSSValueList.h:
(WebCore::CSSValueList::itemWithoutBoundsCheck): Add a const version.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Specify a box when blending.
* rendering/style/ShapeValue.h:
(WebCore::ShapeValue::createShapeValue): Add a box parameter.
(WebCore::ShapeValue::ShapeValue): Ditto.
2014-01-21 Daniel Bates <dabates@apple.com>
Fix the iOS Simulator release build
Substitute ASSERT_UNUSED() for ASSERT() to resolve a compiler warning
that the argument platformLayer is unused. The argument platformLayer
is only used in the asserted condition, which isn't compiled in a
release build; => the argument is unused in a release build.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2014-01-21 Zoltan Horvath <zoltan@webkit.org>
Since MidpointState is a class, it should behave like a class
https://bugs.webkit.org/show_bug.cgi?id=127154
Reviewed by David Hyatt.
I modified MidpointState to behave like a class, updated the call sites also.
No new tests, no behavior change.
* platform/text/BidiResolver.h:
(WebCore::MidpointState::reset):
(WebCore::MidpointState::startIgnoringSpaces):
(WebCore::MidpointState::stopIgnoringSpaces):
(WebCore::MidpointState::midpoints):
(WebCore::MidpointState::numMidpoints):
(WebCore::MidpointState::currentMidpoint):
(WebCore::MidpointState::incrementCurrentMidpoint):
(WebCore::MidpointState::decreaseNumMidpoints):
(WebCore::MidpointState::betweenMidpoints):
(WebCore::MidpointState::setBetweenMidpoints):
(WebCore::MidpointState::addMidpoint): Renamed from deprecatedAddMidpoint, since now
its private, we no longer need to discourage callers from using it.
* rendering/InlineIterator.h:
(WebCore::IsolateTracker::addFakeRunIfNecessary):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::appendRunsForObject):
(WebCore::constructBidiRunsForLine):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::checkMidpoints):
* rendering/line/TrailingObjects.cpp:
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
2014-01-21 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162452.
http://trac.webkit.org/changeset/162452
https://bugs.webkit.org/show_bug.cgi?id=127366
broke a few tests on all Mac WebKit1 bots (Requested by
thorton on #webkit).
* WebCore.exp.in:
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActive):
(WebCore::FocusController::setContentIsVisible):
* page/FocusController.h:
(WebCore::FocusController::isActive):
(WebCore::FocusController::isFocused):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::setIsInWindow):
(WebCore::Page::setIsVisuallyIdle):
(WebCore::Page::setIsVisible):
(WebCore::Page::visibilityState):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
* page/Page.h:
(WebCore::Page::isVisible):
(WebCore::Page::isInWindow):
2014-01-21 Chris Fleizach <cfleizach@apple.com>
AX: Mac: Expose the visible text of a password field to AX
https://bugs.webkit.org/show_bug.cgi?id=127353
Reviewed by Brent Fulgham.
The Mac platform should now expose the rendered value of password fields through AX.
Test: accessibility/password-field-value.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textLength):
(WebCore::AccessibilityRenderObject::passwordFieldValue):
2014-01-21 Robert Sipka <sipka@inf.u-szeged.hu>
Support SSL error handling in case of synchronous job.
https://bugs.webkit.org/show_bug.cgi?id=125301
Reviewed by Brent Fulgham.
Set ssl error informations for the users.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::dispatchSynchronousJob):
2014-01-21 Simon Fraser <simon.fraser@apple.com>
Export systemTotalMemory() and systemMemoryLevel() for MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=127360
Reviewed by Andy Estes.
MobileSafari inappropriately calls these WebCore functions directly,
so export them.
* WebCore.exp.in:
2014-01-21 Simon Fraser <simon.fraser@apple.com>
Clean up PLATFORM(IOS) code related to the custom fixed position layout rect
https://bugs.webkit.org/show_bug.cgi?id=127362
Reviewed by Dave Hyatt.
Various platforms customize the rect used to layout position:fixed elements,
and each modified RenderBox::availableLogicalHeight/WidthUsing() in different
ways.
Clean this up by adding RenderView::clientLogicalWidth/HeightForFixedPosition(),
and moving the platform hacks into it.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
* rendering/RenderView.cpp:
(WebCore::RenderView::clientLogicalWidthForFixedPosition):
(WebCore::RenderView::clientLogicalHeightForFixedPosition):
* rendering/RenderView.h:
2014-01-21 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
ASSERT(time.isFinite()) in SVGSMILElement::createInstanceTimesFromSyncbase
<https://webkit.org/b/108184>
Reviewed by Philip Rogers.
In the case a SMILElement timing had a syncbase dependency on an indefinite value
the assert were raised. The assert has been removed and a check has been added
instead that prevents the addition of indefinite times to the time list.
Test: svg/animations/smil-syncbase-self-dependency.svg
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
ASSERT removed.
2014-01-21 Tim Horton <timothy_horton@apple.com>
Address late review naming comments after r162453.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
* platform/graphics/mac/CALayerWebAdditions.h: Removed.
* platform/graphics/mac/CALayerWebAdditions.mm: Removed.
* platform/graphics/mac/WebCoreCALayerExtras.h: Added.
* platform/graphics/mac/WebCoreCALayerExtras.mm: Added.
(-[CALayer web_disableAllActions]):
2014-01-21 Tim Horton <timothy_horton@apple.com>
Keep CALayer implicit animation disabling code in a single place
https://bugs.webkit.org/show_bug.cgi?id=127355
Reviewed by Simon Fraser.
* WebCore.xcodeproj/project.pbxproj:
Add CALayerWebAdditions.{h,mm}.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::commonInit):
Remove nullActionsDictionary() and use [CALayer(WebAdditions) web_disableAllActions] instead.
* platform/graphics/mac/CALayerWebAdditions.h: Added.
* platform/graphics/mac/CALayerWebAdditions.mm: Added.
(-[CALayer web_disableAllActions]):
Added. Disable all implicit actions on the layer.
2014-01-21 Gavin Barraclough <barraclough@apple.com>
Change Page, FocusController to use ViewState
https://bugs.webkit.org/show_bug.cgi?id=126533
Reviewed by Tim Horton.
These classes currently maintain a set of separate fields to represent the view state;
combine these into a single field, and allow WebPage to send the combined update rather
than individual changes.
Maintain existing interface for WebKit1 clients.
* WebCore.exp.in:
- Added WebCore::setViewState, removed WebCore::setIsVisuallyIdle.
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
- Initialize combined m_viewState.
(WebCore::FocusController::setFocused):
- Calls setViewState.
(WebCore::FocusController::setFocusedInternal):
- setFocused -> setFocusedInternal.
(WebCore::FocusController::setViewState):
- Added, update all ViewState flags.
(WebCore::FocusController::setActive):
- Calls setViewState.
(WebCore::FocusController::setActiveInternal):
- setActive -> setActiveInternal.
(WebCore::FocusController::setContentIsVisible):
- Calls setViewState.
(WebCore::FocusController::setContentIsVisibleInternal):
- setContentIsVisible -> setContentIsVisibleInternal.
* page/FocusController.h:
(WebCore::FocusController::isActive):
(WebCore::FocusController::isFocused):
(WebCore::FocusController::contentIsVisible):
- Implemented in terms of ViewState.
* page/Page.cpp:
(WebCore::Page::Page):
- Initialize using PageInitialViewState.
(WebCore::Page::setIsInWindow):
- Calls setViewState.
(WebCore::Page::setIsInWindowInternal):
- setIsInWindow -> setIsInWindowInternal.
(WebCore::Page::setIsVisuallyIdleInternal):
- setIsVisuallyIdle -> setIsVisuallyIdleInternal.
(WebCore::Page::setViewState):
- Added, update all ViewState flags, including FocusController.
(WebCore::Page::setIsVisible):
- Calls setViewState.
(WebCore::Page::setIsVisibleInternal):
- setIsVisible -> setIsVisibleInternal.
(WebCore::Page::visibilityState):
- m_isVisible -> isVisible()
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
- m_isVisible -> isVisible()
* page/Page.h:
(WebCore::Page::isVisible):
(WebCore::Page::isInWindow):
- Implemented in terms of ViewState.
(WebCore::Page::scriptedAnimationsSuspended):
- Combined member fields into ViewState::Flags.
2014-01-21 Lauro Neto <lauro.neto@openbossa.org>
Remove PLATFORM(NIX) from WebCore
https://bugs.webkit.org/show_bug.cgi?id=127299
Reviewed by Anders Carlsson.
* editing/Editor.cpp:
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::copyImage):
* editing/Editor.h:
* html/HTMLCanvasElement.h:
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::defaultObjectContentType):
* page/ChromeClient.h:
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* platform/Cursor.h:
* platform/DragData.h:
* platform/DragImage.h:
* platform/FileSystem.h:
* platform/LocalizedStrings.h:
* platform/Widget.h:
* platform/audio/FFTFrame.h:
* platform/audio/HRTFElevation.cpp:
* platform/cairo/WidgetBackingStore.h:
* platform/graphics/ANGLEWebKitBridge.h:
* platform/graphics/FontPlatformData.h:
* platform/graphics/GLContext.cpp:
(WebCore::GLContext::createContextForWindow):
* platform/graphics/GLContext.h:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
* platform/graphics/OpenGLESShims.h:
* platform/graphics/OpenGLShims.cpp:
(WebCore::getProcAddress):
* platform/graphics/OpenGLShims.h:
* platform/graphics/PlatformLayer.h:
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::createVertexArrayOES):
(WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
(WebCore::Extensions3DOpenGL::isVertexArrayOES):
(WebCore::Extensions3DOpenGL::bindVertexArrayOES):
(WebCore::Extensions3DOpenGL::supportsExtension):
* platform/graphics/opengl/Extensions3DOpenGL.h:
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
* platform/graphics/opengl/Extensions3DOpenGLES.h:
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::reshape):
* platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
* platform/graphics/texmap/TextureMapper.h:
* platform/network/ResourceHandle.h:
* plugins/PluginPackage.cpp:
* plugins/PluginView.cpp:
(WebCore::PluginView::PluginView):
* plugins/PluginView.h:
* plugins/PluginViewNone.cpp:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2014-01-21 Eric Carlson <eric.carlson@apple.com>
Add ‎ ‏ and to WebVTT parser
https://bugs.webkit.org/show_bug.cgi?id=85112
Reviewed by Jer Noble.
No new tests, track-webvtt-tc022-entities.html was updated to test this.
* html/track/WebVTTTokenizer.cpp:
(WebCore::WebVTTTokenizer::nextToken): Support RLM, LRM, and NBSP entities.
2014-01-21 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162354.
http://trac.webkit.org/changeset/162354
https://bugs.webkit.org/show_bug.cgi?id=127354
Appears to have broken accessibility in a non-trivial way
(Requested by ap on #webkit).
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
2014-01-21 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162445.
http://trac.webkit.org/changeset/162445
https://bugs.webkit.org/show_bug.cgi?id=127351
It broke the 32 bit GTK build (Requested by Ossy on #webkit).
* rendering/style/StyleRareInheritedData.cpp:
2014-01-21 László Langó <llango.u-szeged@partner.samsung.com>
Wrong struct size when CSS_IMAGE_ORIENTATION and CSS3_TEXT_DECORATION are enabled.
https://bugs.webkit.org/show_bug.cgi?id=127346
Efl build fix.
Reviewed by Csaba Osztrogonác.
* rendering/style/StyleRareInheritedData.cpp:
2014-01-21 Antti Koivisto <antti@apple.com>
Delay initial layer flush during loading on all platforms
https://bugs.webkit.org/show_bug.cgi?id=127347
Reviewed by Andreas Kling.
To reduce unnecessary repaints enable the same behaviour as iOS already has.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
Set the initial state of m_layerFlushThrottlingEnabled correctly.
(WebCore::RenderLayerCompositor::scheduleLayerFlush):
(WebCore::RenderLayerCompositor::startInitialLayerFlushTimerIfNeeded):
* rendering/RenderLayerCompositor.h:
Enable initial layer flush delay on all platforms.
2014-01-21 Mihai Tica <mitica@adobe.com>
If you set a tiled cross-faded-image or a tiled gradient as
a background layer, -webkit-background-blend-mode doesn't work.
The problem consists in the blendMode parameter not being set
for these specific drawing paths.
https://bugs.webkit.org/show_bug.cgi?id=126888
Reviewed by Dirk Schulze.
Test: css3/compositing/background-blend-mode-tiled-layers.html
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
* platform/graphics/ImageBuffer.h: Add a BlendMode parameter to the drawPattern method.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::drawPattern): Add the default BlendMode parameter to the method declaration.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::drawPattern): Add and use the blendMode parameter for all the code paths.
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::BufferedImage::drawPattern): Add the default BlendMode parameter to the method declaration.
2014-01-21 Gurpreet Kaur <k.gurpreet@samsung.com>
The WebCore.vcxproj.filters doesnot apply
https://bugs.webkit.org/show_bug.cgi?id=127338
Reviewed by Csaba Osztrogonác.
* WebCore.vcxproj/WebCore.vcxproj.filters:
Modified the WebCore.vcxproj.filters so that it is applied when loading
WebCore.vcxproj file.
2014-01-21 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Fix SVG animations which set rx or ry attributes
https://bugs.webkit.org/show_bug.cgi?id=127337
Reviewed by Dirk Schulze.
Test: svg/stroke/animated-non-scaling-rxry.html
Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152376&view=revision
* rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement):
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromRectElement):
2014-01-21 Krzysztof Czech <k.czech@samsung.com>
[ATK] Expose aria-flowto through ATK_RELATION_FLOWS_TO
https://bugs.webkit.org/show_bug.cgi?id=127291
Reviewed by Mario Sanchez Prada.
Test: accessibility/aria-flowto.html
Expose aria-flowto through ATK_RELATION_FLOWS_TO according to
http://www.w3.org/TR/wai-aria-implementation/#mapping_state-property
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkRelationSetFromCoreObject):
2014-01-20 Ryuan Choi <ryuan.choi@samsung.com>
[CMAKE] Remove Nix from CMake scripts
https://bugs.webkit.org/show_bug.cgi?id=127264
Reviewed by Anders Carlsson.
* CMakeLists.txt:
2014-01-20 Anders Carlsson <andersca@apple.com>
Remove an unused PageGroup function
https://bugs.webkit.org/show_bug.cgi?id=127327
Reviewed by Andreas Kling.
* WebCore.exp.in:
* page/PageGroup.cpp:
* page/PageGroup.h:
2014-01-20 Anders Carlsson <andersca@apple.com>
Move user style sheet handling to UserContentController
https://bugs.webkit.org/show_bug.cgi?id=127322
<rdar://problem/15861296>
Reviewed by Andreas Kling.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserStyleSheetToWorld):
(WebCore::PageGroup::removeUserStyleSheetFromWorld):
(WebCore::PageGroup::removeUserStyleSheetsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
* page/PageGroup.h:
* page/UserContentController.cpp:
(WebCore::UserContentController::addUserStyleSheet):
(WebCore::UserContentController::removeUserStyleSheet):
(WebCore::UserContentController::removeUserStyleSheets):
(WebCore::UserContentController::removeAllUserContent):
(WebCore::UserContentController::invalidateInjectedStyleSheetCacheInAllFrames):
* page/UserContentController.h:
(WebCore::UserContentController::userStyleSheets):
2014-01-20 Benjamin Poulain <benjamin@webkit.org>
Add a nicer way to iterate over all the attributes of an element
https://bugs.webkit.org/show_bug.cgi?id=127266
Reviewed by Geoffrey Garen.
When using Element::attributeAt() in a loop, the compiler had to generate two kinds of
accessor:
-If the element data is unique, the length and data comes from the attribute Vector.
-If the element data is shared, the data comes from the tail of elementData itself.
The choice was done for every access, which caused the assembly to be a little
hard to follow.
This patch unify the data access by doing everything as a array pointer with offset (getting
that data from Vector when necessary).
To make it easier to do the right thing, a new iterator was added so that range-based loops
can replace all the faulty cases.
* css/SelectorChecker.cpp:
(WebCore::anyAttributeMatches):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::checkExactAttribute):
* dom/DatasetDOMStringMap.cpp:
(WebCore::DatasetDOMStringMap::getNames):
(WebCore::DatasetDOMStringMap::item):
(WebCore::DatasetDOMStringMap::contains):
* dom/Element.cpp:
(WebCore::Element::normalizeAttributes):
(WebCore::Element::detachAllAttrNodesFromElement):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
(WebCore::Element::attributesIterator):
* dom/ElementData.cpp:
(WebCore::ElementData::isEquivalent):
(WebCore::ElementData::findAttributeIndexByNameSlowCase):
* dom/ElementData.h:
(WebCore::AttributeConstIterator::AttributeConstIterator):
(WebCore::AttributeConstIterator::operator*):
(WebCore::AttributeConstIterator::operator->):
(WebCore::AttributeConstIterator::operator++):
(WebCore::AttributeConstIterator::operator==):
(WebCore::AttributeConstIterator::operator!=):
(WebCore::AttributeIteratorAccessor::AttributeIteratorAccessor):
(WebCore::AttributeIteratorAccessor::begin):
(WebCore::AttributeIteratorAccessor::end):
(WebCore::ElementData::attributesIterator):
* dom/Node.cpp:
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupNamespaceURI):
(WebCore::Node::lookupNamespacePrefix):
(WebCore::Node::compareDocumentPosition):
* dom/StyledElement.cpp:
(WebCore::StyledElement::makePresentationAttributeCacheKey):
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendElement):
* editing/markup.cpp:
(WebCore::completeURLs):
(WebCore::StyledMarkupAccumulator::appendElement):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parametersForPlugin):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parametersForPlugin):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::innerPatchNode):
(WebCore::DOMPatchSupport::createDigest):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setAttributesAsText):
(WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::matchesElement):
* page/PageSerializer.cpp:
(WebCore::isCharsetSpecifyingNode):
* xml/XPathNodeSet.cpp:
(WebCore::XPath::NodeSet::traversalSort):
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
2014-01-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Do refactor in collectGradientAttributes() and renderStyleForLengthResolve()
https://bugs.webkit.org/show_bug.cgi?id=126869
Reviewed by Dirk Schulze.
Some SVG functions have done a first iteration by using a boolean flag. This is
one of poor implementations. This patch fix it by extracting a logic into a new method.
Additionally it would be good to use do-while() loop instead of using while() in
renderStyleForLengthResolving() because a first condition is always true.
Merge r165358 from blink.
* svg/SVGLengthContext.cpp:
(WebCore::renderStyleForLengthResolving):
* svg/SVGLinearGradientElement.cpp:
(WebCore::setGradientAttributes):
(WebCore::SVGLinearGradientElement::collectGradientAttributes):
* svg/SVGRadialGradientElement.cpp:
(WebCore::setGradientAttributes):
(WebCore::SVGRadialGradientElement::collectGradientAttributes):
2014-01-20 Anders Carlsson <andersca@apple.com>
UserContentController should keep track of user scripts
https://bugs.webkit.org/show_bug.cgi?id=127317
<rdar://problem/15861296>
Reviewed by Andreas Kling.
Move handling of user scripts from PageGroup to UserContentController.
* page/Frame.cpp:
(WebCore::Frame::injectUserScripts):
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserScriptToWorld):
(WebCore::PageGroup::removeUserScriptFromWorld):
(WebCore::PageGroup::removeUserScriptsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
* page/PageGroup.h:
* page/UserContentController.cpp:
(WebCore::UserContentController::addUserScript):
(WebCore::UserContentController::removeUserScript):
(WebCore::UserContentController::removeUserScripts):
(WebCore::UserContentController::removeAllUserContent):
* page/UserContentController.h:
(WebCore::UserContentController::userScripts):
2014-01-20 Anders Carlsson <andersca@apple.com>
Give each page a UserContentController
https://bugs.webkit.org/show_bug.cgi?id=127315
<rdar://problem/15861296>
Reviewed by Andreas Kling.
Add a UserContentController object to PageGroup and have the page group set it on any
pages that are added to the page group.
This is another step towards moving handling of user content away from PageGroup and make it
possible for each page to have different user content.
* page/Page.cpp:
(WebCore::Page::~Page):
(WebCore::Page::setUserContentController):
* page/Page.h:
(WebCore::Page::userContentController):
* page/PageGroup.cpp:
(WebCore::PageGroup::PageGroup):
(WebCore::PageGroup::addPage):
(WebCore::PageGroup::removePage):
* page/PageGroup.h:
* page/UserContentController.cpp:
(WebCore::UserContentController::addPage):
(WebCore::UserContentController::removePage):
* page/UserContentController.h:
2014-01-20 Jeremy Jones <jeremyj@apple.com>
Add AVKit fullscreen video interface.
https://bugs.webkit.org/show_bug.cgi?id=126818
Reviewed by Eric Carlson.
No new tests, no observable change in functionality.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
Add ability for fullscreen to borrow the AVPlayerLayer.
* page/Settings.cpp:
* page/Settings.h:
(WebCore::Settings::setMediaPlaybackFullscreenAVKit):
(WebCore::Settings::mediaPlaybackFullscreenAVKit):
Add a disabled setting.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen):
Enabled fullscreen for iOS.
* platform/ios/WebVideoFullscreenControllerAVKit.h: Added.
* platform/ios/WebVideoFullscreenControllerAVKit.mm: Added.
(-[WebAVPlayerController init]):
(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController forwardingTargetForSelector:]):
(-[WebAVPlayerController shouldDismissForDone]):
(-[WebAVPlayerController play:]):
(-[WebAVPlayerController pause:]):
(-[WebAVPlayerController togglePlayback:]):
(-[WebAVPlayerController isPlaying]):
(-[WebAVPlayerController setPlaying:]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController updateTimingWithCurrentTime:]):
(-[WebAVPlayerController effectiveRate]):
(-[WebAVPlayerController setMediaElement:]):
(-[WebAVPlayerController handleEvent:]):
(-[WebVideoFullscreenController init]):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController setMediaElement:]):
(-[WebVideoFullscreenController mediaElement]):
(-[WebVideoFullscreenController enterFullscreen:]):
(-[WebVideoFullscreenController exitFullscreen]):
Add WebAVPlayerController for HTMLMediaElememt to interface with AVPlayerViewController.
2014-01-20 Zan Dobersek <zdobersek@igalia.com>
Replace uses of std::forward<T>(), std::unique_ptr<T>::clear() that landed in r162368
https://bugs.webkit.org/show_bug.cgi?id=127306
Reviewed by Darin Adler.
Address the post-landing reviews of the r162368 commit that moved WebAudio source code to using std::unique_ptr.
std::move() should be used instead of std::forward<T>() in HRTFKernel::create().
Instead of calling std::unique_ptr<T>::reset(), nullptr should be assigned to that smart pointer to reset it.
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::uninitialize):
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::uninitialize):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::uninitialize):
* platform/audio/AudioChannel.h:
(WebCore::AudioChannel::set):
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
* platform/audio/HRTFKernel.h:
(WebCore::HRTFKernel::create):
2014-01-20 Joseph Pecoraro <pecoraro@apple.com>
Modernize WebCore/inspector with nullptr
https://bugs.webkit.org/show_bug.cgi?id=127303
Reviewed by Anders Carlsson.
Ran clang-modernize -use-nullptr over WebCore/inspector.
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::findMagicComment):
* inspector/DOMEditor.cpp:
(WebCore::DOMEditor::SetOuterHTMLAction::SetOuterHTMLAction):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::diff):
(WebCore::DOMPatchSupport::innerPatchChildren):
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::disable):
(WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
(WebCore::InspectorCanvasAgent::frameNavigated):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::clearMessages):
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
(WebCore::InspectorConsoleAgent::didReceiveResponse):
(WebCore::InspectorConsoleAgent::didFailLoading):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::inspectedPageDestroyed):
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::disable):
(WebCore::InspectorDOMDebuggerAgent::discardAgent):
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::~InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::findStorageArea):
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent):
(WebCore::InspectorDatabaseAgent::findByFileName):
(WebCore::InspectorDatabaseAgent::databaseForId):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::addMessageToConsole):
(WebCore::InspectorDebuggerAgent::resolveBreakpoint):
(WebCore::InspectorDebuggerAgent::didParseSource):
(WebCore::InspectorDebuggerAgent::didContinue):
(WebCore::InspectorDebuggerAgent::clearBreakDetails):
* inspector/InspectorFrontendHost.cpp:
(WebCore::FrontendMenuProvider::disconnect):
(WebCore::InspectorFrontendHost::InspectorFrontendHost):
(WebCore::InspectorFrontendHost::disconnectClient):
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::~InspectorHeapProfilerAgent):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::assertDocument):
(WebCore::assertIDBFactory):
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/InspectorInstrumentation.cpp:
(WebCore::frameForScriptExecutionContext):
(WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
(WebCore::InspectorInstrumentation::consoleAgentEnabled):
(WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
(WebCore::InspectorInstrumentation::retrieveTimelineAgent):
(WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
(WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope):
(WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
(WebCore::InspectorInstrumentation::instrumentingAgentsForFrame):
(WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::disable):
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::searchUsingXPath):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResourceContent):
(WebCore::InspectorPageAgent::sharedBufferContent):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::frameForId):
(WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::~InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::buildObjectForResourceResponse):
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::didReceiveResponse):
(WebCore::InspectorResourceAgent::didFinishLoading):
(WebCore::InspectorResourceAgent::didFailLoading):
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
(WebCore::InspectorResourceAgent::disable):
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
* inspector/InspectorStyleSheet.cpp:
(ParsedStyleSheet::ruleSourceDataAt):
(WebCore::buildSourceRangeObject):
(WebCore::asCSSRuleList):
(WebCore::fillMediaListChain):
(WebCore::InspectorStyle::setPropertyText):
(WebCore::InspectorStyle::populateAllProperties):
(WebCore::InspectorStyle::extractSourceData):
(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
(WebCore::InspectorStyleSheet::addRule):
(WebCore::InspectorStyleSheet::ruleForId):
(WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
(WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::styleForId):
(WebCore::InspectorStyleSheet::inspectorStyleForId):
(WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
* inspector/InspectorStyleSheet.h:
(WebCore::InspectorCSSId::asProtocolValue):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::willComposite):
(WebCore::InspectorTimelineAgent::page):
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::~InspectorWorkerAgent):
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::ResourceData::ResourceData):
(WebCore::NetworkResourcesData::xhrReplayData):
(WebCore::NetworkResourcesData::removeCachedResource):
(WebCore::NetworkResourcesData::resourceDataForRequestId):
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::~PageConsoleAgent):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::disable):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::~PageRuntimeAgent):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):
* inspector/ScriptArguments.cpp:
(WebCore::ScriptArguments::globalState):
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
2014-01-20 Anders Carlsson <andersca@apple.com>
Add empty UserContentController class
https://bugs.webkit.org/show_bug.cgi?id=127300
<rdar://problem/15861296>
Reviewed by Dan Bernstein.
This is the first step towards moving handling of user scripts and style sheets from
the page group to a separate objects and ultimately make them be settable per page instead of per page group.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* page/UserContentController.cpp: Added.
(WebCore::UserContentController::create):
(WebCore::UserContentController::UserContentController):
(WebCore::UserContentController::~UserContentController):
* page/UserContentController.h: Added.
2014-01-20 Joseph Pecoraro <pecoraro@apple.com>
Run clang-modernize and let it add a bunch of missing overrides in WebCore/inspector
https://bugs.webkit.org/show_bug.cgi?id=127206
Reviewed by Anders Carlsson.
Let clang-modernize add overrides.
* inspector/DOMEditor.cpp:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
(WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorHistory.cpp:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorStyleSheet.h:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
* inspector/InspectorWorkerAgent.h:
* inspector/PageConsoleAgent.h:
* inspector/PageDebuggerAgent.h:
* inspector/PageRuntimeAgent.h:
* inspector/WorkerConsoleAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerRuntimeAgent.h:
2014-01-20 Zan Dobersek <zdobersek@igalia.com>
Move WebAudio source code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127274
Reviewed by Eric Carlson.
Move from using OwnPtr and PassOwnPtr to using std::unique_ptr and move semantics
in the WebAudio module and the WebAudio code in the platform layer.
* Modules/webaudio/AsyncAudioDecoder.cpp:
* Modules/webaudio/AsyncAudioDecoder.h:
* Modules/webaudio/AudioBasicInspectorNode.cpp:
(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
* Modules/webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
* Modules/webaudio/AudioBasicProcessorNode.h:
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
* Modules/webaudio/AudioContext.cpp:
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::AudioDestinationNode):
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::addInput):
(WebCore::AudioNode::addOutput):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
* Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::createKernel):
(WebCore::BiquadProcessor::getFrequencyResponse):
* Modules/webaudio/BiquadProcessor.h:
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::ChannelMergerNode):
* Modules/webaudio/ChannelSplitterNode.cpp:
(WebCore::ChannelSplitterNode::ChannelSplitterNode):
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
(WebCore::ConvolverNode::uninitialize):
(WebCore::ConvolverNode::setBuffer):
* Modules/webaudio/ConvolverNode.h:
* Modules/webaudio/DefaultAudioDestinationNode.h:
* Modules/webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* Modules/webaudio/DelayProcessor.cpp:
(WebCore::DelayProcessor::createKernel):
* Modules/webaudio/DelayProcessor.h:
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
(WebCore::DynamicsCompressorNode::initialize):
(WebCore::DynamicsCompressorNode::uninitialize):
* Modules/webaudio/DynamicsCompressorNode.h:
* Modules/webaudio/GainNode.cpp:
(WebCore::GainNode::GainNode):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):
* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
* Modules/webaudio/MediaStreamAudioSource.cpp:
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::OscillatorNode):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::uninitialize):
(WebCore::PannerNode::setPanningModel):
* Modules/webaudio/PannerNode.h:
* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::createBandLimitedTables):
* Modules/webaudio/PeriodicWave.h:
* Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::RealtimeAnalyser):
(WebCore::RealtimeAnalyser::setFftSize):
* Modules/webaudio/RealtimeAnalyser.h:
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
* Modules/webaudio/WaveShaperDSPKernel.cpp:
(WebCore::WaveShaperDSPKernel::lazyInitializeOversampling):
* Modules/webaudio/WaveShaperDSPKernel.h:
* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::WaveShaperNode):
* Modules/webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::createKernel):
* Modules/webaudio/WaveShaperProcessor.h:
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::AudioBus):
(WebCore::AudioBus::copyWithGainFrom):
* platform/audio/AudioBus.h:
* platform/audio/AudioChannel.cpp:
* platform/audio/AudioChannel.h:
(WebCore::AudioChannel::AudioChannel):
(WebCore::AudioChannel::set):
* platform/audio/AudioDSPKernelProcessor.h:
* platform/audio/AudioDestination.h:
* platform/audio/AudioResampler.cpp:
(WebCore::AudioResampler::AudioResampler):
(WebCore::AudioResampler::configureChannels):
* platform/audio/AudioResampler.h:
* platform/audio/AudioSession.h:
* platform/audio/DynamicsCompressor.cpp:
(WebCore::DynamicsCompressor::setNumberOfChannels):
* platform/audio/DynamicsCompressor.h:
* platform/audio/DynamicsCompressorKernel.cpp:
(WebCore::DynamicsCompressorKernel::setNumberOfChannels):
* platform/audio/DynamicsCompressorKernel.h:
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::createInterpolatedFrame):
* platform/audio/FFTFrame.h:
* platform/audio/HRTFDatabase.cpp:
(WebCore::HRTFDatabase::HRTFDatabase):
* platform/audio/HRTFDatabase.h:
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
(WebCore::HRTFDatabaseLoader::load):
* platform/audio/HRTFDatabaseLoader.h:
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::createForSubject):
(WebCore::HRTFElevation::createByInterpolatingSlices):
* platform/audio/HRTFElevation.h:
(WebCore::HRTFElevation::HRTFElevation):
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::HRTFKernel):
(WebCore::HRTFKernel::createImpulseResponse):
(WebCore::HRTFKernel::createInterpolatedKernel):
* platform/audio/HRTFKernel.h:
(WebCore::HRTFKernel::create):
(WebCore::HRTFKernel::HRTFKernel):
* platform/audio/MultiChannelResampler.cpp:
(WebCore::MultiChannelResampler::MultiChannelResampler):
* platform/audio/MultiChannelResampler.h:
* platform/audio/Panner.cpp:
(WebCore::Panner::create):
* platform/audio/Panner.h:
* platform/audio/Reverb.cpp:
(WebCore::Reverb::initialize):
* platform/audio/Reverb.h:
* platform/audio/ReverbConvolver.h:
* platform/audio/ReverbConvolverStage.cpp:
(WebCore::ReverbConvolverStage::ReverbConvolverStage):
* platform/audio/ReverbConvolverStage.h:
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestination::create):
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
* platform/audio/ios/AudioDestinationIOS.cpp:
(WebCore::AudioDestination::create):
* platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSession::AudioSession):
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::create):
* platform/audio/mac/AudioDestinationMac.h:
* platform/audio/mac/AudioSessionMac.cpp:
(WebCore::AudioSession::AudioSession):
2014-01-20 Morten Stenshorne <mstensho@opera.com>
Region based multicol: support explicit column breaks
https://bugs.webkit.org/show_bug.cgi?id=123993
Reviewed by David Hyatt.
Merely supporting insertion of explicit (forced) column breaks in
the region based multicol implementation is really simple: just
hook up with what the CSS regions code is already doing.
However, there is one complication: column balancing. In order to
balance columns as nicely as possible when there are explicit
breaks, we need to figure out between which explicit breaks the
implicit breaks will occur (if there's room for any at all).
Tests: fast/multicol/newmulticol/break-after.html
fast/multicol/newmulticol/break-before.html
fast/multicol/newmulticol/breaks-2-columns-3-no-balancing.html
fast/multicol/newmulticol/breaks-2-columns-3.html
fast/multicol/newmulticol/breaks-3-columns-3.html
fast/multicol/newmulticol/fixed-height-fill-balance-2.html
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak): Use the already
existing region breaking code when inserting breaks in region
based multicol.
* rendering/RenderFlowThread.h:
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
(WebCore::RenderMultiColumnBlock::relayoutForPagination): Avoid
re-balancing if the multicol's contents were not laid out. Apart
from being good for performance, this is now necessary because of
how explicit breaks are implemented.
(WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
Detect if the contents are going to be laid out, or skipped, so
that we can tell if we need to (re-)balance the columns
afterwards.
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):
Locate the appropriate multi-column set and call its
addForcedBreak().
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::findRunWithTallestColumns):
(WebCore::RenderMultiColumnSet::distributeImplicitBreaks): Figure
out how many implicit breaks each single "content run" should
contain. The taller the content run, the more implicit br